Releases: anthropics/claude-code
Releases · anthropics/claude-code
v2.1.183
What's changed
- Improved auto mode safety: destructive git commands (
git reset --hard,git checkout -- .,git clean -fd,git stash drop) are now blocked when you didn't ask to discard local work,git commit --amendis blocked when the commit wasn't made by the agent this session, andterraform destroy/pulumi destroy/cdk destroyare blocked unless you asked for the specific stack - Added a warning when the requested model is deprecated or automatically updated to a newer model, shown on stderr in print mode (
-p) and now also covering models set in agent frontmatter - Added
attribution.sessionUrlsetting to omit the claude.ai session link from commits and PRs in web and Remote Control sessions - Added
/config --helpto list all available shorthand keys for/config key=value - Changed
/configtoggle behavior: Enter and Space both change the selected setting, and Esc now saves and closes instead of reverting - Removed the startup "setup issues" line under the logo — run
/doctorto see configuration issues or use--debug - Fixed
thinking.disabled.display: Extra inputs are not permitted400 errors on subagent spawns and session-title generation for affected configurations - Fixed WebSearch returning empty results in subagents
- Fixed the terminal cursor being stranded above the prompt after navigating history in vim mode with the native cursor enabled
- Fixed fullscreen TUI corruption (statusline mid-screen, duplicated spinner rows, merged text) in Windows Terminal under heavy nested-subagent load
- Fixed turns silently completing with no visible output when the model returned only a thinking block; Claude now re-prompts once
- Fixed user-level skills appearing multiple times in slash-command autocomplete when multiple plugins are enabled
- Fixed MCP servers requiring authentication exposing auth-stub tools to the model in headless/SDK mode
- Fixed tmux teammate panes failing to launch when the shell has slow rc-file initialization, and keystrokes typed during agent spawn leaking into the new tmux pane instead of the leader prompt
- Fixed background tasks started by a teammate being killed when the teammate finishes a turn
- Fixed scheduled task and webhook trigger deliveries being treated as keyboard input; they now classify as task notifications and can no longer approve a pending action or set the session title in auto mode
- Fixed focus mode showing "Ran N PostToolUse hooks" timing lines under each response
v2.1.181
What's changed
- Added
/config key=valuesyntax to set any setting from the prompt (e.g./config thinking=false) — works in interactive,-p, and Remote Control - Added
sandbox.allowAppleEventsopt-in setting that lets sandboxed commands send Apple Events on macOS - Added
CLAUDE_CLIENT_PRESENCE_FILEenvironment variable: point it at a marker file to suppress mobile push notifications while you're at the machine - Upgraded the bundled Bun runtime to 1.4
- Improved streaming of long paragraphs: text now appears line-by-line instead of waiting for the first line break
- Improved auto-retry: API connection drops mid-thinking now automatically retry instead of showing "Connection closed while thinking"
- Improved the subagent panel: idle subagents auto-hide after 30s, the list caps at 5 rows with scroll hints, and keyboard hints now show in the footer
- Improved the MCP OAuth browser page to match Claude Code's visual style and auto-close on success
- Changed fullscreen mode URL opening to require Cmd+click (macOS) / Ctrl+click, matching native terminal behavior
- Changed the
Improved N memoriesline to no longer list individual files outside verbose mode - Fixed prompt caching not reading on custom
ANTHROPIC_BASE_URLand on Foundry due to a per-request attestation token changing every turn - Fixed Write/Edit producing 0-byte or truncated files on network drives and cloud-synced folders
- Fixed
open,osascript, and browser-based auth flows failing with error -600 on macOS by adding the Apple Events entitlement - Fixed a startup regression (~120ms per launch in fresh environments, introduced in 2.1.169): the first prompt no longer waits for the managed-settings fetch when no MCP servers are configured
- Fixed startup blocking with a blank terminal for up to 15 seconds when the account settings fetch is slow on a degraded network
- Fixed startup crash (
TypeError: Cannot read properties of null) when.claude.jsoncontains corrupted null project entries - Fixed macOS TUI freezing at session start (Ctrl+C unresponsive) when Spotlight is busy reindexing
- Fixed long-running idle sessions losing their history when another Claude Code process ran the 30-day transcript cleanup
- Fixed foreground subagents spawning unbounded nested chains; they now respect the same 5-level depth limit as background subagents
- Fixed
/recapand conversation forks using the previous model immediately after a model switch - Fixed subagent "Thinking" duration showing the parent agent's elapsed time instead of the subagent's own
- Fixed subagents blocked on a nested agent showing a ticking elapsed time instead of "waiting" in the agent panel
- Fixed the API retry indicator ("Retrying in 0s · attempt N/10") staying on screen after the retry succeeded
- Fixed AWS
awsCredentialExportcredentials with a short remaining lifetime causing credential refreshes every minute, and now accepts the JSON shape fromaws configure export-credentials - Fixed
claude mcp get/listshowing✓ Connectedwhen tools/list fails; they now show! Connected · tools fetch failedwith the error detail - Fixed
/remote-controlleaving a stale "connecting…" line; it now confirms in the transcript once connected - Fixed ExitWorktree refusing to remove a clean worktree with "Could not verify worktree state" when bare
gitcannot be resolved on Windows - Fixed settings changes (such as
/effortor/model) failing with ENOENT when~/.claude/settings.jsonis a relative symlink under a symlinked~/.claude - Fixed IDE selection line numbers in context reminders being off by one (IntelliJ and VS Code)
- Fixed Ctrl+C in fullscreen after a native terminal selection (modifier+drag) overwriting the clipboard with the app's prior selection
- Fixed Ctrl+V showing "No image found in clipboard" instead of pasting when the clipboard contains text
- Fixed agent creation failing with "EEXIST: file already exists" when the agents directory already exists (Windows/OneDrive)
- Fixed AskUserQuestion preview content being cut off at the dialog edge instead of word-wrapping
- Fixed AskUserQuestion multi-select questions silently dropping a typed "Other" free-text answer when submitting
- Fixed
/stats"Most active day" and daily token chart dates showing one day early in UTC-negative timezones - Fixed
/copyand copy-on-select on Linux not detecting a clipboard utility installed after Claude Code started - Fixed tab-indented code rendering with incorrect indentation in the Write (create-file) preview
- Fixed user prompts queued mid-turn not showing a full-width background highlight in the transcript
- Fixed the activity spinner's pulse dwelling on the wrong glyph size in Ghostty
v2.1.179
What's changed
- Fixed mid-stream connection drops: partial responses are now preserved instead of showing a raw error, and the spinner no longer gets stuck at "running tool"
- Fixed mouse-wheel scrolling in WSL2 under Windows Terminal and VS Code (regression in 2.1.172)
- Fixed a sandbox
denyRead/allowReadglob over a large directory tree making the Bash tool description enormous and the session unusable on Linux - Fixed the feedback survey capturing a single-digit reply as a session rating immediately after a turn completes
- Fixed the welcome screen stacking multiple promotional banners — at most one promo now shows per session
- Fixed Ctrl+O not showing the subagent's transcript when viewing a subagent
- Fixed clicking the prompt input not returning focus from the subagent/footer panel
- Fixed remote session background tasks appearing stuck as "still running" between turns
- Improved plugin loading performance in remote sessions
v2.1.178
What's changed
- Added
Tool(param:value)syntax for permission rules to match a tool's input parameters (with*wildcard), e.g.Agent(model:opus)to block Opus subagents - Skills in nested
.claude/skillsdirectories now load when working on files there; on a name clash, the nested skill appears as<dir>:<name>so both stay available - Nested
.claude/directories: the agent, workflow, and output-style closest to the working directory now wins when names collide; project-scope workflow saves now target the closest existing.claude/workflows/ - Improved auto mode: subagent spawns are now evaluated by the classifier before launch, closing a gap where a subagent could request a blocked action without review
- Improved
/doctorwith consistent flat tree layout across all sections, clearer section status icons, and highlighted command names - Improved the skill listing truncation warning to show how many skill descriptions are affected
- Changed the workflow prompt keyword to use a purple shimmer highlight and trigger only on explicit phrases like "run a workflow" or "workflow:", not on any mention of the word
- Improved Remote Control error messages: connection failures now show a persistent red "/rc failed" indicator in the footer, and the "not yet enabled" error now explains whether it's a gate, a check failure, stale entitlement, or org policy
/bugnow requires a description before submitting, and no longer uses model-refusal text as the GitHub issue title- Fixed a crash (out-of-memory) when the CLI inherits a stale websocket/OAuth file-descriptor environment variable from a parent process
- Fixed Claude in Chrome silently failing to connect when the OAuth token belongs to a different account than the Claude Code login
- Fixed nested
.claude/skillsskills with directory-qualified names being blocked by permission prompts in non-interactive runs - Fixed several subagent issues: viewing a subagent's transcript now shows tool results and live progress, messages sent while it finishes its turn are no longer dropped, and backgrounding a running subagent (ctrl+b) no longer restarts it from scratch
- Fixed
claude agentsworkers failing with401 Invalid bearer tokenwhen the daemon was started from a shell with a custom API gateway viaANTHROPIC_BASE_URLandANTHROPIC_AUTH_TOKEN - Fixed compaction not honoring
--fallback-model: compaction now falls back to the configured fallback model chain on overload or model-availability errors - Fixed model requests continuing to fail with auth errors after credentials were refreshed outside the session, due to a stale cached request configuration
- Fixed background sessions created with
/bgor←←after a turn finished showing "Working" forever in the agents list - Fixed
CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1preventing fresh marketplace installs from cloning - Fixed MCP server-level specs (
mcp__server,mcp__server__*,mcp__*) in subagentdisallowedToolsbeing silently ignored - Fixed vim mode undo:
unow steps through NORMAL/VISUAL-mode commands one at a time instead of merging commands in quick succession into a single undo step - Fixed statusline links with custom URI schemes (e.g.
vscode://) not opening when clicked inclaude agents - [VSCode] Fixed pressing Esc to dismiss a CJK IME candidate window canceling the running Claude task
v2.1.177
chore: Update CHANGELOG.md and feed.xml
v2.1.176
What's changed
- Session titles are now generated in the language of your conversation (set the
languagesetting to pin a specific language) - Added
footerLinksRegexessetting for regex-matched link badges in the footer row, configurable via user or managed settings - Improved Bedrock credential caching: credentials from
awsCredentialExportare now cached until theirExpirationinstead of a fixed 1 hour - Fixed
availableModelsenforcement: alias model picks can no longer be redirected to a blocked model viaANTHROPIC_DEFAULT_*_MODELenvironment variables, and/fastnow refuses to toggle when it would switch to a model outside the allowlist - Fixed auto mode failing on Fable 5 for organizations without Opus 4.8 enabled — the classifier now falls back to the best available Opus model
- Fixed hook
ifconditions for Read/Edit/Write tool paths: documented patterns likeEdit(src/**),Read(~/.ssh/**), andRead(.env)now match correctly - Fixed Linux sandbox failing to start when
.claude/settings.jsonis a symlink with an absolute target - Fixed
/copyand mouse-selection copy not reaching the system clipboard inside tmux over SSH, and tmux paste buffer not loading on versions older than 3.2 - Fixed Remote Control connecting from web/mobile silently switching the session's model
- Fixed Remote Control disconnect notifications showing a bare numeric code instead of a human-readable reason, and connection failures adding a duplicate line to the conversation transcript
- Fixed Remote Control sessions not disconnecting when you sign in to a different account
- Fixed
/cdand worktree moves leaving the session reporting the previous directory's git branch - Fixed
claude agents: pressing back in one window no longer detaches other windows attached to the same session - Fixed backgrounded sessions showing "Working" forever when
/bgmid-turn had nothing left to continue - Fixed background agent search by PR URL: PRs opened during scheduled wakeups or while a job was blocked now appear in
claude agentssearch - Fixed the agents view input showing no text cursor on Windows
- Fixed
claude --bg -cn <name>not seeding the session name - Fixed background sessions to neutralize Windows network paths in persisted state before respawn
- Fixed background-session respawn rejecting malformed resume IDs from corrupted state files
- Fixed the Windows background-service daemon not starting when
~/.claude/daemonhas the ReadOnly attribute set - Fixed cloud sessions failing with "Could not resolve authentication method" when idle for too long before being claimed
- Background sessions now show clearer guidance when a window left open across an auto-update can't submit a reply, and
claude daemon statusexplains version-skew behavior
v2.1.175
What's changed
- Added
enforceAvailableModelsmanaged setting — when enabled, theavailableModelsallowlist also constrains the Default model (a Default that would resolve to a disallowed model now falls back to the first allowed model), and user or project settings can no longer widen a managedavailableModelslist
v2.1.174
What's changed
- Added
wheelScrollAccelerationEnabledsetting to disable mouse-wheel scroll acceleration in fullscreen mode - Fixed the
/modelpicker hiding the model family that Default resolves to — Opus now appears as its own row on Max/Team Premium/Enterprise plans, Sonnet on Pro/Team plans, and Opus on pay-as-you-go API accounts - Fixed
/modelpicker showing a hardcoded Sonnet version label whenANTHROPIC_DEFAULT_SONNET_MODELpins a different Sonnet - Fixed the "Fable 5 is now consuming usage credits" banner incorrectly showing for enterprise accounts with usage-based billing
- Fixed Bedrock GovCloud regions (
us-gov-*) deriving the wrong inference profile prefix (globalinstead ofus-gov), causing 400 errors on derived model IDs - Fixed background sessions inheriting another session's
ANTHROPIC_*provider env (gateway URL, custom headers,/modelaliases) from the shell that started the background daemon - Fixed a 1-2 second pause when exiting Claude Code shortly after a shell command was interrupted or killed on macOS and Linux
- Fixed git commit co-author attribution showing an incorrect model name for some models
- Fixed the
/advisordialog pre-selecting a saved advisor model that is blocked by theavailableModelsallowlist - Fixed skill hot-reload re-sending the entire skill listing when a single skill changed; only changed skills are now re-announced
- Fixed Workflow tool
agent()subagents missing per-agent attribution headers - [VSCode] Added usage attribution to the Account & usage dialog (
/usage) showing cache misses, long context, subagents, and per-skill/agent/plugin/MCP breakdowns over the last 24h or 7d - Fixed pre-warmed background workers failing with "Could not resolve authentication method" when claimed after sitting idle
v2.1.173
What's changed
- Fixed Fable 5 model names with a
[1m]suffix not being normalized — Fable 5 includes 1M context by default, so the suffix is now stripped automatically - Fixed a spurious "sandbox dependencies missing" startup warning on Windows when sandbox was enabled in settings
v2.1.172
What's changed
- Sub-agents can now spawn their own sub-agents (up to 5 levels deep)
- Amazon Bedrock now reads the AWS region from
~/.awsconfig files whenAWS_REGIONisn't set, matching AWS SDK precedence;/statusshows where the region came from - Added a search bar when browsing a marketplace's plugins in
/plugin - Added
modelattribute to theclaude_code.lines_of_code.countOTEL metric - Fixed sessions using 1M context without usage credits getting permanently stuck — the session now automatically compacts back under the standard context limit
- Fixed a repeating "an image in the conversation could not be processed and was removed" error when the conversation contained multiple images
- Fixed the agents view keeping a session under Working with a busy spinner for up to 30 seconds after the worker replied
- Fixed background agents potentially reading another directory's project settings (
.mcp.jsonapprovals, trust) when dispatched onto a pre-warmed worker - Fixed background-session attach failing with EAUTH for sessions started on an older version after the daemon auto-updated
- Fixed a background sub-agent staying stuck as "active" in the agent panel after a nested agent it spawned was stopped
- Fixed
/modelsuggestions in theclaude agentsdispatch input rendering with a misleading slash prefix and showing models disabled for your org - Fixed
availableModelsrestrictions not being applied to subagent model overrides, the agent dispatch model picker, and the advisor model - Fixed
availableModelsallowlists hiding the/modelpicker's Opus and Sonnet 1M rows when entries use version-specific IDs likeclaude-opus-4-8 - Fixed the
/modelpicker on Bedrock offering models the provider doesn't serve — selecting one silently switched the session model and lit the selection marker on multiple rows - Fixed model IDs getting a doubled 1M-context suffix (e.g.
[1M][1m]) whenANTHROPIC_DEFAULT_OPUS_MODELalready includes one - Fixed
opusplanmodel setting not shipping with 1M context in plan mode for entitled users; theopusplan[1m]workaround now also correctly switches to Opus in plan mode - Fixed
WebFetch(domain:*.example.com)wildcard domain rules never matching subdomains in allow, deny, and ask position, and file permission rules with mid-pattern wildcards (e.g.Read(secrets-*/config.json)) being rejected at startup - Fixed up-arrow prompt history showing the main agent's prompts while a subagent's chat tab is open
- Fixed memory recall not finding mounted team memory stores (
CLAUDE_MEMORY_STORES) in remote sessions - Fixed workflow validation rejecting scripts whose prompt strings or comments merely mention
Date.now()/Math.random() - Disable mouse tracking on Windows consoles that don't fully support it
- Fixed the
/pluginmarketplace list losing its cursor after backing out of a long plugin list, and Esc from the plugin browser returning to the wrong tab - Improved performance in long conversations by removing redundant message normalization and avoiding full message-history transforms when streaming tool-use state is unchanged
- Reduced idle CPU usage:
/goalstatus chip no longer re-renders the terminal at 5 Hz while idle, and fewer UI re-renders while subagents run in parallel - Improved Claude in Chrome tool loading: browser tools now load in a single batched call instead of one per tool
- Improved the non-interactive Usage Policy refusal message to suggest starting a new session or changing your model
/code-reviewnow keeps theultraoption visible when you're not signed in to claude.ai, with an explanation that the cloud review requires a claude.ai account- Shortened the Remote Control footer indicator to "/rc active" and hid it on narrow terminals
- Stopped promoting
/loopin remote sessions, where pending loops don't keep the container alive - [VSCode] Fixed PowerShell tool calls rendering as raw JSON instead of a proper command display and permission dialog, and stripped ANSI escape codes from displayed shell output