Release notes

FEATURE

ANTHROPIC_DEFAULT_MODEL sets session defaults while preserving /model picks

The new ANTHROPIC_DEFAULT_MODEL environment variable (a value supplied before the program starts) sets the model for new sessions. With zsh, add this to ~/.zshrc in your home directory, then open a new terminal before starting Claude Code:

export ANTHROPIC_DEFAULT_MODEL=sonnet

sonnet is the default-model alias to enter; use opus for Opus, or a full supported model name. A /model selection during a conversation still overrides the default and persists after restarts, unlike the model-locking ANTHROPIC_MODEL.

FEATURE

SendMessage adds notify_when_idle for one-shot cross-session notices

Cross-session SendMessage on macOS and Linux now includes a notify_when_idle option. When you run multiple Claude Code sessions on the same machine, one session can ask another to send a single notice the next time it becomes idle. It is an opt-in, one-shot mechanism that eliminates the need to poll the target session in a busy loop.

FEATURE

macOS sandbox enforces wildcard read-deny rules and blocks rename bypasses

On macOS, sandbox wildcard read-deny rules (such as **/.env) now take precedence inside allowed read regions. They cover the full contents of matched directories, and access cannot be bypassed simply by renaming the denied file.

BUGFIX

Session utilities, MCP logs, and skills hot-reload survive deleted working directories

Background tasks and utilities no longer break when a session's directory is deleted from underneath it. Since 2.1.229, removing the active working directory broke clipboard copying, background housekeeping, background sessions, and local MCP (Model Context Protocol) logs, while triggering errors on every skill change in SDK and VS Code sessions. The runtime now handles missing working directories smoothly without failing.

BUGFIX

Fullscreen renderer falls back to classic mode if startup fails

The fullscreen renderer now recovers gracefully from startup failures. Previously, if the fullscreen renderer failed to initialize a single time, the application became permanently broken and crashed on every subsequent launch. It now falls back to the classic terminal renderer instead of exiting, keeping your session operational.

BUGFIX

/model picker scrolls within terminal bounds and highlights only newest release

The /model picker now fits cleanly inside your terminal window. If the list of available models is taller than the terminal, it renders only what fits and lets you scroll through the rest. Furthermore, the highlight style is now reserved exclusively for the newest model release rather than arbitrary items.

BUGFIX

SendMessage fixes malformed closing tags causing summary text rejections

Cross-session messaging now parses malformed payload tags reliably. Previously, when calling SendMessage, a broken closing tag could accidentally displace the message body into the summary parameter, causing the request to be rejected. The parser now isolates the text correctly regardless of imperfect tag formatting.

BUGFIX

Subprocess startup failures are handled cleanly without unhandled rejections

Subprocess startup failures no longer trigger unhandled promise rejections. In version 2.1.234, trying to launch a command like powershell.exe on WSL with Windows interop disabled caused unhandled runtime crashes. The process manager now catches and handles these startup errors cleanly.

BUGFIX

Fullscreen mode fixes delayed messages, prompt blank bands, and pane repainting

Fullscreen mode received several screen-drawing and layout fixes. Resizing the terminal window sometimes caused newly submitted messages to remain invisible until the subsequent UI tick. In addition, clearing multi-line prompts could leave an empty blank band above the input area, and resizing panes away and back left views unpainted. These visual rendering issues have all been resolved.

BUGFIX

Managed-settings prompt ensures visibility before capturing approval keystrokes

A dangerous security issue with managed settings prompts has been fixed. Previously, the startup prompt asking for approval of managed configurations could fail to display on screen while still recording your very first keystroke as consent. The prompt now reliably renders before processing user input.

BUGFIX

tmux tab titles stop jumping by updating only when text actually changes

Terminal tab titles inside tmux (especially via iTerm tmux integration) no longer jump jittery across updates. The title string used to be rewritten continuously on a 960ms animation loop, creating visible flicker on the tab bar. It is now written only when the title text itself changes.

