v2.1.241
Fixed
- Bug fixes and reliability improvements.
New Claude Code releases
/claude-api upgrade to migrate Python projects from anthropic 0.x to 1.x, and updated the skill's Python reference for 1.x (timeouts use anthropic.Timeout, not httpx.Timeout).name@synced, work with claude plugin enable/disable <name>@synced, and never override a same-named plugin you installed.ListAgents now tells a session its own name (the one peers use to message it), and SendMessage to your own name says so instead of "no agent named …"./clear now closes the session's Chrome tab group, and empty groups are closed on /resume and when Claude Code exits.SendMessage and find each other with ListAgents, as on macOS and Linux./cost, status line, --max-budget-usd) now include the 1.1× US-only-inference premium for data-residency workspaces./goal: repeat check-ins on long-running background work now back off (30 min, then 1 h, then every 2 h) instead of repeating every 30 minutes.keybindingFlavor: "readline" now also matches Bash for word keys: Alt+F and Ctrl/Option+→ stop at the end of the word, Alt+D deletes to it (Ctrl+Y pastes it back), and punctuation separates words.awsAuthRefresh — the credential pre-check now honors HTTPS_PROXY.setMcpServers()./resume after more than ~64 KB of conversation was written following the rename.claude -c/resume picking up sessions from a different directory whose path differed only by characters like _, -, or ../resume and the agents view showing a session as recently changed (and reordering it) when only its file was touched or it was merely reopened./resume in all-projects mode telling you to cd into a deleted directory (e.g. a removed worktree); such sessions now resume in the current directory.dark-ansi theme rendering expanded tool results in fullscreen mode with text the same color as the background..worktreeinclude patterns starting with **/ silently matching nothing when the target lived in a gitignored directory..md file starts with a UTF-8 BOM being silently ignored./insights echoing literal <message> tags in its response on some models.metadata.pluginRoot having no effect: bare plugin source names now resolve under it as the docs describe.PreToolUse hook now resume in the original turn's trace instead of starting a new trace.selection:copy keybinding silently dropping a text selection that had been extended with Shift+Arrow keys./voice startup tip still appearing after voice dictation was enabled via the voice.enabled setting.!) Tab completion dropping the ./ from a ./script path, which left a command the shell couldn't run./config, /model) in fullscreen mode covering the latest messages; the conversation now stays pinned above the panel./workflows detail dialog overflowing the terminal and losing its header off-screen when opened while Claude is still responding..git/config.worktree unreadable, which broke every sandboxed git command in repos with extensions.worktreeConfig set.claudeMdExcludes not excluding a symlinked .claude/rules file when the pattern names the rules directory or the symlink rather than its target./ being unaddressable by SendMessage and shown as "(untitled)" in ListAgents.df/dt leaving a broken [Pasted text #N] placeholder when the cursor was inside it.SessionStart or Setup hook runs, so the container is no longer idle-reaped mid-hook./goal not restoring its active goal when resuming a session from the claude --resume picker.ListAgents and /list-agents only listing subagents and other sessions; they now also list your live teammates, who previously looked absent even though reachable.CLAUDE_CODE_RETRY_WATCHDOG) waiting indefinitely for a reset on organization spend-limit and out-of-credits errors; it now fails immediately.claude doctor wording when Remote Control isn't enabled for your account.
/clear shortcut was removed, and 1-row nvim terminals no longer trigger automatic /clear loops.headersHelper in a project .mcp.json, and inline MCP servers in project or --add-dir agent files, now require that folder's trust dialog to have been accepted (also under claude -p).headersHelper from a project .mcp.json, plugin, or agent file runs without inherited credential env vars; user, managed and claude.ai-scope helpers now run from the Claude config dir.keybindingFlavor setting: set it to "readline" to make Ctrl+W in the prompt delete back to the previous whitespace, as in Bash; the default ("classic") is unchanged.headersHelper on a url marketplace or a catalog entry runs a command that mints HTTP headers (e.g. a short-lived token) for catalog and same-origin archive fetches.headersHelper runs only when you install or update that plugin, after its command is shown; claude plugin install/update ask [y/N] (or pass -y).claude self-hosted-runner --defer-shutdown-max-min <minutes>: on SIGTERM, keep serving attached sessions, park what is left after that many minutes, then exit.claude self-hosted-runner --proxy-authorization-command / --proxy-authorization-file for egress proxies that require a freshly issued Proxy-Authorization header on every connection.claude starts sooner on macOS.claude-api skill for the Managed Agents Aug 19 release: web search/fetch domain settings and memory stores on self-hosted sandboxes.claude mcp list and claude mcp get to show disabled servers as ⊘ Disabled instead of connecting to them for a health check.CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=true not keeping prompt suggestions on when your account is near, but not over, its usage limit./tmp/claude-*-cwd files when a Bash command is killed, times out, or is interrupted.server/discover request before initialize, forcing lazy servers to start their backend on every session open./model and /effort cache-miss warning appearing when the prompt cache had already expired.claude remote-control inheriting session-scoped environment variables from the launching shell.claude remote-control was restarted; it can now be reused when you next message it.ListAgents/SendMessage reporting "Remote Control is not connected" in sessions run by claude remote-control (server mode) or Desktop/IDE hosts; they now list and reach Remote Control peers.ListAgents and SendMessage exposing the idle worker that the agent view pre-warms for your next background session; it now appears only once a task claims it.crossSessionInbound: "refuse") now reports "refused" to the sender instead of a silent success.
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).SendMessage now supports notify_when_idle: 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)./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./usage now shows the usage-credits spend row for Team and Enterprise members, and shows a capped row at 0% before anything is spent.**/.env) on macOS now take precedence inside allowed read regions, cover matched directories' contents, and can't be bypassed by renaming the denied file.Monitor allow rules are now set aside while auto mode is active, so Monitor commands are reviewed the same way Bash commands are.status.showUntrackedFiles=no setting into reporting a clean tree./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./model picker rendering taller than the terminal: it now shows only as many models as fit the window, with the rest reachable by scrolling.SendMessage calls being rejected when a malformed closing tag left the message text inside the summary field.powershell.exe on WSL with Windows interop disabled (regression in 2.1.234).~/.claude.json was malformed./recap) is now capped at 400 characters, cut at a word boundary.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.
spellcheck setting now underlines misspelled words in the prompt input as you type, using your installed aspell, hunspell, or ispell./ultrareview or /autofix-pr run in the background — their event streams are no longer re-scanned and re-rendered on every update.grep in native macOS/Linux builds: pathological patterns now fail fast instead of exhausting memory./config to re-enable it.subagent_type there now gets a clear error listing the available agents.ctrl+t) always starting collapsed when resuming or relaunching into a session that still has open tasks.-m N with -A/-C now prints correct context in the embedded grep.SendMessage now refuses messages too large for cross-session delivery up front instead of silently dropping them.claude rc now applies the same enterprise-gateway availability check as interactive startup.
CLAUDE_CODE_PROJECT_DIR_NAME environment variable, letting hosts that give each session its own config directory choose a short name for the per-project transcript directory.selection:clear keybinding action so a key can be bound to clear an in-app text selection; it also works in the agents view.MR !N with draft/pending/green states./config ("Continue automatically at usage limit")./permissions can now be opened while Claude is working — rule changes apply to the rest of the current turn./add-dir <path> can now be used while Claude is working; /add-dir, /autocompact, /theme, /help, /config and /advisor dialogs open mid-turn in the fullscreen TUI./goal: when background tasks keep a goal waiting for 30+ minutes, Claude now checks in on them instead of waiting indefinitely (set CLAUDE_CODE_GOAL_CHECKIN_MINUTES=0 to opt out).claude-api skill from ~200k+ tokens to ~25k by loading reference docs on demand./config; agent-team teammates now use the leader's model unless the spawn names one.\??\) paths, hardening the remaining pre-approval file accesses against the NTLM credential-leak vector.thinking field or a text block missing its text field.SendMessage rejecting a recipient copied from ListAgents when the session name was at the 200-character cap or emoji-heavy.${VAR} form, and connection-failure details show only the server origin.strictKnownMarketplaces allowlists accepting SCP-style git marketplace sources whose host differs from the one git would actually connect to./login OAuth URL losing characters when copied in fullscreen.--- horizontal rule in rendered markdown running into the line after it./permissions, opened while a ! shell command was running, being dismissed when the command finished.! shell command being sent to the model as plain text after pressing the up-arrow to edit the queued input.! mode sticking after a mid-turn submit.--dangerously-skip-permissions), tool allow/deny rules, model or effort flags./tui dropping launch --allowed-tools/--disallowed-tools rules when it restarts; it now declines to switch, stating the reason, when the session has restrictions a restart can't carry over./login while CLAUDE_CODE_OAUTH_TOKEN is set, the stale-token reminder no longer leaks into Claude's automatically resumed turn — it now appears only to you.SendMessage and ListAgents now say when your account's session list was too long to check completely, instead of treating unseen sessions as absent./login when a claude.ai login would take precedence./goal now clears itself with a notice when a turn dies on an unrecoverable error (e.g. revoked auth, an exhausted credit balance, or a context overflow) instead of staying armed.claude setup-token now rejects unexpected extra arguments instead of silently ignoring them.<system-reminder> tags, matching mid-turn delivery.~/.claude.json is read-only.
CLAUDE_CODE_ENABLE_TODO_TOOLS=1 to bring them back.--worktree flag and the claude agents view now support GitLab merge request URLs (MRs display as !N).forward_user_identity apps gateway setting on Anthropic upstreams sends the signed-in user's identity as headers, so a downstream proxy can attribute spend per user.CLAUDE_CODE_TOOL_MEMORY_LIMIT), so a runaway build can't stall the session.CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS environment variable configures the WebFetch session URL cache TTL (default unchanged: 15 minutes).claude plugin validate now also checks a bare .claude/skills directory, reporting SKILL.md files whose frontmatter fails to parse.[claude-code:unrecognized_model] line is now written to stderr when a request goes out for a model ID Claude Code doesn't recognize; map it with modelOverrides to silence.claude self-hosted-runner session start time: the session branch is now created without rewriting the working tree, and two server round trips no longer block the agent's launch./effort selector renders as a numbered list with a typed-number prompt, and hint and dialog text is no longer clipped./checkup and /review reporting "Unknown command" in -p mode or with plugins/MCP loaded when a user or project skill shadows the bundled skill.\??\ device prefix bypassing UNC path validation, closing an NTLM credential-leak vector.cd <dir> && <command> > file Bash commands (a 2.1.232 regression).< file); a narrower version will return in a later release.
@ in the prompt to mention another Claude session by name; Claude then uses SendMessage to reach that session directly.name-word-word variant and tells you./config rows for "Dialog expiry" and "Messages from your other sessions" (cross-session inbound accept/hold/refuse).glrt-, gloas-, glptt-, glagent-, glimt-, glsoat-, glcbt-, glft-, glffct-) and full redaction of routable glpat-/gldt- tokens; the glab CLI config store gets the same sandbox and credential-path protection as gh.gitlab.com repo URLs (including nested subgroups) now clone like github.com URLs, and clone auth-failure hints name your actual git host.additionalMarketplaces and allowedMarketplaces are now accepted as friendlier aliases for extraKnownMarketplaces and strictKnownMarketplaces.desktop: overlay now accepts every released Desktop setting (was 11 hand-listed keys), validated at boot against Desktop's own schema; unknown or invalid keys fail boot./advisor again for organizations with Fable access, with usage-credits consent set up through /model fable.sandbox.bwrapPath, sandbox.socatPath, sandbox.ripgrep).subagent_type: "fork" subagent inherits the full conversation and prompt cache, and non-teammate agent spawns in interactive sessions now run in the background by default.SendMessage now delivers to a bare name that exactly matches one live session, instead of asking to confirm with a ref first./feedback and /bug now open immediately when invoked while Claude is responding, instead of waiting for the turn to finish./plugin install plugin@marketplace now refreshes the marketplace first, so newly published plugins install without a manual marketplace update./code-review at high, xhigh, and max effort now runs in a background agent like the other levels./tasks footer hint, and the "↓ N more" overflow indicator moved left for visibility.sandbox.ripgrep to be honored only from user, managed, and --settings settings; project settings can no longer override the sandbox's ripgrep binary./powerup tour.blockedMarketplaces entry for a bare repo URL keeps blocking that URL when the CLI classifies it as a git clone.managed.policies[].match.groups/admin.admin_groups entries and malformed email_domain values (empty, or containing @, whitespace, or commas) now fail at boot instead of silently matching no one or granting admin access.$PSDefaultParameterValues and redirect later commands' file access./login exiting silently or leaving an unresponsive terminal after "Press Enter to continue" when managed settings failed to load; the reason is now shown.known_marketplaces.json./update and /tui refusing to restart while work that survives the relaunch was running.--advisor fable launches, which told you to run /model fable in an interactive session that had just exited./remote-control there to move it.< file) are now permission-checked like their argument spellings on all platforms./tmp: a pre-planted symlink or another user's directory is now refused instead of used.
--base-dir; there is no default checkout directory on Windows.command sources: a local command (e.g. an IDE) prints the plugin directory, which is re-resolved each session and applied without a restart; mode: "link" uses it in place.ListAgents now marks disconnected Remote Control sessions as offline and labels your cloud sessions as cloud./btw side-question panel resizable by dragging its boundary, in both side-docked and stacked layouts.CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS=0 disables)./compact.[::1]:443)./doctor./login to repeat the CLAUDE_CODE_OAUTH_TOKEN override warning after a successful login./commit-push-pr so git/gh commands with dangerous flags (--force, --amend, --no-verify, etc.) are no longer auto-approved./bug now open the built-in feedback dialog instead of a retired survey link.--resume of the affected session) when a tool call had a non-string glob, file_path, or command value.claude --continue/--resume at startup).\\?\) or UNC path.CLAUDE_CODE_ATTRIBUTION_HEADER (direct Anthropic API connections)./model rejecting Sonnet/Opus 1M for claude.ai subscribers using a custom ANTHROPIC_BASE_URL gateway.127.0.0.1 instead of localhost in the redirect URI./install-github-app completing without posting its review on the pull request.claude plugin commands leaving a stray liveness file that could prevent cleanup of outdated plugin versions.--input-format stream-json sessions getting a 400 API error when a whitespace-only message was submitted.managed-mcp.json is deployed and the server delivers MCP servers; those servers are now skipped with a warning.claude remote-control --continue for resuming the most recent Remote Control session.
git / Git Bash not being found on Windows when Claude Code is launched from a parent folder of the git installation./tui reverting the session to an earlier model when /model had been changed since the last response./resume while connected leaking the resumed conversation's title or history into the connected session.claude self-hosted-runner sessions failing on every fresh runner when the checkout hook fails for a repository the session doesn't push to; that repository is now skipped with a warning.! commands or expand @ files.
claude-code-action with allowed_non_write_users on GitHub-hosted runners./tui bringing back a conversation that had been rewound to before its first message.
claude agents for untrusted directories, matching the behavior of claude.ListAgents shows them as name [ref]), instead of only replying after they message you first.CLAUDE_CODE_OAUTH_TOKEN with a stored login's short-lived token, breaking headless sessions until restart.claude self-hosted-runner registering and then failing every session when --base-dir cannot be created or written; it now exits at startup with a clear error.
claude self-hosted-runner turns your own machines or containers into a place where Claude Code web, mobile, and desktop sessions can run, available on Team and Enterprise plans.archive plugin source, which lets you install plugins from a zip file over HTTPS without git or npm, with optional SHA-256 pinning.ANTHROPIC_BEDROCK_REGION_PREFIX environment variable so Bedrock can prefer a specific cross-region inference profile over the one derived from AWS_REGION.crossSessionInbound and dialogExpiry settings: cross-session messages sent to a session running with bypassed permissions are now held for your approval, while messages to other sessions auto-deliver.extract and onExtractNoMatch for structured env values, decode: "jwt" with maskClaims for JWT-aware masking, and awsPairs/sigv4 for AWS SigV4 re-signing — these require network.tlsTerminate and only apply from user, managed, or --settings settings.SendMessage: Claude Code sessions can now message each other across any of your machines, with ListAgents to discover them (macOS and Linux)./clear resets now propagate to attached clients.CLAUDE.md instructions), tool definitions, and model parameters; secrets stay redacted as before, and these fields are dropped first if the share is too large./resume./resume no longer cross projects.SendMessage reporting "Message sent" even when writing to a teammate's inbox had actually failed; failed deliveries are now reported as errors.denyRead: "~/.aws/") being silently bypassable on Linux and macOS./clear and other output-less commands.--resume, SDK hosts, and the VS Code extension).remoteControlAtStartup when explicitly enabled.
"owner/*") to the strictKnownMarketplaces and blockedMarketplaces managed settings, letting you allow or block all marketplace repos under a GitHub org./teleport hint in cloud sessions showing how to continue locally with claude --teleport <session id>.CLAUDE_CODE_DISABLE_1M_CONTEXT to hold every Claude model with a native 1M window to 200K via auto-compaction, not just a fixed list; a startup warning now appears when auto-compaction isn't holding the session to 200K.CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1 to restore the previous behavior./review to be an alias of /code-review, which reviews the current diff or a PR (/code-review <level> <pr#>); use /code-review ultra for a deep cloud review./code-review with no effort level to reuse the level you typed last; type a level like /code-review high to change it.import() to run code outside the workflow sandbox.bypassPermissions mode ignored the org bypass-permissions disable policy./cd coming back empty.vertex_ai/claude-* or bedrock/anthropic.claude-*.modelOverrides keys that aren't Anthropic model IDs being treated as the session's canonical model ID; unknown keys are now ignored as documented.managed-settings.json or MDM profile; admin env now merges per key.sandbox.filesystem.denyWrite covers the working directory.git push output.
.claude/settings.json or .claude/settings.local.json) can no longer turn it on (they can still turn it off); enable it at user scope via /config.SendMessage are now evaluated by the permission classifier before dispatch.disable-model-invocation: Claude is now told to ask you to run the skill instead of replicating its workflow./diff view, the Remote Control workspace diff, and file-edit diffs in Claude Code on the web sessions to use raw git blob content, ignoring workspace-configured diff drivers and textconv./usage-credits on Team and Enterprise showing "you've already sent a usage credit request" for members whose earlier request was dismissed, blocking them from sending a new one./usage overattributing usage to MCP servers: a server's share now reflects only the requests that actually consumed its tool results, instead of every turn after any call to it.model: opus-style subagent and teammate family aliases dropping to the parent model instead of stepping down to the newest org-allowed model in the family.ANTHROPIC_BASE_URL gateways despite server keep-alive pings arriving on the wire./login hint instead.SendMessage rejecting a long summary — it now truncates instead, so sends no longer fail on a character limit.effort: setting.--ax-screen-reader mode — end-of-line deletions now echo just the deleted characters.managed-settings.json when CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST is set.
Ctrl+Alt+F or the "Claude Code: Toggle Focus view" command.mode: "mask" for sandbox credential files on Linux and WSL — sandboxed commands read a sentinel copy (the whole file, or just the spans captured by an extract regex) while the sandbox proxy substitutes the real value on egress; on macOS file masking falls back to deny.claude plugin validate when a marketplace or plugin name would be rejected by Claude Desktop's managed marketplace sync.prompt-audit subcommand to the claude-api skill for auditing prompts and tool descriptions for patterns written for older models./ultrareview error messages when a repo shares no history with its base: a checkout with no branches is now refused up front with advice to create one.powershell.exe no longer prompt./plugin install to refresh a stale marketplace catalog and retry before reporting a plugin not found./plugin to activate immediately when safe, instead of always requiring /reload-plugins."." as a skills path.SKILL.md validation error to suggest using the plugin root./status to show the session kind: interactive, or a background job that is attached or unattended.:thumbsup:, :thumbsdown:, and :love:./fork to create a new worktree of their own instead of working in the original session's checkout.[[ ]] regex conditionals; affected commands now prompt for permission.--mcp-config not being connected before the first turn in print mode (-p), which made the model emit tool calls as literal text.constructor.xhigh/max when thinking is disabled.HOME environment variable.CLAUDE_CODE_RESUME_INTERRUPTED_TURN=0 not disabling interrupted-turn auto-resume; falsy values are now honored./help, /feedback) being un-invocable in non-interactive sessions./ultrareview refusal hints suggesting git fetch --unshallow on clones that are already complete.model field validation: non-string values are rejected with a 400 instead of being forwarded.
/fast now applies to Opus 5 and Opus 4.8.claude-opus-5) was added and is now the default Opus model — 1M context, fast mode at $10/$50 per Mtok.sandbox.network.strictAllowlist setting was added to deny non-allowlisted hosts for sandboxed commands without prompting.DirectoryAdded hook was added, firing after /add-dir or the SDK register_repo_root control request registers a new working directory mid-session.mcp_server_errors was added to the headless stream-json init event, listing --mcp-config entries skipped by config validation; terminal runs print a startup warning.workflowSizeGuideline settings key was added 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 id.claude mcp list and /mcp now show HTTP status and error text when a server fails to connect./config for changing it.claude --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.CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 to disable nesting.claude -p text output dropping the answer already produced when a turn dies on a mid-stream API error./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 warning.
:, which is reserved for plugin namespacing.context: fork to run in the background by default; opt out per skill with background: false.Option+Delete, Ctrl+W, Cmd+Backspace, Ctrl+U, Ctrl+K) in --ax-screen-reader mode.claude mcp list and /mcp when a server fails to connect./config model=<x> or Remote Control.yes/no/on/off/1/0 (case-insensitive) as accepted values for skill and plugin frontmatter booleans, alongside true/false.Ctrl+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.\u-prefixed segments (like C:\Users\unicorn) being corrupted into CJK characters in tool inputs, which made those files inaccessible.j 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 review.tool_use block left in the transcript when a tool aborted mid-response.--ax-screen-reader mode.
CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH to allow deeper nesting.:heart: to insert ❤️, or :hea for suggestions — disable it with the emojiCompletionEnabled setting.FORCE_HYPERLINK=0 to opt out.CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS) so one message can't fan out unbounded background agents.claude.exe missing; failed updates now automatically restore the preserved executable./compact failing once over the limit.OTEL_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 Windows.CLAUDE.md or SKILL.md paths frontmatter value with many brace groups OOM-killing or stalling the CLI at startup — brace expansion is now budget-bounded.--max-budget-usd not stopping background subagents: once the cap is reached, new spawns are denied and running background agents are halted.
sandbox.filesystem.disabled setting lets you skip filesystem isolation while keeping network egress control./mcp and /install-github-app now park a "needs input" request in the agent view when no client is attached./memory no longer waits for the editor to close./fork confirmation to one line with the new session's name, claude attach id, and a note when the copy shares your checkout.git 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.c-operators and paste.git -C, --git-dir, or GIT_DIR/GIT_WORK_TREE.claude 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..claude, which could redirect writes outside the project./config settings list in fullscreen mode clipping its keyboard-hint footer.OTEL_METRICS_EXPORTER=prometheus) emitting invalid # UNIT lines.name frontmatter field losing their plugin prefix in slash-command autocomplete./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.
/verify and /code-review skills automatically; invoke them explicitly with /verify or /code-review when you want them.
dir/** hook if: conditions to match only <cwd>/dir; write **/dir/** for any-depth matching. deny/ask permission rules keep their any-depth match.modified timestamp to memory file frontmatter.message.uuid, client_request_id, and tool_source attributes to OpenTelemetry log events for message-level correlation and tool provenance.CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH to configure the 60 KB truncation limit on OpenTelemetry content attributes.subagentStatusLine payload, so custom agent rows can render model and effort.docker commands (including the Podman docker shim) carrying daemon-redirect flags (--url, --connection, --identity, and Podman's remote mode) that previously ran without one.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".dir/** 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 approval.help and man commands that could run unsafe options, command substitutions, or backslash paths.pkill -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 error.where.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 indefinitely.claude 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 files.claude 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 saved.message_delta frames.claude rc workspace-trust error in the home directory to say trust there is never saved and to suggest running from a project directory.
mode parameter (now ignored); subagents inherit the parent session's permission mode by default.forceLoginMethod to be enforced for VS Code extension, SDK, setup-token, and install-github-app logins, not just the terminal.claude 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 loops.CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION) to stop runaway delegation loops; /clear resets the budget.CLAUDE_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 session.claude agents) while you keep working; the in-session subagent it used to launch is now /subtask.SendMessage 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 input.set_model control request mid-turn; the next model round-trip uses the new model instead of waiting for the next turn.claude agents --json: sessions waiting on a sandbox, MCP-input, or managed-settings prompt now show as "Needs input" instead of "Working".touch, rm) without a permission prompt or SDK canUseTool callback..claude/worktrees, which could create files outside the repository.continue: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 commands.ExitWorktree 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 failure.trace_id/span_id when TRACEPARENT is set in SDK/headless mode.
--forward-subagent-text flag and CLAUDE_CODE_FORWARD_SUBAGENT_TEXT environment variable let you include subagent text and thinking in stream-json output.1e6 and 64_000./usage-credits to ask for confirmation before sending a request to organization admins.ask 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 a trailing dot — these are now accepted./loop hiding the session from /resume after a single use./terminal-setup or onboarding terminal setup.ANTHROPIC_AUTH_TOKEN + ANTHROPIC_BASE_URL) coming back "Not logged in" after the daemon respawns them.claude 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./clear.s and S (substitute char/line) to work in NORMAL mode, matching vim behavior.save_to_disk on screenshot actions now writes the image to disk and returns the path; previously it did nothing.
Write(path), NotebookEdit(path), and Glob(path) permission rules — use Edit(path) or Read(path) instead.isolation: 'worktree' subagents being able to run git-mutating commands against the main repo checkout instead of their own isolated worktree.ultracode keyword opt-in firing on non-human-originated input such as webhook payloads and relayed PR comments.claude 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 completes.cd 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 verbatim.claude agents --effort ultracode not reaching dispatched sessions; the value was silently dropped.git worktree lock behind; the periodic sweep now releases locks whose owning process is gone.initialize control request waiting until the next turn to start connecting.CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1..claude/* symlinks not being reconciled into the sandbox deny-write list.
/model and other dialogs being blocked in claude agents background sessions by reverting an overly broad guard.
claude --ax-screen-reader, CLAUDE_AX_SCREEN_READER=1, or "axScreenReader": true in settings.vimInsertModeRemaps setting: map two-key insert-mode sequences like jj to Escape in vim mode.CLAUDE_CODE_PROCESS_WRAPPER: the agents view and the background service now honor a corporate launcher by routing every Claude Code self-spawn through a required wrapper executable./tasks until cleanup instead of vanishing the moment they finish.rm -rf ~) in commands containing $(…)/backticks/<(…) now prompt in --dangerously-skip-permissions and auto mode, matching the plain form.claude agents process was launched from.claude -p.CLAUDE_CODE_MAX_OUTPUT_TOKENS and similar env vars silently using the mantissa of scientific-notation values (1e6 became 1).apiKeyHelper script failures being hidden behind a generic 401 after ~10 silent retries; the script's own error is now shown within 3 attempts./upgrade showing a login flow instead of the upgrade URL when the browser fails to open.control_request carried a non-string set_model payload; the CLI now answers with an error response.tools list resolves to nothing — it now returns a clear error naming the unrecognized entries./usage showing stale cached bars over fresher data, and /mcp not reclassifying placeholder servers after config edits.~/.claude/workflows/ instead of the CLAUDE_CONFIG_DIR location for user-scope saves./release-notes adding the viewed notes to the model's context — "Show all" previously injected the entire changelog into every subsequent request./install-github-app and the /mcp settings menu no longer open in background sessions./mcp instead of a config error./usage now shows your last-known usage bars with an "as of" note when the usage endpoint is rate-limited, instead of an error screen.
autoMode from .claude/settings.local.json (repo-resident); use ~/.claude/settings.json instead.${user_config.*} in shell-form commands is now rejected (shell-injection fix); hooks must use the exec form (args array) or $CLAUDE_PLUGIN_OPTION_<KEY>, while monitors and headersHelper read the value inside the script (config file or the server's env block).pluginConfigs) are no longer read from project-level .claude/settings.json; only user, --settings, and managed settings are honored.CLAUDE_CODE_ENABLE_AUTO_MODE opt-in; disable it via disableAutoMode in settings.waiting 3m) instead of the same timestamp twice.claude -p, the SDK) being permanently recorded as consented without ever showing the security consent dialog.~/.local/bin/claude on every release; /doctor now reports an externally managed launcher.cd prompting for permission when the only output redirect was to /dev/null.extensions.worktreeConfig being left in the repo's .git/config (breaking go-git tools like tea) after the last worktree.sparsePaths worktree was removed..ignore, and .worktreeinclude breaking file reads, file suggestions, and worktree creation.[Pasted text #N] placeholder instead of adding a second one.credential_process): the 60-second stall guard now fires instead of waiting forever./usage-credits amount inputs silently stripping malformed values (e.g. a pasted timestamp) to digits; malformed amounts are now rejected with an error, and amounts over $1,000 require a typed confirmation.
/cd now offers directory path suggestions, matching /add-dir behavior./doctor now has a check that proposes trimming checked-in CLAUDE.md files by cutting content Claude could derive from the codebase./commit-push-pr now auto-allows git push to the repo's configured push remote (remote.pushDefault, or the sole remote when only one is configured) in addition to origin./login now supports Anthropic-operated public gateway endpoints.EnterWorktree now asks for confirmation before entering a git worktree outside the project's .claude/worktrees/ directory./code-review findings quality on claude-opus-4-8 across all effort levels./login.claude --resume and --continue not responding to keyboard input on startup.--mcp-config or .mcp.json ignoring a per-server request_timeout_ms, which caused long-running MCP tool calls to time out at the 60s default in fresh sessions.CLAUDE_CODE_EXTRA_BODY being silently ignored by claude agents / --bg background workers; the shell-exported override now follows the dispatching session.--permission-prompt-tool pointing at an MCP server crashing with "MCP tool not found" on cold start before the server finishes connecting./model picker rows printing a price for a different model than the row named, and stopped quoting first-party list prices on providers that don't bill them./model picker when an entitlement or allowlist restriction drops the row they were positioned against.claude --resume on Windows.claude rm leaving the removed job in the daemon roster, causing the row to reappear in claude agents./remote-control showing "Unknown command" when logged out — it now explains how to sign in./status listing the same broken-install warning twice./doctor's update check to compare Homebrew installs against their cask's channel instead of the settings channel.awsCredentialExport helper on networks with restricted egress.
claude agents./doctor is now a full setup checkup that can diagnose and fix issues; /checkup is its alias.rm -rf on a variable it can't resolve from context.--json-schema silently producing unstructured output when the schema was invalid.format keyword being rejected.--max-turns limit.SendMessage.claude attach erroring when a background agent was mid-upgrade restart instead of waiting for it to come back.claude mcp add-from-claude-desktop getting stuck when a server name contains unsupported characters; invalid names are now reported and remaining servers still import.
roots/list, with notifications/roots/list_changed sent when the set changes.claude agents view to always show the organized sections (Needs input / Working / Completed) with descriptions./doctor and /status instead.claude agents footer.claude agents silently stopping running subagents and re-running the prompt from scratch — their work now carries over.PATH from the daemon instead of the dispatching shell, causing missing tools on Windows.ANTHROPIC_BASE_URL, which sent API keys to the default endpoint and failed with 401.TaskStop and TaskOutput failing to find background agents spawned by another agent — errors now list running agents by id and description.claude agents composer discarding your typed message when a slash command isn't available there.effortLevel changes in settings.json when forked through the daemon.CLAUDE_CODE_DISABLE_MOUSE and CLAUDE_CODE_DISABLE_MOUSE_CLICKS opt-outs./exit incorrectly warning about running background agents after all named agents had completed.WorktreeCreate hook was configured.@ directory picker in claude agents not showing registered git worktrees./clear.^[[I / ^[[O escape codes being printed when reattaching to a background session.
/config for controlling how large Claude generally makes dynamic workflows (small/medium/large agent counts) — an advisory guideline, not an enforced cap.workflow.run_id and workflow.name OpenTelemetry attributes to telemetry emitted by workflow-spawned agents, so a workflow run's activity can be reconstructed from OTel data./workflows agent list layout: wider titles, a dedicated time column, shorter model names, and no per-row tool-call counts.url but no type, suggesting "type": "http" instead of the misleading "command: expected string"./review <pr> back to a fast single-pass review; use /code-review <level> <pr#> for the multi-agent review at a chosen effort level./rename on background sessions being reverted when the job restarts, which broke addressing the session by its new name.claude auth login and claude mcp login --no-browser not being reliably clickable when it wraps over SSH — it is now emitted as a single hyperlink.claude agents sometimes failing with "currently running as a background agent" followed by a worker crash/respawn loop./remote-control sessions showing the wrong permission mode in the mobile and web apps.
AskUserQuestion dialogs no longer auto-continue by default; you can opt into an idle timeout via /config.--help, VS Code, and JetBrains; --permission-mode manual and "defaultMode": "manual" are accepted alongside default.Header: value. lines.disabledMcpServers or enabledMcpServers in .claude.json is set to a non-array value.daemon.lock whose PID the OS reused.claude agents --plugin-dir <dir> not showing the plugin's agents and skills in the agent view when the flag is placed after agents./mcp server list not tracking focus for screen readers and magnifiers.
/skill-a /skill-b do XYZ now load all leading skills (up to 5), not just the first.CLAUDE_CODE_RETRY_WATCHDOG now raises the default retry count for non-capacity transient errors to 300 and lifts the cap of 15 on CLAUDE_CODE_MAX_RETRIES.claude agents session rows now show pull-request links as bare #N without the redundant "PR" label.NODE_EXTRA_CA_CERTS, expired certs) burned retries before showing actionable guidance — they now fail immediately with the fix hint.claude stop was silently undone when it raced a background-agent respawn — the respawn now honors the stop./model or /fast while viewing a subagent silently opened the lead's model picker — a notice now explains the command applies to the lead.SessionStart, Setup, and SubagentStart hooks silently hid stderr when exiting with code 2 — the error is now shown in the transcript.claude --dangerously-skip-permissions daemon <subcommand> was treated as a chat prompt instead of running the subcommand — now fixed.SendMessage silently misrouted when a re-spawned agent reuses a previous agent's name — the tool now detects the mismatch and asks the caller to retarget.← or /background dropped its /color from the agent view row — now fixed.browser_batch calls are now correctly auto-allowed.
/dataviz skill for chart and dashboard design guidance, with a runnable color-palette validator.