Claude Code changelog changedchangelog
Nearest release: v2.1.318, published 2 hours before upstream edited the page. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Upstream edited this page at 4 Nov 2026 00:09 UTC, give or take a minute or two: the time comes from Anthropic’s own sitemap rather than from a commit. This site recorded the change at 4 Nov 2026 00:37 UTC.
Upstream edited
Recorded here
Lines+100added
Lines−0removed
From line
6
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits79to this page, all time
The whole hunk
from line 6, old and new numbered
/
This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.
from line 6
66
77Run `claude --version` to check your installed version.
88
9**2.1.318**
10
11November 4, 2026
12
13**Added**
14
15* Added a record of your answer when Claude Code asks to turn on the mods it writes in a session
16* Added `assume_role` on `mantle` upstreams of the Claude apps gateway, for a role in another AWS account and for per-developer AWS cost attribution
17* Added an `effort` option to a mod's `$.model.fork`, so a quick side job can run at `low` whatever effort the session uses; the result reports the effort sent
18* Added the date a stored claude.ai sign-in ends to `claude auth status` (`loginExpiresAt`) and to `claude -p` JSON results (`credential_expires_at`)
19* Added a one-line stderr warning to `claude -p` text output, starting 10 days before a stored claude.ai sign-in ends
20* Gateway: Added a log warning when the Google access token from a federation (`external_account`) credentials file is about to expire
21* Self-hosted runner: Added `CLAUDE_RUNNER_SPAWN_REASON` to the orchestrator's spawn-runner hook environment: why Anthropic sent the request (e.g. `runner_lost`, `resumed`); unset when none was sent
22* Self-hosted runner: Added a startup warning when `--release-idle-session-min` is the last argument with no value (still ignored) or has a value of only spaces (still read as `0`)
23* \[Cloud sessions] Added a No repository option: a cloud session on an Anthropic-hosted environment can now start without picking a repository
24* \[Cloud sessions] Added the usual Chrome names to cloud sessions, so tools other than Playwright can find the built-in Chromium through google-chrome and CHROME\_PATH
25* \[Cloud sessions] Added a New session button to the card shown when a cloud session's environment was deleted, where the message box is hidden
26
27**Changed**
28
29* Changed Claude Code to no longer install or update the IDE extension when started in an IDE terminal; use `/ide` from an outside terminal or your editor's extensions view
30* Changed subagents to stop instead of switching models when "Switch models when a message is flagged" is set to "Ask each time"
31* Changed background subagents to move a shell command to the background after 3 minutes on all providers, so the prompt cache doesn't expire while it runs
32* Changed subagent progress summaries on Bedrock, Vertex, Foundry, or with telemetry off: on a cold prompt cache, one can now wait up to 5 minutes for the subagent's pending response
33* Changed what a mod attaches at `prompt.submit` to stay in the user's turn rather than go out as a system message
34* Changed `deniedMcpServers` URL entries to also block Anthropic-provided servers whose upstream URL matches, and connectors in cloud sessions and on self-hosted runners, where the session is given the connector's own URL; otherwise deny a connector by name
35* Changed the `/permissions` rule details, built-in rules and delete confirmation views to use the standard dialog; pressing Ctrl+C twice there now goes back or cancels instead of quitting
36* Changed `/claude-api managed-agents-onboard` to give a new agent's built-in tools, and a quickstart template's MCP tools, the `auto` permission policy ("Judge risky actions") by default, matching the Claude Console; say "run without asking" to opt out
37* Removed the 2.1.288 fix that kept the model's earlier thinking when resuming a conversation started on 2.1.286 or earlier; that thinking can now be dropped
38* Self-hosted runner: Changed the orchestrator's log lines: `ok session=…` now prints at every log level on stdout (was debug only, stderr) with `reason=…` after `jti=…`, and `nack session=…` ends its fields with `reason=…` after `retryable=…`; update scripts that match `retryable=true:` or `retryable=false:`
39* \[Cloud sessions] Changed connector search results to tell Claude that the search covers only part of the connector directory
40
41**15 improvements**
42
43* Improved how `~/.claude.json`, settings files and the stored login survive saves on shared network home directories: they are less often deleted, briefly emptied or replaced by a near-empty or older copy
44* Improved sessions on network file systems to look again when the configuration file is wrongly reported as missing, so fewer start without your MCP servers and trusted folders
45* Improved MCP tool errors: a call made before the tool is loaded now returns its input schema
46* Improved the reliability of git commits and pull request creation when the Bash tool runs macOS's built-in `/bin/bash`
47* Improved "Ask your admin for more usage" in the usage limit menu to send the request in one step
48* Improved how fast remote sessions reconnect after a pause or sleep
49* Improved You should know toasts to say "try again" instead of "press 2", which only works in the terminal
50* Improved auto-update reliability: a brief network failure while verifying a release is now retried right away instead of waiting for the next check
51* Improved unattended runs (`claude -p`, SDK apps) to stop rewriting `~/.claude.json` on every run when nothing in it changed
52* Gateway: Improved the log hints about `listen.trusted_proxies`: they now say to list only a proxy that adds the connecting address to `X-Forwarded-For` itself
53* Gateway: Improved the warning when AWS CountTokens fails on Amazon Bedrock: it says Claude Code, not the gateway, counts after the 501, and points at IAM only when AWS denies access
54* Remote Control: Improved the title a fork of a terminal fork is created with when the app doesn't set one: "Name (fork 2)"
55* \[VSCode] Improved the sign-in screen to show what Claude Code printed when its sign-in status check fails
56* \[Cloud sessions] Improved most Create PR failure messages in cloud and Remote Control sessions: they now give the reason or a link to GitHub instead of saying Try again
57* \[Code Review] Improved the Code Review analytics page to retry once after a server or network failure, then show a Try again banner instead of empty cards
58
59**47 bug fixes**
60
61* Fixed `--continue` sometimes losing the earlier conversation after a malformed tool call's retries ran out (regression in 2.1.314)
62* Fixed macOS sessions with many running Bash commands stalling while memory grew
63* Fixed permission prompts being answered by keys typed just after sending a message, or before a slow prompt appeared
64* Fixed `/logout`, `claude auth logout` and `claude mcp remove` reporting success, and changes to trust, consent or MCP settings being dropped with no word, when the config file could not be updated on a shared network home directory
65* Fixed jobs exiting with `Not logged in` when another terminal or host signs in again to the same account and organization on the same home
66* Fixed `claude mcp add` and `remove` writing the config without its lock: they now wait for it or exit 1, though another job's save can still replace a saved server
67* Fixed `claude plugin` commands exiting before a slow token refresh was saved, which could sign you out on the next run
68* Fixed `claude plugin validate` passing a custom-named marketplace file that `claude plugin marketplace add` rejects
69* Fixed stdio MCP servers that exit on the version probe being re-probed on every start; a server that dies in under 3s for its own reason is also pinned to the legacy handshake for 7 days
70* Fixed sessions being refused at startup by an `allowedProviders` list that another login on the same machine had stored
71* Fixed idle compaction replacing a conversation with a reply that was not a summary
72* Fixed the "Now using usage credits" notice reappearing about every 30 seconds while a background subagent is running
73* Fixed custom slash commands that fail, or that only Claude can invoke, printing nothing in `claude -p` and SDK sessions
74* Fixed `claude -p` and Agent SDK sessions reporting success when an API error cut off a reply while a mod hooked `turn.step`
75* Fixed a message sent right after a model change still running after Stop in headless sessions: Stop now cancels or stops it as it would a queued message
76* Fixed a deleted session transcript being re-created with its last prompt when an idle non-interactive session exited
77* Fixed `claude remote-control` hosts, the background daemon and self-hosted runners failing to start new sessions (`spawn ENOENT`) after an update or version cleanup removed the binary of a still-running process
78* Fixed a running Claude Code process owned by another user (for example one left by `sudo claude`) being treated as dead by version cleanup, which could delete its binary
79* Fixed `/remote-control` showing a session as available after a failed connection
80* Fixed `/design revoke` reporting success when the request failed with a 404
81* Fixed a shell command approved after a self-hosted runner or cloud session restart running in the session's start folder, not the folder it was asked in; if that folder can't be entered, it is not run
82* Fixed Claude not being told when an approved connector tool was unavailable after a cloud session restart
83* Fixed cloud sessions being stopped in the middle of a turn when the service refuses uploads for several minutes
84* Fixed variables a `Setup` hook writes to `CLAUDE_ENV_FILE` not reaching the Bash tool in some cloud sessions
85* Fixed the iPhone app showing a cloud session's turn as finished while it kept running, after a response was cut off at a tool call or a refused image or document was removed
86* Fixed a restarted session re-sending a message that failed with an API error, ahead of the newer message waiting behind it
87* Fixed a restarted session dropping its interrupted turn when the restart came right after Claude read a large image or retried a tool call
88* Fixed every connection failing when the `NODE_EXTRA_CA_CERTS` file is empty, not PEM, or starts with a damaged certificate: readable certificates are now used, with a warning on stderr
89* Fixed workflows re-running finished agents when resumed after a usage limit
90* Fixed `/mcp` in cloud sessions counting tools the model can't use; a server's row now shows how many of its tools are available
91* Fixed a duplicate notification when Claude left the status field out of a PushNotification call
92* Fixed the error for a too-large image in a request with more than 20 images always saying the limit was 2000px; it now shows the API's limit
93* Fixed the runtime in background shell details not updating while the dialog is open
94* Fixed a mod's `turn.step` hook making a stopped reply finish as a success in headless runs
95* Fixed retention cleanup leaving a home that only runs `claude -p` with no `~/.claude.json` backup: it now takes a fresh backup before deleting the last good one
96* Fixed the stored login being replaced by an empty file when a network home directory has no room left for data but still takes new files
97* Fixed tokens from `setup-token` being refused at start on machines with `forceLoginOrgUUID`, when the token belongs to a permitted organization
98* Fixed non-interactive launches replacing a `~/.claude.json` that isn't valid JSON with defaults; the start now fails, says how to restore the file, and leaves it as is (anthropics/claude-code#87551)
99* Fixed an empty `~/.claude.json` with no backup being reported as corrupted; Claude Code now starts as it does when the file is missing
100* Fixed the restore command printed for a damaged or missing `~/.claude.json` naming an empty or cut-off backup, or failing on a read-only file
101* Fixed the sign-in failure when a stored claude.ai login reaches its time limit: it now says so, and in `claude -p` names `claude auth login` and `claude setup-token`
102* Remote Control: Fixed a misleading "spawn error: ENOENT" when a session's working folder is missing; the error now names the folder
103* \[VSCode] Fixed a window whose sign-in the organization's settings refuse starting a new Claude Code process in the background every minute
104* \[VSCode] Fixed a long word in the chat panel's error banner pushing its close button out of view
105* \[Cloud sessions] Fixed reading GitHub Actions logs in cloud sessions: `gh run view --log` and `gh api` log requests now get the log in most environments, not an unreachable redirect
106* \[Remote Control] Fixed side-by-side checkouts of one repository looking identical in the environment menu's Remote Control rows; each now shows its own folder name
107* \[Claude Tag] Fixed keyboard focus and screen reader announcements in Claude Tag admin setup; pressing Escape in the connect form no longer also closes the Add dialog
108
9109**2.1.317**
10110
11111November 3, 2026
from line 2143
20432143* Fixed auto mode on Bedrock and Mantle switching to the local classifier for the rest of the session after a request to an older model, such as a WebFetch summary or a `sonnet` subagent
20442144* Fixed cloud sessions that restarted on a newly picked model replying with that model after the server refused it
20452145* Fixed Cowork cloud sessions staying marked as waiting for input after a WebFetch permission prompt for an unapproved URL went unanswered for five minutes
2046* Fixed prompt suggestions not appearing on a phone that joins a Cowork cloud session started on another device
2047* Fixed a mod's button sometimes running a different button's action when pressed on a view drawn before Claude Code restarted
2048* Fixed a plugin's pane showing nothing when one `Code` element held a diff that does not parse; it now draws as plain code
2049* Fixed plugin LSP servers receiving literal `${user_config.*}` and `${CLAUDE_PLUGIN_ROOT}` placeholders in `initializationOptions` and `settings` instead of substituted values or manifest defaults
2050* Fixed a plugin's `tool.call` hook making Bash fail and file searches read the wrong folder in subagents that run in a worktree
2051* Fixed `git-subdir` plugin installs failing, or caching an incomplete plugin, on older git (before 2.39, e.g. Ubuntu 22.04's 2.34)
2052* Fixed plugins loaded with `--plugin-dir` not showing "Configure options" in `/plugin`
2053* Fixed background sessions ending when a plugin was reloaded or disabled while one of its timers or reads was still running
2054* Fixed sandboxed heredocs with an unquoted delimiter (`python3 <<EOF`) asking for approval on every run under sandbox auto-allow when the body holds only plain text and simple `$VAR` references
2055* Fixed Bash tool permission check to prompt before a `BASHPID` assignment whose value the shell would evaluate as arithmetic, instead of allowing it silently
2056* Fixed fullscreen sessions exiting with "unrecoverable interface error" when opening the background tasks dialog while a plugin or mod showed rows above the prompt
2057* Fixed Claude reporting a message to another session as delivered when that session held it: the notice now says it wasn't delivered and names the session, and in SDK sessions Claude can now learn of it mid-turn
2058* Fixed OpenTelemetry `claude_code.tool.blocked_on_user` spans reporting `unknown` source or decision in `-p` and SDK sessions and for PreToolUse hook approvals
2059* Fixed permission asks that ended unanswered, in `-p` or on an interrupted turn, emitting no `tool_decision` event
2060* Fixed Edit and Retry in Cowork cloud sessions refusing a message sent before `/compact` even though its history was still saved
2061* Fixed unattended sessions (`CLAUDE_CODE_RETRY_WATCHDOG`) retrying for hours after a very long response stream failed; Claude Code now streams again, and gives up after three timeouts
2062* Fixed `/login` reporting "Login successful" when credentials could not be saved to secure storage; it now shows the failure, and offers a retry when the new login didn't take effect (anthropics/claude-code#73861)
2063* Fixed a Stop during Bedrock credential lookup sometimes moving the session to a fallback model instead of ending the request
2064* Fixed a second `gcpAuthRefresh`/`awsAuthRefresh` browser sign-in opening when a laptop wakes from sleep while another Claude Code process is signing in
2065* Fixed agent teams: a plugin-defined agent spawned by name now runs with its own prompt, tools, disallowedTools and effort instead of the defaults
2066* Fixed headless (`-p` / SDK) sessions occasionally ignoring SIGTERM when a supervisor such as `timeout` or systemd sends SIGCONT alongside it
2067* Fixed restarted cloud sessions restoring a model that the organization's enforced model list refuses
2068* Fixed MCP tool calls sometimes running twice when a remote server's result was over 16 MB or could not be parsed
2069* Fixed subagents in Claude Desktop's Code tab getting none of the tools of a user-configured MCP server named `memory`
2070* Fixed Claude in Chrome asking before every screenshot and page read on a site you allowed when auto mode is unavailable (such as with `disableAutoMode` or an older model); typing, navigation and JavaScript still ask
2071* Fixed `claude plugin install` failing for GitHub-source plugins on macOS and Linux machines with no GitHub SSH key: the clone now falls back to HTTPS and prints a notice
2072* Fixed `sandbox.credentials.files` entries on git config files not taking effect while `permissions.blockReadsOutsideWorkingDirectories` is on
2073* Fixed Claude leaving out your organization's design systems when starting slides or a design with the Artifact tool on Team and Enterprise plans or machines with managed settings
2074* Fixed the keyboard not working on Windows after Claude Code restarts itself (first sign-in to a Claude apps gateway, provider setup, `/tui`)
2075* Fixed a stall when launching an agent whose `tools:` lists very many `Agent(...)` entries
2076* Fixed sessions on Claude 3 Opus and Claude 3 Sonnet failing on every turn after a whole PDF entered the conversation
2077* Fixed the npm auto-updater reporting success when the platform-native binary failed to download and only the placeholder `claude` stub was installed
2078* Fixed Remote Control cleanup archiving a session that is still connected or was just re-attached by another Claude Code process
2079* Fixed `owner/repo` plugin marketplaces showing only the second attempt's error when both the SSH and HTTPS fetch fail; both errors are now shown, with the transport tried first on top
2080* Fixed path-scoped `.claude/rules` and nested CLAUDE.md files not loading when Write or Edit creates or changes a file in their scope (previously only Read loaded them)
2081* Fixed a dangerous `rm` (such as one on `/` or the home directory) inside a `bash -c` or `sh -c` script running without a prompt in bypassPermissions mode or under a shell allow rule (anthropics/claude-code#96300)
2082* Fixed LSP tool calls hanging indefinitely when a language server uses dynamic capability registration or stops responding; requests now time out after 60s (per-server `requestTimeout`)
2083* Fixed `idle_prompt` notification hooks firing while background agents are still running (anthropics/claude-code#93672)
2084* Fixed PreToolUse and PermissionRequest hooks being skipped when matching them failed or the tool's input could not be serialized to JSON; the call is now blocked
2085* Fixed the first request in a fresh environment or after a model switch using the built-in output limit and auto-compact window, not the server's; that request may now wait up to 1.5 seconds
2086* Fixed the "What should Claude do instead?" hint showing on the Interrupted row after sending queued messages with ctrl+enter
2087* Fixed `/login` in a `--bare` session running a sign-in the session never reads, which could replace your saved login; it now says which credentials work
2088* Fixed the InstructionsLoaded hook omitting agent\_id and agent\_type when a subagent's file access loads a rule or nested CLAUDE.md; rules and nested CLAUDE.md files loaded on file access now also report effort
2089* Fixed the Agent tool in `claude mcp serve` always reporting no available agents and rejecting every subagent\_type
2090* Fixed the terminal cursor not following the typed text in the fullscreen transcript viewer's search and in `/theme`'s custom color search
2091* Fixed `/permissions` in screen reader mode: typing a rule's number now picks it instead of opening the search box
2092* \[VSCode] Fixed a claude.ai connector staying on "Needs authentication" after you authorize it: the MCP servers dialog now offers Check connection
2093* \[VSCode] Fixed the opt-in New Conversation shortcut (Cmd/Ctrl+N) starting a conversation in every visible Claude view instead of only the one you are in
2094* \[VSCode] Fixed the chat view resuming the next saved session after you archive the one it shows; it now starts a new conversation instead
2095* \[Cloud sessions] Fixed the Cloud sessions switch in Claude Code admin settings staying locked off while an unrelated security setting was loading or had failed to load
2096* \[Cloud sessions] Fixed pressing Stop while a self-hosted runner was still starting not cancelling the queued message, which could then run once the runner was up
2097* \[Claude Tag] Fixed Claude Tag admin settings offering a "Remove this scope" option, which always failed, on channels whose settings were created automatically
2098* Fixed `claude plugin test` reporting mods as turned off remotely when it had only read an out-of-date saved setting
2099
2100**2.1.287**
2101
2102October 1, 2026
2103
2104**Added**
2105
2106* Added Claude Mods: plugins may now modify deeper behavior
2107* Added You should know, a built-in mod where a side agent watches your back and flags things you or Claude might miss. Turn it on with `/plugin enable cc-plugin-you-should-know@builtin` (for first-party sessions with telemetry on)
2108* Added an `n:<text>` filter to the agents view that matches session names and tasks; a filter now shows matches in collapsed sections and Enter opens the first match
2109* Added `prompt_text` to the OpenTelemetry `user_prompt` event, a copy of `prompt` for backends that nest dotted keys; drop or mask it wherever you drop or mask `prompt` (anthropics/claude-code#70763)
2110* Added URL prompts from MCP servers on the 2025-11-25 protocol, for example to sign in. If a server no longer connects after this update, add "bareElicitationCapability": true to its MCP config entry
2111* Windows: Added a startup warning when denying the Bash tool also turns off the PowerShell tool, so Claude has no shell tool
2112* Self-hosted runner: Added a built-in `gh api` (REST only) for sessions that use Anthropic-managed git on macOS and Linux machines where the GitHub CLI is not installed
2113* \[VSCode] Added "Run in background" to a running command or sub-agent, to move it to the background and keep working
2114* \[VSCode] Added the output of background shells and Monitors to their cards in the agent map
2115
2116**Changed**
2117
2118* Changed a shell write through a repo-committed symlink onto a sensitive file or out of the working tree to name where it lands and wait for a person, on lines with a `~` target too
2119* Changed Opus 4.7+ and Fable to use a 1M context window by default on Bedrock, Vertex, Foundry and the Claude apps gateway, with no `[1m]` suffix (`CLAUDE_CODE_DISABLE_1M_CONTEXT=1` keeps 200K)
2120* Changed replies from `claude agents` to arrive as queued messages; slash commands other than `/stop` sent while a turn is running now run when it ends
2121* Changed whole-tool `Bash` allow rules and allowing hooks to prompt for, not run, shell writes to files Claude Code's file tools refuse outright (the Anthropic profile store, the host credentials file)
2122* Changed right-click paste on Windows and Linux, and middle-click paste on Linux, to happen when the button is released; moving the pointer away before releasing cancels it
2123* Changed MCP server `alwaysLoad: false` to defer all of that server's tools behind tool search
2124* Changed screen reader mode to write new or changed lines without first pausing with the cursor at the start of the line; set `CLAUDE_AX_PREPARK_MS=50` to restore the pause
2125* Changed automatic model switches after a flagged message to keep your current effort level instead of the new model's default
2126* Changed waiting permission prompts to show oldest first, so a new prompt no longer covers the one you're reading (prompts with a countdown still open on top)
2127* \[VSCode] Changed the Claude in Chrome "Enabled by default" switch to also connect the editor's own sessions, which still ask before browser actions
2128
2129**20 improvements**
2130
2131* Improved `/config`: settings that cycle show ‹ › and step both ways with ←/→, narrow terminals stack each value under its label, and PgUp/PgDn page the list
2132* Improved plugin marketplace errors to say in plain words why a marketplace was ignored or refused, and what to do
2133* Improved plugin listings to note when a plugin's dependencies were not installed, and updating a plugin now retries an install that did not finish
2134* Improved the Claude apps gateway's error when Amazon Bedrock rejects a model ID: developers now see which model is unavailable, and the gateway log names the ID that was sent
2135* Improved SDK sessions so a message sent with priority "now" no longer cancels a running web fetch or web search; it keeps loading in the background
2136* Improved `/memory`: the left and right arrow keys now flip its on/off settings, such as Auto-memory
2137* Improved `/skill` names typed mid-message: Claude is now told they are skills, including `disable-model-invocation` ones
2138* Improved the contrast of the prompt input border in light themes and of the ❯ before your earlier messages
2139* Improved delivery of files Claude sends from cloud sessions and Remote Control: an upload that fails on a timeout, a network error or a 502, 503 or 504 is now retried once
2140* Improved what Claude says when a file cannot be sent for a reason that may be temporary: it now mentions that you can ask for t
2146* Fixed prompt suggestions not appearing on a phone that joins a Cowork cloud session started on another d
No line in this hunk matches that.