Terminal interface drops early-phase focus and blur handlers#
Parts of Claude Code's terminal interface can now react to focus and blur only in the bubble phase, not the capture phase
You can now turn off MCP task support by setting CLAUDE_CODE_DISABLE_MCP_TASKS. This release has 440 entries, and 284 of them are usable today. Accounts offered Life Sciences use cases get a new /use-case command to pick one. That choice is saved for later sessions. A new app:closeSession shortcut action lets you bind a key to close a session shown under session tabs. Programs that launch Claude Code can pass working directories exactly as given with the new permissions.workingDirectoriesAsGiven setting.
There are 12 entries in the build that are not switched on yet. A Wrap up tool would let Claude end a turn with a short recap and up to two next-step buttons. Claude Code now tracks messages for taking back a sent message with Esc, but the take-back does nothing yet. Hooks of type agent and mcp_tool can be read, but a remote allow list keeps them off and is empty by default. A spot is reserved for a live preview sharing dialog, with no way to open it yet.
Updates on macOS no longer delete the app bundle a running session is using. Saving settings no longer overwrites a config file that appeared while Claude Code was creating its own. Cancelling the theme picker no longer quits Claude Code. SDK hooks set to block on failure now stop the action as intended. Reading an unchanged file again no longer returns a short "file unchanged" note. The CLAUDE_CODE_LAZY_ENV_GETTERS environment variable is no longer recognised.
Written by our agent from the shipped bundle, not by Anthropic.
Adds CLAUDE_CODE_DISABLE_SUBAGENT_HANDBACK and CLAUDE_CODE_DEEP_TWILIGHT, and lists PARSED_WILLOW and DAPPER_CUPCAKE in more allowlists
ExtensionsA new ui.backdrop function lets plugins draw a blurred, tinted backdrop, and connecting clients can say they draw a Backdrop
ExtensionsClaude Code now has an app:closeSession shortcut action and a SessionTabs keybinding context for closing a session shown under session tabs
InterfaceRemote sessions gain new CLAUDE_CODE_* settings, such as a stall-check interval and a slow-skills watch, and CLAUDE_CODE_LAZY_ENV_GETTERS is dropped
/use-case command to choose a Life Sciences use caseAccounts offered Life Sciences use cases get a /use-case command and a startup dialog to pick one, saved for later sessions
Want the reasoning? Read walks the 51 entries that probably matter to you, each one opening to what changed and why.
Read this release → Every row →10 more of these are in What probably matters to you, on page 1.
Parts of Claude Code's terminal interface can now react to focus and blur only in the bubble phase, not the capture phase
The component behind step-by-step setup screens no longer has an option to show a step counter
Claude Code's sign-in state now holds a program use case tied to your account, and resets it when you switch account or sign in again
The screen offering your existing API key no longer acts each time the selection moves, and /logout keeps the result of clearing credentials
Claude Code now lists CLAUDE_CODE_FIZZY_GROVE and CLAUDE_CODE_DEEP_TWILIGHT alongside its other session environment variables
Unclear What either variable does, and whether these lists hand them on to sessions Claude Code starts, is not shown.
CLAUDE_CODE_DISABLE_MCP_TASKS is now passed on to programs Claude Code starts, and CLAUDE_CODE_HOST_SHORT_TEMP_DIRS is always set for them
Unclear What CLAUDE_CODE_DISABLE_MCP_TASKS actually switches off is not stated.
Hostnames ending in suffixes such as .consul, .corp, .ts.net, .onion, .i2p and .xip.io can now be treated as private or internal
Unclear It is not clear where Claude Code uses this check, so whether it changes any request you make is not known.
When Claude Code converts certificates to PEM text, the encoded body is now split into lines of 64 characters
In remote sessions, a document created through a docs connector during plan mode is now recorded as the plan's document
Remote and worker sessions now report the active plan document in their status information, and clear it when the mode changes
Claude Code changed how it matches the current model against the set that a server-side switch can move from a 1-hour to a 5-minute prompt cache
When you resume a session whose last reply used a 5-minute prompt cache, Claude Code may record a request for a 1-hour cache
Unclear What the recorded 1-hour request changes for a resumed session is not clear.
Claude Code's tracking of repeated commands now records which agent ran each one, so repeats across the main agent and subagents are noted
Unclear It is unclear whether Claude Code shows anything to you when it detects such a repeat.
A background check on subagent settings now records success or why it failed, and always sends an attribution header with its request
The Machines section of Claude's standing instructions now appears only when two conditions both hold, instead of one
Unclear What the two checks test is not stated, so who still gets the Machines section is unknown.
The internal option that let a caller swap in an entire replacement system prompt while building it has been removed
Claude Code now checks a teammate's messages before running shutdown steps, holds some in the queue, and fixes the step that closes a teammate's pane
Unclear It is not clear which teammate messages the new check holds back.
The cleanup pass for teammate inboxes now deletes teammate folders whose names match a certain pattern, not only their inboxes
Unclear Which teammate folder names cause a folder to be removed is not stated.
Claude Code can now pick out the web address of a fetch that an automatic permission check allowed and the server marked as cleared
The request WebFetch sends to its fetching service can now include an auto_mode_server_cleared marker set to true
Unclear When Claude Code adds this marker, and what the fetching service does differently because of it, is not stated.
On Windows, the sandbox now keeps a record of the read and write block lists it was given when it started
Claude Code can now tell, on Windows, whether a path is a folder, a junction or missing
The login screen no longer has a 'Creating API key for Claude Code…' step with a spinner
The installer screen no longer shows the "Cleaning up old npm installations..." step
A faint upgrade suggestion that used to appear as a second line under a link row is no longer shown
Claude Code no longer shows the faint "Unchanged since last read" or "Already in context" line when it rereads an unchanged file
Published verbatim by Anthropic for v2.1.317. Text is unmodified from the upstream changelog. Everything else on this page came out of the bundle instead, which is why the two lists don't match.
Of these 87 bullets, 14 name something an entry on this page also names, 26 name something no entry here does, and 47 name nothing specific enough to line up either way. The pairings are made on names both sides wrote down, a flag or a setting or a slash command, so read one as probably the same thing rather than as a fact, and read the middle number as candidates rather than as a miss count.
/schedule when a new cloud scheduled task gets connectors you did not ask for, with how to remove them
No entry names this onFailure: "block" for Agent SDK hook callbacks, so a callback that fails blocks the action instead of letting it run
No entry names this anthropic.plan, anthropic.seat_type, anthropic.provider and anthropic.custom_base_url to OTel metrics, events and spans
No entry names this GET /v1/organizations/analytics/cost, for reading past spend over a date range in total, per developer, per day or per IdP group
No entry names this admin: set, kept for admin.identity_retention_days, which the cost report groups by
No entry names this CLAUDE_CODE_DISABLE_NESTED_SESSION_ID: set it to 1 on a self-hosted runner to have claude -p run inside a session use that session's ID and transcript, as in earlier versions
Probably new-session-writes-lost-system-message-and-full-disk-exit-ha, nested-session-id-opt-out-env-var-added claude auth status exiting before a slow token refresh was saved, which could sign you out on the next run
No entry names this #95822Short-lived commands (`claude auth status`, `claude --bg …`) start an OAuth refresh at init and exit without saving it, leaving the profile with a spent refresh token Open
effortLevel setting being ignored by sessions that an app starts ahead of time and then opens in the project, such as new sessions in the desktop app's Code tab
No entry names this #104336[BUG] Desktop app (Windows): Code-tab sessions sometimes start at Medium effort, ignoring the High pick and the project's effortLevel Open
#93735Project-scope effortLevel in .claude/settings.json is never applied in desktop-app (Code tab) sessions; effective effort varies per session with no settings change Open
claude --from-pr reporting "No conversations found" in projects with many sessions when the linked session was older than the first page
No entry names this /loop wakeups sometimes not being scheduled when Claude left a field out of its request
No entry names this /schedule leaving a cloud scheduled task's next run time and link out of its results after creating or updating it
No entry names this claude -p exiting 0 when a full disk or quota lost its transcript or ~/.claude.json writes; it now prints an error and, in text and json output, exits 1. Full NFS exports may be missed
Probably new-session-writes-lost-system-message-and-full-disk-exit-ha --setting-sources
Probably added-folder-plugins-follow-setting-sources, runner-passes-empty-setting-sources-when-the-arg-is-explic /team-onboarding guide when asked to delete one without naming which
No entry names this /team-onboarding guide was deleted when the server refused the delete
No entry names this AWS_BEARER_TOKEN_BEDROCK when their env config sets it to empty; the variable is now unset, so the server can use the machine's own AWS credentials
No entry names this DISABLE_PROMPT_CACHING_OPUS and DISABLE_PROMPT_CACHING_SONNET having no effect on [1m], other-region and undated spellings of the default model
Probably prompt-caching-disable-env-vars-now-compare-models-by-identi /artifacts and the Artifact tool's shared list showing no shared artifacts when you have 200 or more of your own
Probably get-artifacts-route-added-to-an-allow-list https:// endpoint through a proxy never being sent when they started while another export was still in progress
Probably only-https-origins-accepted-for-url-origin-helper, fetching-the-servers-certificate-chain-to-repair-tls-verifi http:// endpoint
No entry names this OTEL_EXPORTER_OTLP_TIMEOUT up to 30 seconds
Probably otlp-proxy-tunnel-agent-and-timeouts /remote-control answering "Unknown command" instead of saying that Remote Control is turned off by the disableRemoteControl setting
Probably remote-control-status-message-drops-upgradenudge, remote-control-slash-command-can-be-blocked-by-managed-polic claude -p run inside a cloud or self-hosted runner session sharing that session's ID: it wrote into the session's transcript, and a restart could resume the wrong conversation
Probably new-session-writes-lost-system-message-and-full-disk-exit-ha claude -p run inside a cloud or self-hosted runner session generating a title of its own and sending it to that session
Probably new-session-writes-lost-system-message-and-full-disk-exit-ha cloud_credential_error
No entry names this /design-sync to say up front when your design system has moved to Claude, and stop before building instead of failing at upload
Probably design-sync-messages-for-design-systems-that-moved-to-claud --chrome --debug) ahead of --resume
Probably resume-hint-can-include-launch-flags-file-writes-gain-creat plugin-authoring skill to offer once, after a mod you built works, to help share the mod
No entry names this /usage showing a developer's own spend limit as 100% used after their group's pooled budget ran out
No entry names this CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS
No entry names this claude remote-control a fork of "Name (fork)" is "Name (fork 2)"
Probably fork-name-fallback-for-session-titles-removed chat.fontSize is raised
No entry names this ultrathink not raising effort for its turn or showing its rainbow when telemetry is off
Nothing to match on claude remote-control, when you sent it within a minute of your previous message
No entry names this A model matched these bullets to the GitHub issues they fix, so a link can be wrong.
1 prompt changed.
Claude Code, interactive mode
6 prompt changes in this release could not be quoted from the build, so no entry on this page describes them.
263 documentation changes were recorded within 24 hours either side of this release, nearest first. The closest 12 are below. They're here because they happened near this release in time. That's not a claim that this release caused the edit, or that the page documents anything in it.
The 69 literal strings found in the bundle, with the number of entries that name each one. Picking one searches for it. A name is here because this build's code mentions it, which is not the same as it working or being finished.
What's wrong with this entry?