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