What's changed
- Bug fixes and reliability improvements
Anthropic's agentic coding tool for the terminal, IDE and web.
claude-opus-5), now the default Opus model — 1M context, fast mode at $10/$50 per Mtoksandbox.network.strictAllowlist setting to deny non-allowlisted hosts for sandboxed commands without promptingDirectoryAdded hook that fires after /add-dir or the SDK register_repo_root control request registers a new working directory mid-sessionmcp_server_errors to the headless stream-json init event, listing --mcp-config entries skipped by config validation; terminal runs print a startup warningworkflowSizeGuideline settings key so the advisory Dynamic workflow size guideline can be set from any settings file; the /config row is hidden while one does--forward-subagent-text is set, keyed by their spawning Agent tool_use idclaude -p text output dropping the answer already produced when a turn dies on a mid-stream API errorclaude mcp list and /mcp when a server fails to connect, and a warning for MCP config values with hidden leading or trailing whitespace/model picker showing the merged Opus row as plain "Opus" instead of "Opus (1M context)"CLAUDE_CODE_GIT_BASH_PATH on Windows exiting or being used as bash when the path isn't a bash/sh binary; it's now ignored with a warningclaude --teleport to show which repo your current checkout points at when it doesn't match the session's repo/config${VAR} entries to resolve from the startup environment and managed-settings env instead of settings-file env/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/config for changing it/fast now applies to Opus 5 and Opus 4.8/code-review to run as a background subagent, so review work no longer fills your conversation and keeps stacked slash commands as its review targetOption+Delete, Ctrl+W, Cmd+Backspace, Ctrl+U, Ctrl+K) in --ax-screen-reader mode\u-prefixed segments (like C:\Users\unicorn) being corrupted into CJK characters in tool inputs, which made those files inaccessibleclaude mcp list and /mcp when a server fails to connect, and a warning for MCP config values with hidden leading or trailing whitespacej in place of newlines in terminals that encode pasted newlines as Ctrl+J/context reporting stale pre-compact token usage after compacting from the message picker/ultrareview failing on descriptive arguments like "review my auth changes" — they now run a review of your current branch with the text applied as a note to the findings/code-review ultra silently running a local review in non-interactive sessions — it now launches the cloud reviewtool_use block left in the transcript when a tool aborted mid-response--ax-screen-reader modeCtrl+B backgrounding now applies the same background-shell caps as other paths/ultrareview error feedback so Claude can correct an invalid argument instead of retrying it unchanged&, and suspicious-Windows-path checks no longer open permission dialogs; the auto-mode classifier adjudicates them instead/deep-research to start only when invoked manually; Claude no longer launches it on its own/config model=<x> or Remote Control:, which is reserved for plugin namespacingcontext: fork to run in the background by default; opt out per skill with background: falseyes/no/on/off/1/0 (case-insensitive) as accepted values for skill and plugin frontmatter booleans, alongside true/false:heart: to insert ❤️, or :hea for suggestions — disable with the emojiCompletionEnabled settingclaude.exe missing; failed updates now restore the preserved executable automatically/compact failing once over the limitOTEL_EXPORTER_OTLP_ENDPOINT not governing all signals — lower-scope signal-specific overrides no longer redirect telemetry away from the managed endpoint--resume/--continue and /resume failing with a TypeError when a transcript has a malformed attachment entry/background or ←) or when the session exits on a heavily loaded machine, most visible on WindowsCLAUDE.md or SKILL.md paths frontmatter value with many brace groups OOM-killing or stalling the CLI at startup — brace expansion is now budget-boundedFORCE_HYPERLINK=0 to opt outCLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS) so one message can't fan out unbounded background agentsCLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH to allow deeper nesting--max-budget-usd not stopping background subagents: once the cap is reached, new spawns are denied and running background agents are haltedsandbox.filesystem.disabled setting to skip filesystem isolation while keeping network egress controlc-operators and paste, statusline running twice on resume, and resume-picker hangs on failuregit -C, --git-dir, or GIT_DIR/GIT_WORK_TREEclaude daemon stop --any potentially terminating an unrelated process via a stale legacy daemon lockfile&& lists or negations/memory, /plan, /keybindings, or Ctrl+G is open; /memory no longer waits for the editor to close.claude, which could redirect writes outside the project/config settings list in fullscreen mode clipping its keyboard-hint footerOTEL_METRICS_EXPORTER=prometheus) emitting invalid # UNIT linesname frontmatter field losing their plugin prefix in slash-command autocomplete/fork confirmation to one line with the new session's name, claude attach id, and a note when the copy shares your checkoutgit and gh command arguments in the PowerShell tool/ultrareview diff-too-large error to show configured limits, measured diff size, and largest contributing files/code-review ultra empty-diff message to name the exact base ref and suggest passing an explicit base/context now shows an explicit warning when the conversation exceeds the context window, and a failed /compact displays as an error/rewind no longer restores or deletes files through symlinks or hard links at tracked paths and reports how many paths it skipped/mcp and /install-github-app now park a "needs input" request in the agent view when no client is attached/verify and /code-review skills on its own; invoke them with /verify or /code-review when you want themdir/** allow rules like Edit(src/**) auto-approving writes to nested dir/ directories anywhere in the tree instead of only <cwd>/dir[[ ]] comparisons as inert text — these commands now prompt for approvalhelp and man commands that could run unsafe options, command substitutions, or backslash pathsmodified timestamp to memory file frontmattermessage.uuid, client_request_id, and tool_source attributes to OpenTelemetry log events for message-level correlation and tool provenanceCLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH to configure the 60 KB truncation limit on OpenTelemetry content attributessubagentStatusLine payload, so custom agent rows can render model and effortdocker commands (including the Podman docker shim) carrying daemon-redirect flags (--url, --connection, --identity, and Podman's remote mode) that previously ran without onepkill -f pattern accidentally matched the CLI's own process (Linux)--settings points at a device file or multi-GB file; oversized (>2 MiB) settings files now fail at startup with a clear errorwhere.exe, fc.exe, and diff.exe as errors when they return a valid negative answer (Windows)> and >> under the PowerShell tool on Windows PowerShell 5.1 writing UTF-16LE files that other tools couldn't read as UTF-8← or /background and left idle keeping the background daemon and a worker process alive indefinitelyclaude rm or the agent view once the background service had gone idle/install-github-app and the /mcp settings menu being blocked in agent-view sessions — they're now refused only in background sessions with no terminal attached--settings CLI flag not loading (regression since v2.1.181)/ultrareview refusing to run in repos with no merge base — it now offers to review all tracked filesclaude update and claude doctor hanging silently, and the /status System diagnostics section going blank, when a shell-config path is a directory# when memory files are savedmessage_delta framesclaude rc workspace-trust error in the home directory to say trust there is never saved and to suggest running from a project directorydir/** hook if: conditions to match only <cwd>/dir; write **/dir/** for any-depth matching. deny/ask permission rules keep their any-depth match.file commands using -m/--magic-file or -f/--files-from to require permission instead of being auto-allowed as read-only"fork" when a session begins as a fork instead of "resume"/fork now copies your conversation into a new background session (its own row in claude agents) while you keep working; the in-session subagent it used to launch is now /subtaskclaude auto-mode reset to restore the default auto-mode configuration, with a confirmation prompt (pass --yes to skip)CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION) to stop runaway search loopsCLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION) to stop runaway delegation loops; /clear resets the budgetCLAUDE_CODE_MCP_AUTO_BACKGROUND_MS/resume in the agent view now opens a picker of past sessions — including sessions deleted from the list — and resumes your pick as a background sessiontouch, rm) without a permission prompt or SDK canUseTool callback.claude/worktrees, which could create files outside the repositorycontinue:false hook's halt being dropped when the tool fails or completes mid-stream, and hook infrastructure errors being misreported as user rejections/background and claude --bg failing with "EUNKNOWN: unknown error, uv_spawn" on Windows when Group Policy blocks PowerShell 5.1; the daemon now prefers PowerShell 7!) not executing commands containing file paths while the path autocomplete popup was open? help overlay/ultrareview rejecting PR references like #123, PR 123, and pasted PR URLs; error hints now name the command you actually typed/ultrareview <branch> not fetching the branch from origin when it exists remotely; it now suggests the closest branch name on typos/ultrareview skipping the billing confirmation in a new conversation after /clear/ultrareview's "not a git repository" error on Claude Desktop now suggesting the project's repository folder instead of terminal commandsExitWorktree failing with "no active EnterWorktree session" after resuming a session with --continue/--resume in print/SDK mode/fork losing their live-parent protection after a state write failuretrace_id/span_id when TRACEPARENT is set in SDK/headless modeSendMessage bodies are no longer duplicated into replayed history and tool results/fork to name the copy after your prompt when the session has no title, so the row is recognizable in the agent view/btw to reopen the side-question panel on your most recent exchange so you can browse earlier answers← footer hint to pulse N done for a moment when a background agent finishes while nothing needs your inputmode parameter (now ignored); subagents inherit the parent session's permission mode by defaultforceLoginMethod to be enforced for VS Code extension, SDK, setup-token, and install-github-app logins, not just the terminalset_model control request mid-turn; the next model round-trip uses the new model instead of waiting for the next turnclaude agents --json: sessions waiting on a sandbox, MCP-input, or managed-settings prompt now show as "Needs input" instead of "Working"--forward-subagent-text flag and CLAUDE_CODE_FORWARD_SUBAGENT_TEXT environment variable to include subagent text and thinking in stream-json outputask decision for unsandboxed Bash — a hook ask now floors the decision at a prompt.claude/rules/*.md files loading even when setting sources exclude project settings.prn) or trailing dot are now accepted, and files with multiple hard links are refused/loop hiding the session from /resume after a single use/terminal-setup or onboarding terminal setupANTHROPIC_AUTH_TOKEN + ANTHROPIC_BASE_URL) coming back "Not logged in" after the daemon respawns themclaude agents jobs becoming permanently undeletable when git no longer recognizes their worktree — the row now shows why the delete was refused instead of silently reappearing/clear not resetting the session cost counter — the statusline's cost now starts at $0 after /clear/clear1e6 and 64_000/usage-credits to ask for confirmation before sending a request to organization adminss and S (substitute char/line) to work in NORMAL mode, matching vim behaviorsave_to_disk on screenshot actions now writes the image to disk and returns the path; previously it did nothingWrite(path), NotebookEdit(path), and Glob(path) permission rules — use Edit(path) or Read(path) insteadisolation: 'worktree' subagents being able to run git-mutating commands against the main repo checkout instead of their own isolated worktreeultracode keyword opt-in firing on non-human-originated input such as webhook payloads and relayed PR commentsclaude attach sometimes failing with "job not found" or "agent is still starting" errors during session transitions — attach now waits for the daemon to settle, and terminal resizes during a slow attach are applied once it completescd took effect after its command was moved to the background; the tool result now states the working directory is unchanged/doctor skipping its auto-mode-default proposal on Bedrock, Vertex, and Foundry, where auto mode no longer needs an opt-in$1/$2 positional placeholders in skills and commands being silently stripped; they are now preserved verbatimclaude agents --effort ultracode not reaching dispatched sessions; the value was silently droppedgit worktree lock behind; the periodic sweep now releases locks whose owning process is goneinitialize control request waiting until the next turn to start connectingCLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1.claude/* symlinks not being reconciled into the sandbox deny-write list