BUGFIX

Clear errors when cloud environments list is empty or malformed

Fetching cloud environments now returns descriptive diagnostics if the response is empty or damaged. Previously, when the cloud environment endpoint returned an empty list or malformed data, the CLI presented an opaque, unhelpful error message. It now explains the failure clearly so you can diagnose configuration issues quickly.

BUGFIX

Remote Control stops auto-selecting fallback models on Fable 5 prompt timeout

When using Remote Control, the initial usage-credits confirmation prompt for Fable 5 no longer automatically picks a fallback model after 60 seconds of inactivity. It now remains open until you explicitly respond.

BUGFIX

Spinner tips and background loops recover from malformed guest-pass cache

Spinner tips now appear reliably while waiting for responses. Previously, if the cached guest-pass reward in ~/.claude.json was malformed, the system entered a repeated background error loop and failed to render loading tips completely. The cache reader now handles corrupted data gracefully.

BUGFIX

Self-hosted runner sessions await post-session hooks before migrating

Self-hosted runner session lifecycle handling is now race-free. When a session is released due to idle, retire, or startup timeout, it used to occasionally resume on a different runner before its post-session hook finished executing. The coordinator now strictly awaits hook completion before migrating the session.

BUGFIX

Clawd mascot eyes and feet align neatly across all iTerm2 font sizes

The Clawd mascot in iTerm2 now displays with consistent proportions. At certain terminal font sizes, character cell measurement differences caused Clawd's ASCII eyes and feet to render misaligned and lopsided. Spacing has been adjusted so the mascot appears cleanly balanced across different font configurations.

BUGFIX

Session recaps capped at 400 characters and trimmed at word boundaries

Session recaps will no longer run away with endless text. Both automatic recaps and manual /recap outputs are now capped at a maximum of 400 characters, neatly truncated at a clean word boundary so that sentences do not cut off mid-word.

PERF

Session counter writes in background to boost startup performance

Launching Claude Code is now faster and more responsive. Previously, the CLI blocked startup while waiting to record the session counter to disk. This write operation is now handled in the background, allowing the prompt interface to open without unnecessary disk I/O delay.

FEATURE

Auto mode reviews Monitor commands like Bash by shelving allow rules

Auto mode security has been strengthened. When auto mode is active, existing Monitor allow rules are temporarily set aside, ensuring that Monitor commands undergo the exact same safety review as standard Bash commands.

FEATURE

Auto mode classifier unifies severity scoring across all cloud platforms

Auto mode classification is now standardized across third-party cloud environments. On Bedrock, Vertex AI, Foundry, and setups where telemetry is turned off, the auto mode classifier now adopts the exact same defaults used on the Claude API, including severity-scored safety classification.

FEATURE

Auto mode git status check ignores showUntrackedFiles=no overrides

The git status check in auto mode is now impervious to repository overrides. Previously, a repo configured with status.showUntrackedFiles=no could fool the check into declaring a clean working tree. The inspector now inspects untracked files accurately regardless of local git configuration.

FEATURE

/goal periodically checks in on sessions parked behind background tasks

When a session running under /goal is parked waiting for long-running background tasks to complete, it now checks in automatically after 30 minutes (and subsequently at 1h and 2h marks) instead of sitting idle until you return.

FEATURE

/usage displays usage-credits rows for Team and Enterprise plans

The /usage command now provides detailed credit consumption views for Team and Enterprise organization members. It displays a dedicated usage-credits row, which clearly shows a capped bar at 0% before any spending occurs, giving teams full clarity over their starting baseline.

FEATURE

SIGTERM in print/SDK modes exits cleanly without synthetic tool denials

Terminating print or SDK sessions via SIGTERM now produces clean exit logs. The runtime no longer injects synthetic tool denials or interrupted-turn artifacts into the conversation transcript before shutting down. Active commands are still terminated properly, and the process exits with status code 143.

FEATURE

Slash-command typos report errors directly instead of guessing fuzzy matches

Typing a slash-command typo or invoking a command not available in the current session now cleanly displays an error on Enter, instead of executing the nearest fuzzy match. Legitimate command prefixes and registered aliases continue to execute as expected.

FEATURE

Remote Control reflects offline status within seconds when CLI exits

Remote Control session status synchronizes much faster when your local client shuts down. Whenever the CLI exits or the terminal window is closed, connection status refreshes immediately. Remote Control now marks the session as offline within seconds instead of lingering as active.

BUGFIX

SendMessage rejects inbox overflows up front instead of dropping them silently

Cross-session messaging now guarantees honest feedback when handling sudden bursts. Previously, when rapid bursts exceeded what a destination session's inbox could accommodate, SendMessage reported them as delivered even though messages were dropped. It now rejects excessive messages up front with an error so the caller can back off or retry.

FEATURE

Prompt border title chips and right-aligned footer items align consistently

The terminal prompt layout has been polished for visual consistency. The session title chip embedded on the prompt border now aligns with the footer's right edge. Furthermore, right-aligned footer items (such as the goal indicator, session state, and background agent status) and truncated notices share a uniform right margin with the prompt box.

FEATURE

VS Code extension adds screen reader announcements and heading navigation

The VS Code extension now provides full screen reader accessibility for the session transcript. Users receive live audible announcements for incoming replies, permission prompts, errors, and status changes. In addition, the transcript incorporates per-turn heading structures so assistive technology users can navigate swiftly from turn to turn.

Original changelog

Original changelogANTHROPIC_DEFAULT_MODEL sets session defaults while preserving /model picks
Added `ANTHROPIC_DEFAULT_MODEL` environment variable: sets the model new sessions start on, while a `/model` pick still overrides it and persists across restarts (unlike `ANTHROPIC_MODEL`)
Original changelogSendMessage adds notify_when_idle for one-shot cross-session notices
Added `notify_when_idle` to cross-session `SendMessage`: ask another Claude Code session on this machine to send one notice when it next goes idle — opt-in, one-shot, no polling (macOS and Linux)
Original changelogmacOS sandbox enforces wildcard read-deny rules and blocks rename bypasses
Sandbox: on macOS, wildcard read-deny rules (e.g. `**/.env`) now take precedence inside allowed read regions, cover matched directories' contents, and can't be bypassed by renaming the denied file
Original changelogSession utilities, MCP logs, and skills hot-reload survive deleted working directories
Fixed clipboard copy, background housekeeping, background sessions, and local MCP logs breaking after the directory a session had switched into was removed (since 2.1.229)
Fixed skills hot-reload in SDK/VS Code sessions raising an error on every skills change after the session's working directory was deleted (2.1.229+)
Original changelogFullscreen renderer falls back to classic mode if startup fails
Fixed the fullscreen renderer failing permanently after a single failed start: it now falls back to the classic renderer instead of exiting on every subsequent launch
Original changelog/model picker scrolls within terminal bounds and highlights only newest release
Fixed the `/model` picker rendering taller than the terminal: it now shows only as many models as fit the window, with the rest reachable by scrolling
Changed the `/model` picker to highlight only the newest model's name, so the highlight marks the new release rather than an arbitrary subset of the list
Original changelogSendMessage fixes malformed closing tags causing summary text rejections
Fixed `SendMessage` calls being rejected when a malformed closing tag left the message text inside the summary field
Original changelogSubprocess startup failures are handled cleanly without unhandled rejections
Fixed unhandled promise rejections when a subprocess fails to start, for example `powershell.exe` on WSL with Windows interop disabled (regression in 2.1.234)
Original changelogFullscreen mode fixes delayed messages, prompt blank bands, and pane repainting
Fixed fullscreen mode sometimes not showing a newly sent message until the next update after the terminal was resized
Fixed a blank band that could remain above the prompt after clearing a multi-line prompt, and panes not repainting after resizing the terminal away and back, in fullscreen mode
Original changelogManaged-settings prompt ensures visibility before capturing approval keystrokes
Fixed the managed-settings approval prompt sometimes not appearing at startup while still capturing the first keypress as approval
Original changelogtmux tab titles stop jumping by updating only when text actually changes
Fixed terminal tab titles jumping in tmux (iTerm tmux integration): the title is now written only when its text changes instead of animating every 960ms
Original changelogClear errors when cloud environments list is empty or malformed
Fixed an unclear error when the cloud environments list came back empty or malformed
Original changelogRemote Control stops auto-selecting fallback models on Fable 5 prompt timeout
Fixed the Fable 5 first-time usage-credits prompt auto-selecting the fallback model after 60 seconds with no answer when using Remote Control
Original changelogSpinner tips and background loops recover from malformed guest-pass cache
Fixed spinner tips never appearing, with a repeated background error, when the cached guest-pass reward in `~/.claude.json` was malformed
Original changelogSelf-hosted runner sessions await post-session hooks before migrating
Fixed self-hosted runner sessions released on idle, retire, or startup timeout occasionally resuming on another runner before the post-session hook had finished
Original changelogClawd mascot eyes and feet align neatly across all iTerm2 font sizes
Fixed the Clawd mascot's eyes and feet rendering unevenly in iTerm2 at some font sizes
Original changelogSession recaps capped at 400 characters and trimmed at word boundaries
Fixed occasional runaway session recaps: recap text (automatic and `/recap`) is now capped at 400 characters, cut at a word boundary
Original changelogSession counter writes in background to boost startup performance
Improved startup performance: the session counter is now written in the background
Original changelogAuto mode reviews Monitor commands like Bash by shelving allow rules
Improved auto mode: `Monitor` allow rules are now set aside while auto mode is active, so Monitor commands are reviewed the same way Bash commands are
Original changelogAuto mode classifier unifies severity scoring across all cloud platforms
Improved auto mode on Bedrock, Vertex AI, and Foundry, and when telemetry is disabled: the classifier now uses the same defaults as on the Claude API, including severity-scored classification
Original changelogAuto mode git status check ignores showUntrackedFiles=no overrides
Improved auto mode: the git status check can no longer be fooled by a repo's `status.showUntrackedFiles=no` setting into reporting a clean tree
Original changelog/goal periodically checks in on sessions parked behind background tasks
`/goal`: an idle session whose goal is parked behind long-running background work now checks in automatically after 30 minutes (then 1h, 2h) instead of waiting for you to return
Original changelog/usage displays usage-credits rows for Team and Enterprise plans
`/usage` now shows the usage-credits spend row for Team and Enterprise members, and shows a capped row at 0% before anything is spent
Original changelogSIGTERM in print/SDK modes exits cleanly without synthetic tool denials
SIGTERM in print/SDK mode no longer records an interrupted turn or synthetic tool denials before exiting; running commands are still terminated and the process still exits with code 143
Original changelogSlash-command typos report errors directly instead of guessing fuzzy matches
Pressing Enter on a slash-command typo or a command unavailable in this session now reports it instead of running the closest fuzzy match; prefixes and aliases still run
Original changelogRemote Control reflects offline status within seconds when CLI exits
Remote Control now marks a session offline within seconds when the CLI exits or its terminal closes
Original changelogSendMessage rejects inbox overflows up front instead of dropping them silently
`SendMessage` now refuses further messages to a session up front once a rapid burst would exceed what that session's inbox accepts, instead of reporting them sent while they were dropped
Original changelogPrompt border title chips and right-aligned footer items align consistently
Aligned the session title chip on the prompt border with the footer's right edge
Right-aligned footer items (goal indicator, session state, background agent status) and truncated notices now share a consistent right margin with the rest of the prompt area
Original changelogVS Code extension adds screen reader announcements and heading navigation
[VSCode] Added screen reader support for the transcript: live announcements for replies, permission requests, errors, and status changes, plus per-turn heading navigation