Source: Anthropic official docs — CLI reference; Claude Code release stubs raw/anthropic-watch-claude-code-tag-v2-1-196.md, raw/anthropic-watch-claude-code-tag-v2-1-197.md, raw/anthropic-watch-claude-code-tag-v2-1-198.md (GitHub release feed; changelog bodies truncated at source); raw/x-account-claudecodelog-2072425697629343845.md (unofficial @ClaudeCodeLog changelog-thread cluster, cross-verified against ai-research/claude-code-docs-changelog-2026-07-06.md and ai-research/watchlist-snapshots/code-claude-com-docs-en-mcp-2026-07-06.md, both live-official-docs fetches); Claude Code release stubs raw/anthropic-watch-claude-code-tag-v2-1-202.md, raw/anthropic-watch-claude-code-tag-v2-1-203.md, raw/anthropic-watch-claude-code-tag-v2-1-205.md (GitHub release feed, v2.1.202–205); raw/x-account-bcherny-2074997570317779038.md (Boris Cherny’s /checkup announcement, 2026-07-08); raw/anthropic-watch-claude-code-tag-v2-1-206.md (GitHub release feed, v2.1.206, 2026-07-10); raw/reddit-1usx952.md (first-party r/ClaudeAI announcement by u/ClaudeOfficial, in-app browser); raw/These_Hidden_Settings_Will_10x_Your_Claude_Code.md (YouTube creator walkthrough, community-sourced settings.json tips — flagged inline where cited); raw/anthropic-watch-claude-code-tag-v2-1-207.md (GitHub release feed, v2.1.207, 2026-07-11); raw/anthropic-watch-claude-code-tag-v2-1-208.md + raw/anthropic-watch-claude-code-tag-v2-1-209.md (GitHub release feed, v2.1.208–209, 2026-07-14 — the v2.1.208 stub truncated at ~11 items, reconciled against the official CHANGELOG.md; full digest in whats-new-2026-w29); raw/anthropic-watch-claude-code-tag-v2-1-210.md + raw/anthropic-watch-claude-code-tag-v2-1-211.md (GitHub release feed, v2.1.210–211, 2026-07-14/15 — both stubs truncated mid-item; reconciled against ai-research/claude-code-docs-changelog-2026-07-17.md); ai-research/claude-code-docs-whats-new-w29-2026-07-17.md (official W29 digest page, fetched 2026-07-17); ai-research/claude-code-docs-changelog-2026-07-17.md (full changelog snapshot for v2.1.210–v2.1.212, fetched 2026-07-17); raw/anthropic-watch-claude-code-tag-v2-1-212.md (GitHub release feed, v2.1.212 — consolidated into the v2.1.212 section below); raw/anthropic-watch-claude-code-tag-v2-1-214.md, raw/anthropic-watch-claude-code-tag-v2-1-215.md, raw/anthropic-watch-claude-code-tag-v2-1-216.md (GitHub release feed, v2.1.214–216, 2026-07-18/20 — consolidated into the v2.1.214–216 section below); raw/anthropic-watch-claude-code-tag-v2-1-217.md, raw/anthropic-watch-claude-code-tag-v2-1-218.md (GitHub release feed, v2.1.217–218, 2026-07-21/22 — both stubs truncated mid-item; consolidated into the v2.1.217–218 section below) Type: Product Reference Product: Claude Code

The complete surface for the claude binary — every subcommand and every flag. This page is the canonical “how do I invoke X from the shell?” lookup. The official claude --help is intentionally short and does not list every flag, so a flag’s absence from --help does not mean it is unavailable.

Quick command map

claude is one binary with several subcommands. Group them by purpose:

PurposeCommands
Start / continue sessionclaude, claude "query", claude -c, claude -r
Programmatic / pipedclaude -p, cat file | claude -p "query"
Install / updateclaude install [version], claude update
Authclaude auth login, claude auth logout, claude auth status, claude setup-token
Inspect configclaude agents [--cwd <path>] [--json] [--permission-mode <mode>] [--model <alias>] [--effort <level>] ([[claude-ai/whats-new-2026-w21
Background sessionsclaude attach <id>, claude logs <id>, claude stop <id> (alias: kill), claude rm <id>, claude respawn <id> [--all], claude daemon status, claude daemon stop --any [--keep-workers] — manage sessions spawned from the Agents view (W20, v2.1.144)
Gatewayclaude gateway --config gateway.yaml — self-hosted SSO/policy gateway for Bedrock/Vertex/Foundry (v2.1.195)
MCP / pluginsclaude mcp, claude plugin (alias claude plugins), claude plugin init <name> (scaffold a new plugin), claude plugin list [--enabled|--disabled] (W24, v2.1.163 — list installed plugins with optional filter), claude plugin tag, claude plugin prune
Code reviewclaude ultrareview [target] ([[claude-ai/whats-new-2026-w16
Project managementclaude project purge [path] (deletes all state: transcripts, tasks, file history, config entry; --dry-run, -y, -i, --all)
Remote controlclaude remote-control

Mistyped subcommands surface a “Did you mean…?” suggestion and exit without starting a session.

Sessions

FormWhat happens
claudeInteractive session in the current directory.
claude "query"Interactive session, with the first user message pre-filled.
claude -c / --continueLoad the most recent conversation in this directory (includes sessions added via /add-dir).
claude -r <id-or-name>Resume a specific session by ID, by name, or via picker. --fork-session mints a new ID. v2.1.144+: the picker also surfaces background sessions (marked [bg]). v2.1.223+: ID search covers every project on the machine — before v2.1.223 it covered only the current project directory and its git worktrees.
claude -p "query" / --printSingle-shot SDK query, no interactive UI. Programmatic / scripted entry point.
cat file | claude -p "query"Piped content goes into the same SDK call. Standard non-interactive workflow.
claude --session-id <uuid>Pin a specific UUID for the conversation (must be valid UUID).
claude -n "name" / --nameSet a session display name (shown in /resume and the terminal title). /rename swaps it mid-session.
claude --from-pr <pr>Resume sessions linked to a PR (number, GitHub/GHE URL, GitLab MR URL, Bitbucket PR URL). Auto-linked when Claude creates the PR.

Web sessions, remote control, and teleport

The CLI is one of three Claude Code surfaces — local terminal, claude.ai web sessions, and the Claude app. Three flags bridge them:

  • --remote "task description" — create a new web session on claude.ai for the task. Runs in Anthropic’s cloud.
  • --teleport — pick a running web session and resume it in the local terminal.
  • --remote-control / --rc (interactive) or claude remote-control (server-only) — start a local session you can also drive from claude.ai or the Claude app. --remote-control-session-name-prefix (or CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX) sets the auto-generated name prefix.

Auth and install

CommandPurpose
claude auth loginSign in. --email pre-fills email, --sso forces SSO, --console signs into Anthropic Console for API-key billing instead of a Claude subscription.
claude auth logoutSign out.
claude auth statusJSON status by default; --text for human-readable. Exit code 0 = logged in, 1 = not.
claude setup-tokenGenerate a long-lived OAuth token for CI / scripts. Prints to terminal without saving. Requires a Claude subscription.
claude install [version]Install or reinstall the native binary. Accepts 2.1.118, stable, or latest.
claude updateUpdate to the latest version.

CLI flags by intent

There are roughly fifty flags; grouping them by what they configure makes the reference scannable.

Permissions and tool surface

FlagEffect
--permission-mode <mode>Start in manual (formerly default), acceptEdits, plan, auto, dontAsk, or bypassPermissions. Overrides settings. The value default is still accepted as a backwards-compatible alias for manual (v2.1.200).
--dangerously-skip-permissionsEquivalent to --permission-mode bypassPermissions.
--allow-dangerously-skip-permissionsAdd bypassPermissions to the Shift+Tab cycle without starting in it (so you can switch in mid-session).
--allowedToolsTools that execute without prompting. Pattern syntax (e.g., "Bash(git log *)" "Read").
--disallowedToolsTools removed from the model’s context entirely.
--toolsRestrict the built-in toolset. "" disables all, "default" enables all, or list ("Bash,Edit,Read").
--disable-slash-commandsDisable all skills and slash commands for this session.
--permission-prompt-tool <mcp-tool>Route permission prompts through an MCP tool (non-interactive flow only).
--add-dir <path...>Grant additional working directories for read/edit. .claude/ config is not discovered from these paths.

Model, effort, and budget

FlagEffect
--model <alias-or-id>Set model. Aliases sonnet/opus resolve to the latest, or pass full IDs like claude-sonnet-4-6.
--effort <level>Session-scoped effort: low, medium, high, xhigh, max (availability depends on model). Doesn’t persist to settings. UI labels renamed in v2.1.154: “Speed” → “Faster”, “Intelligence” → “Smarter”. Opus 4.8 defaults to xhigh.
--fallback-modelAuto-fall back to a model when the default is overloaded (print mode only).
--max-turns <N>Cap agentic turns (print mode only). Exits with error at the limit.
--max-budget-usd <N>Hard dollar cap on API spend (print mode only).
--betas <header>Beta headers in API requests (API-key users only).

System prompt

Four flags, two pairs. All work in interactive and non-interactive modes.

FlagBehavior
--system-prompt <text>Replace the entire default prompt.
--system-prompt-file <path>Replace with file contents.
--append-system-prompt <text>Append to the default prompt.
--append-system-prompt-file <path>Append from a file.

--system-prompt and --system-prompt-file are mutually exclusive. Append flags can combine with either replace flag. Default to appending — it preserves Claude Code’s built-in capabilities and only adds your requirements. Replace only when you need full control.

-p / --print flips Claude Code into SDK mode — no interactive UI, prompt → response → exit. The print-only flags below depend on it:

FlagEffect
--output-format <text|json|stream-json>Output shape. JSON is one blob; stream-json emits incrementally.
--input-format <text|stream-json>Input shape (paired with --output-format for full streaming).
--include-hook-eventsInclude all hook lifecycle events in the output stream. Requires --output-format stream-json.
--include-partial-messagesInclude partial streaming events. Requires --print and --output-format stream-json.
--replay-user-messagesRe-emit user messages from stdin on stdout for acknowledgment. Requires --input-format stream-json and --output-format stream-json.
--json-schema <schema>Validate output against a JSON Schema after the agent completes its workflow. As of v2.1.205, an invalid schema now errors (previously it silently produced unstructured output) and the format keyword is now accepted (previously rejected).
--no-session-persistenceDon’t save the session to disk; not resumable.
--exclude-dynamic-system-prompt-sectionsMove per-machine sections (cwd, env info, memory paths, git status) into the first user message. Improves prompt-cache reuse across users/machines running the same task. Ignored when a custom system prompt is set.

Bare mode and init lifecycle

FlagEffect
--bareSkip auto-discovery of [[claude-ai/hooks
--initRun [[claude-ai/hooks
--init-onlyRun Setup and SessionStart hooks, then exit without starting a conversation. Useful for CI one-time setup.
--maintenanceRun [[claude-ai/hooks

Subagents and agent teams

FlagEffect
--agent <name>Pin one [[claude-ai/subagents
--agents '<json>'Define custom subagents inline. Same field names as subagent frontmatter, plus prompt for instructions.
--teammate-mode <mode>How [[claude-ai/agent-teams

Worktrees and Chrome

FlagEffect
--worktree <name> / -wStart in an isolated git worktree at <repo>/.claude/worktrees/<name> (auto-generated name if omitted).
--tmux (or --tmux=classic)Wrap the worktree in a tmux session. Requires --worktree. Uses iTerm2 native panes when available.
--ideAuto-connect to IDE on startup if exactly one is available.
--chromeEnable Chrome browser integration for web automation/testing.
--no-chromeDisable Chrome integration for this session.

MCP, plugins, channels

FlagEffect
--mcp-config <files-or-json>Load MCP servers from JSON files or inline strings (space-separated). See [[claude-ai/essential-mcp-servers
--strict-mcp-configUse only what --mcp-config declares — ignore other MCP configurations.
--plugin-dir <path>Load plugins from a directory for this session only. Repeat the flag for multiple directories.
--channels <plugins>(Research preview) MCP servers whose [[claude-ai/channels
--dangerously-load-development-channelsEnable channels not on the approved allowlist (local dev). Accepts plugin:<name>@<marketplace> and server:<name>. Confirmation prompt.

Settings, debug, version

FlagEffect
--settings <path-or-json>Path to a settings JSON file or inline JSON string for additional settings.
--setting-sources <list>Comma list of which sources to load: user, project, local.
--ax-screen-reader(v2.1.181) Render screen-reader friendly output: flat text without decorative borders or animations.
--debug "<categories>"Debug mode with category filtering, e.g. "api,hooks" or negated "!statsig,!file".
--debug-file <path>Write debug logs to a path. Implicitly enables debug mode. Takes precedence over CLAUDE_CODE_DEBUG_LOGS_DIR.
--verboseFull turn-by-turn logging.
--version / -vPrint version.

Environment variables

The CLI reads several environment variables that aren’t exposed as flags. Most ship via What's New digests; gathered here for lookup:

VariableEffect
CLAUDE_CODE_SIMPLESet automatically by --bare. Skips auto-discovery of hooks, skills, plugins, MCP, auto memory, CLAUDE.md.
CLAUDE_CODE_DEBUG_LOGS_DIRDefault location for debug logs (overridden by --debug-file).
CLAUDE_CODE_DISABLE_CRONDisables /loop and CronCreate/List/Delete. Already-scheduled tasks stop firing.
CLAUDE_CODE_NO_FLICKER([[claude-ai/whats-new-2026-w14
CLAUDE_CODE_USE_POWERSHELL_TOOL([[claude-ai/whats-new-2026-w13
CLAUDE_CODE_PERFORCE_MODE([[claude-ai/whats-new-2026-w15
CLAUDE_CODE_CERT_STORE([[claude-ai/whats-new-2026-w15
CLAUDE_CODE_USE_MANTLE([[claude-ai/whats-new-2026-w15
ENABLE_PROMPT_CACHING_1H([[claude-ai/whats-new-2026-w16
CLAUDE_CODE_FORK_SUBAGENT([[claude-ai/whats-new-2026-w17
ANTHROPIC_BEDROCK_SERVICE_TIER(v2.1.122) Select a Bedrock service tier.
CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIXSame effect as --remote-control-session-name-prefix.
CLAUDE_CODE_STOP_HOOK_BLOCK_CAP([[claude-ai/whats-new-2026-w21
CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY(v2.1.143) Set to 1 to opt out of the default -ExecutionPolicy Bypass flag that Claude Code now passes to PowerShell on Windows.
ANTHROPIC_WORKSPACE_ID([[claude-ai/whats-new-2026-w21
CLAUDE_CODE_PLUGIN_PREFER_HTTPS([[claude-ai/whats-new-2026-w21
CLAUDE_CLIENT_PRESENCE_FILE(v2.1.181) Point at a marker file on disk; while the file exists, mobile push notifications for that session are suppressed. Useful when you’re at the machine and don’t want phone notifications for every agent turn.
CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT(v2.1.187) Override the default 5-minute timeout for remote MCP tool calls that hang with no response. Value in milliseconds. Default: 300000 (5 min).
CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP(v2.1.193) Set to 1 to disable automatic memory-pressure reaping for idle background shell commands.

New settings keys (W19–W21)

Settings keys added to settings.json since the W17 reference:

KeyAddedEffect
worktree.baseRefW19, v2.1.128fresh (default) branches --worktree, EnterWorktree, and agent-isolation worktrees from the remote default branch. Set to head to branch from local HEAD (keeps unpushed commits in new worktrees).
settings.autoMode.hard_denyW19, v2.1.136Block matching actions unconditionally in auto mode regardless of allow exceptions. For actions that should never run automatically even when broader allow rules apply.
parentSettingsBehaviorW19, v2.1.128Admin key: opt SDK managedSettings into the policy merge. Allows admins to control how managed settings interact with parent policy layers.
worktree.bgIsolationW21, v2.1.143"none" lets background sessions edit the working copy directly without EnterWorktree, for repos where worktrees are impractical (very large repos, monorepos with symlink-heavy configs). Default behavior requires EnterWorktree for isolation.

New slash commands and aliases (W16–W17)

Added since the CLI reference was last updated:

Command / aliasAddedBehavior
/usageW16 (v2.1.111); per-category v2.1.149Shows what drives your limits: parallel sessions, subagents, cache misses, long context — each with % of last 24 hrs and an optimization tip. Press d or w for day/week views. Merges old /cost and /stats. v2.1.149 (May 22): adds a per-category breakdown — Skills, Subagents, Plugins, and per-MCP-server cost — so you can see which surface is consuming your budget.
/tuiW16 (v2.1.110)Toggles between classic and flicker-free rendering mid-conversation. Can also set the tui setting in config.
/focusW16 (v2.1.110)Collapses view to last prompt, one-line tool summary with diffstats, and final response. Replaces Ctrl+O.
/code-reviewW22 (v2.1.147)Reports correctness bugs at a chosen effort level (e.g., /code-review high). Pass --comment to post findings as inline GitHub PR comments. Renamed from /simplify in v2.1.147 — /simplify is removed; update any automation.
/recapW17 (v2.1.108)On-demand session recap: one-line summary of what happened since you last focused this session. Auto-shown on return; toggle from /config.
/fewer-permission-promptsW16Scans transcripts for common read-only Bash and MCP calls and proposes an allowlist entry for .claude/settings.json.
/undoW16 (v2.1.108)Alias for /rewind.
/proactiveW16 (v2.1.105)Alias for /loop. See [[claude-ai/scheduled-tasks
vim v / VW17 (v2.1.118)Vim visual mode in the prompt input: v for character selection, V for visual-line, with operators and visual feedback.

Settings additions (W16): sandbox.network.deniedDomains — carves specific domains out of a broader allowedDomains wildcard in the sandbox network config. /config now persists to ~/.claude/settings.json (W17, v2.1.119) — theme, editor mode, verbose, and similar settings survive restarts and follow the project/local/policy precedence chain.

New flags (v2.1.178–v2.1.181, 2026-06-21 watchlist sweep)

  • --ax-screen-reader (v2.1.181) — Render screen-reader friendly output: flat text without decorative borders or animations. Useful for accessibility needs and for piped output where ANSI TUI decorations are unwanted.
  • --teammate-mode default changed (v2.1.179) — Default changed from "auto" to "in-process". The auto value (split panes if inside tmux, otherwise in-process) is still available as an explicit value but is no longer the default. Users who relied on automatic tmux split panes must now set --teammate-mode tmux explicitly.

Removed / deprecated

  • --enable-auto-mode — removed in v2.1.111. Auto mode is now in the Shift+Tab permission-mode cycle by default; use --permission-mode auto to start there.

New flags, settings & commands (W25, v2.1.166–v2.1.170)

From the Week 25 release digest (June 6–9 2026):

  • fallbackModel setting + --fallback-model (v2.1.166) — configure up to three fallback models tried in order when the primary is overloaded/unavailable; --fallback-model now also applies to interactive sessions. Claude Code also retries a turn once on the fallback model on an unexpected non-retryable API error.
  • --safe-mode flag + CLAUDE_CODE_SAFE_MODE (v2.1.169) — start with all customizations disabled (CLAUDE.md, plugins, skills, hooks, MCP servers) for troubleshooting.
  • /cd command (v2.1.169) — move a session to a new working directory without breaking the prompt cache mid-session.
  • disableBundledSkills setting + CLAUDE_CODE_DISABLE_BUNDLED_SKILLS (v2.1.169) — hide bundled skills, workflows, and built-in slash commands from the model.
  • Glob deny rules (v2.1.166) — glob patterns now allowed in the deny-rule tool-name position ("*" denies all tools); allow rules reject non-MCP globs; unknown tool names in deny rules warn at startup.
  • Thinking-disable (v2.1.166) — MAX_THINKING_TOKENS=0, --thinking disabled, and the per-model toggle now disable thinking on think-by-default models via the Claude API (3P unchanged; does not apply to always-on Fable 5).
  • claude agents --json (v2.1.169) — now includes blocked + just-dispatched sessions; new --all flag (completed sessions) plus id and state fields.

New settings & fixes (W26, v2.1.174–v2.1.176)

From the Week 26 release digest (June 12 2026):

  • language setting (v2.1.176) — pin the language for auto-generated session titles. Without this, session titles are generated in the language of the conversation. Set to a BCP 47 tag (e.g., "en") to always use a specific language regardless of conversation language.
  • footerLinksRegexes setting (v2.1.176) — array of regex patterns; matching links appear as compact badge entries in the footer row. Configurable via user settings or pinned by managed settings. Use to surface ticket numbers or PR URLs inline.
  • enforceAvailableModels managed setting (v2.1.175) — when true, (1) the availableModels allowlist constrains the Default model (a Default that would resolve to a disallowed model falls back to the first allowed model), and (2) user or project settings cannot widen the managed availableModels list. Previously, Default and user-side settings could escape the allowlist. Companion to availableModels (v2.1.162 area) and the version gates added in W24.
  • wheelScrollAccelerationEnabled setting (v2.1.174) — set to false to disable mouse-wheel scroll acceleration in fullscreen mode. Useful on trackpads where aggressive acceleration overshoots during code review.
  • /model picker now shows actual Default resolution (v2.1.174) — Opus shows as its own row on Max/Team Premium/Enterprise plans; Sonnet on Pro/Team; Opus on pay-as-you-go API.
  • VSCode Account & usage (/usage) per-category breakdown (v2.1.174) — cache misses, long context, subagents, and per-skill/agent/plugin/MCP attribution over 24h or 7d. VSCode companion to the CLI /usage per-component breakdown added in W21 (v2.1.149).

New MCP auth commands (v2.1.186, June 22)

  • claude mcp login <name> / claude mcp logout <name> (v2.1.186) — authenticate (or sign out of) an MCP server directly from the CLI, without opening the interactive /mcp menu. --no-browser redirects the OAuth handshake through stdin so you can complete login over SSH on a headless box. Adds an auth verb to the claude mcp subcommand family in the Quick command map above. See the Week 26 release digest.

New settings & commands (v2.1.181–v2.1.193, June 17–25)

Settings and commands added in the v2.1.181–v2.1.193 run (see Week 26 digest for full context):

Key / commandAddedEffect
/config key=valuev2.1.181Set any settings key from the prompt without opening the interactive config UI (e.g. /config thinking=false). Works in interactive, -p, and Remote Control.
/config --helpv2.1.183List all available shorthand keys for /config key=value. Companion to the v2.1.181 syntax.
sandbox.allowAppleEventsv2.1.181Opt-in to let sandboxed commands send Apple Events on macOS. Fixes open, osascript, and browser-based auth flows that were failing with error -600 in the sandbox.
sandbox.credentialsv2.1.187Block sandboxed commands from reading credential files and secret environment variables — a sandbox-scoped secret-exfiltration guard alongside existing sandbox network controls.
attribution.sessionUrlv2.1.183Omit the claude.ai session link from commits and PRs in web and Remote Control sessions.
autoMode.classifyAllShellv2.1.193Route all Bash/PowerShell commands through the auto-mode classifier instead of only arbitrary-code-execution patterns. Auto-mode denial reasons also now surface in the transcript, the denial toast, and /permissions recent denials.
respondToBashCommandsv2.1.186Set to false in settings.json to revert ! bash commands to context-only behavior (default as of v2.1.186: true — Claude responds automatically to ! bash output).
teammateMode: "iterm2"v2.1.186Teammate display mode using iTerm2 native panes; shows a warning when auto mode cannot find the it2 CLI.

/config UX changes (v2.1.183): Enter and Space both change the selected setting in toggle mode; Esc now saves and closes instead of reverting. The startup “setup issues” line under the logo was removed — run /doctor or --debug instead.

New releases (v2.1.196–v2.1.200, June 29 – July 3)

CLI-surface changes from the W27 point releases (see Week 27 digest for fuller change lists).

v2.1.197 (June 30) — default model changed. Claude Sonnet 5 is now the default model in Claude Code, with a native 1M-token context window and promotional pricing of 10 per Mtok through August 31. Update to v2.1.197 for access. A bare claude (no --model) now resolves to Sonnet 5, and the sonnet alias points at it.

v2.1.198 (July 1):

  • /dataviz skill — new bundled skill: chart and dashboard design guidance with a runnable color-palette validator. Invoke like any slash command.
  • Claude in Chrome GA — the browser integration behind --chrome / --no-chrome is now generally available (no install step
  • claude agents background sessions now ship PRs — on finishing code work in a worktree they commit, push, and open a draft PR instead of stopping to ask.
  • Background agent notifications — sessions that need input or finish fire the Notification hook with agent_needs_input / agent_completed events.
  • Explore agent model inheritance — the built-in Explore agent inherits the main session’s model (capped at opus) instead of running on haiku.
  • Subagent thinking-config inheritance — subagents and context compaction now inherit the session’s extended-thinking configuration, improving delegated-task output.
  • Gateway upstream provider — Claude Platform on AWS (anthropicAws) added as an upstream; model-not-found responses now advance the failover chain.
  • --bg cannot combine with -p/--print (v2.1.198). --bg / --background starts a session as a background agent and returns immediately. As of v2.1.198, combining --bg with -p/--print raises an error.
  • Removed: the /agents wizard — ask Claude directly, in natural language, to create or manage subagents, or edit .claude/agents/ files yourself. Confirmed verbatim against the official changelog (previously marked inferred in this article).

v2.1.196 (June 29):

  • Organization default models — admins set an org-wide default in the org console; it surfaces as “Org default” (or “Role default”) in /model when the user hasn’t chosen one. Companion to the enforceAvailableModels / availableModels managed settings (W26).
  • claude mcp list / claude mcp get hardening — no longer spawn .mcp.json servers a repo self-approved via a committed .claude/settings.json; untrusted workspaces show ⏸ Pending approval. Tightens the claude mcp subcommand family in the Quick command map above.
  • Readable default session names at session start — easier to identify and message from the Agents view.
  • Clickable file attachments — Cmd/Ctrl-click a chat file attachment to reveal it in Finder/Explorer.

v2.1.199 (July 2):

  • Stacked slash-skill invocations — /skill-a /skill-b do XYZ now loads all leading skills (up to 5), not just the first. Enables multi-skill composition from a single invocation (e.g., /dataviz /simplify make a chart loads both the dataviz and simplify skills before acting on the prompt).
  • CLAUDE_CODE_RETRY_WATCHDOG raises the default retry count for non-capacity transient errors to 300 and lifts the per-session CLAUDE_CODE_MAX_RETRIES cap (previously 15). Relevant for long unattended runs.
  • Daemon subcommand routing fix — claude --dangerously-skip-permissions daemon <subcommand> now routes to the daemon subcommand correctly. Earlier versions treated daemon <subcommand> as the prompt for a new interactive session when the flag came first — the subcommand never ran when claude was aliased to include --dangerously-skip-permissions. Only a leading --dangerously-skip-permissions or --allow-dangerously-skip-permissions triggers this fix; any other leading flag still starts an interactive session.
  • Transient server 429s (unrelated to your usage limit) now auto-retry with backoff for subscribers.

v2.1.200 (July 3) — “Manual” permission mode rename:

  • “default” permission mode renamed to “Manual” across the CLI --help, VS Code, and JetBrains. The --permission-mode flag and "defaultMode" setting both accept manual (new name) alongside default (backwards-compatible alias). The Shift+Tab mode cycle now labels this mode “Manual” instead of “Default”. If you display or parse the mode name from --help output, update your scripts/docs to expect “Manual”. The permission-mode table and flag description above are updated.
  • AskUserQuestion dialogs no longer auto-continue by default — previously these dialogs had an idle timeout that would auto-dismiss and continue; the new default requires explicit input. Configure an idle timeout via /config to restore the old behavior.
  • Project-scoped plugins now load correctly from git worktrees of the same repository.
  • disabledMcpServers / enabledMcpServers crash fix — Claude Code no longer crashes at startup when either key in .claude.json is set to a non-array value (e.g. a string or object instead of a list of server names). These are a distinct settings family from the workspace-trust-gated enableAllProjectMcpServers / enabledMcpjsonServers / disabledMcpjsonServers keys in .claude/settings.json (see MCP reference) — don’t conflate the two when writing automation against either.
  • /mcp panel accessibility fix — the interactive /mcp command’s server-list view now tracks focus correctly for screen readers and magnifiers. /mcp (distinct from the claude mcp CLI subcommand family in the Quick command map above) opens a panel showing connected servers, per-server tool counts, and pending-approval/reconnecting state.

New releases (v2.1.202–v2.1.205, July 6–8)

CLI-surface changes from the point releases after W27. /checkup is a same-week maintenance command announced by Boris Cherny (not tied to a numbered release).

v2.1.202 (July 6):

  • “Dynamic workflow size” setting in /config — controls how large Claude generally makes dynamic workflows (small / medium / large agent counts). An advisory guideline the model targets, not an enforced cap.
  • OpenTelemetry workflow.run_id + workflow.name attributes — workflow-spawned agents now emit these two attributes on their telemetry, so a full workflow run’s activity can be reconstructed from OTel data.

v2.1.203 (July 7):

  • Login-expiry warning — Claude Code warns when your login is about to expire, so you can re-authenticate before a background session is interrupted mid-run.
  • Grey ⏸ footer badge in manual permission mode — the footer row shows a grey ⏸ badge whenever the session is in manual permission mode, keeping the active mode always visible. Companion to the v2.1.200 “Manual” rename above.
  • MCP roots/list includes additional working directories — the session’s extra working directories (from --add-dir) are now exposed to MCP servers via roots/list, with a notifications/roots/list_changed sent when the set changes. MCP servers see every directory the session can touch, not just the launch cwd.

v2.1.205 (July 8):

  • Auto-mode transcript-tamper guard — a new built-in auto-mode rule blocks commands that would tamper with session transcript files. Same hardening family as the autoMode.hard_deny / autoMode.classifyAllShell controls above.
  • --json-schema validation hardening — an invalid schema now errors instead of silently producing unstructured output, and schemas using the format keyword are now accepted (previously rejected). The --json-schema row in the print-mode table above is updated.

/checkup command (Boris Cherny, July 8). One-pass project/CLI maintenance aimed at sustainable long-running agentic work. In a single pass it: cleans up unused skills, MCP servers, and plugins to reclaim context window; deduplicates CLAUDE.md and reorganizes a bloated root file into nested CLAUDE.md files + skills; disables slow hooks; updates Claude Code to the latest version; enables auto mode by default; and pre-approves frequently-used read-only commands. It always confirms before making any change. Announced by @bcherny; pairs with /doctor (diagnostics) and the Manual-permission-mode default. See Headroom for the broader context-hygiene theme.

Background-agent + worktree reliability, continued (v2.1.202–v2.1.205). The hardening run documented below for v2.1.195–v2.1.200 kept going across these releases — v2.1.204 was fix-only^[inferred] — with further background-session and worktree-isolation robustness fixes: background agents no longer stuck showing “failed”/“completed” after a SendMessage resume (v2.1.205), worktree-isolated subagents no longer running shell commands in the parent checkout (v2.1.203), and Windows worktree removal no longer deleting files outside the worktree through an NTFS junction or directory symlink (v2.1.205).

New release (v2.1.206, July 10)

Claude Code desktop in-app browser. Claude Code on desktop now has an in-app browser: Claude can pull up docs, designs, or any other site, then read, click through, and interact with it the same way it does with your local build. It’s sandboxed and configurable — you choose whether sessions persist. Requires updating to the latest desktop app. Docs: Browse external sites. Distinct from the --chrome / --no-chrome flags above, which integrate with an external Chrome install for web automation/testing — this in-app browser is built into the desktop app itself.^[inferred] Announced first-party by u/ClaudeOfficial on r/ClaudeAI, the same day as the v2.1.206 release below.

v2.1.206 changelog:

  • /cd directory path suggestions — /cd now offers directory path suggestions, matching the existing /add-dir behavior. Extends the /cd command (W25, v2.1.169) that moves a session to a new working directory without breaking the prompt cache.
  • New /doctor check for checked-in CLAUDE.md files — proposes trimming checked-in CLAUDE.md files by cutting content Claude could already derive from the codebase itself. Companion to the /doctor-related /config UX changes from v2.1.183 above. A community skill, doc-cleanup, tackles the same context-rot problem with a broader rot taxonomy (stale merge-status labels, dead cross-repo paths, unread-footnote corrections) and code-verified claims before flagging.
  • /commit-push-pr auto-allows the configured push remote — 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.
  • Gateway: /login supports Anthropic-operated public gateway endpoints — extends the self-hosted claude gateway --config gateway.yaml surface (v2.1.195) with Anthropic-operated public endpoints as an additional login target.
  • EnterWorktree confirmation prompt — now asks for confirmation before entering a git worktree outside the project’s .claude/worktrees/ directory.
  • Background agents upgrade in the background post-update — background agents now upgrade to a new Claude Code version right after an update completes, instead of paying a slow stale-session upgrade cost the next time you attach.

v2.1.206 bug fixes:

  • Expired login now correctly prompts /login, instead of surfacing a misleading “There’s an issue with the selected model” error on every model.
  • claude --resume and --continue now respond to keyboard input on startup (previously unresponsive).
  • MCP servers configured via --mcp-config or .mcp.json now respect a per-server request_timeout_ms (previously ignored) — long-running MCP tool calls in fresh sessions no longer time out at the 60s default. Distinct from CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT (v2.1.187) above, which covers hung remote MCP calls that get no response at all.
  • CLAUDE_CODE_EXTRA_BODY is no longer silently ignored by claude agents / --bg background workers — the shell-exported override now follows the dispatching session.
  • OAuth MCP servers no longer require manual re-authentication after a single failed token refresh.
  • --permission-prompt-tool pointing at an MCP server no longer crashes with “MCP tool not found” (error text truncated in the source release notes).

New release (v2.1.207, July 11)

Auto mode is now default-available on Bedrock, Vertex AI, and Foundry — no longer gated behind the CLAUDE_CODE_ENABLE_AUTO_MODE opt-in on those platforms; disable with the new disableAutoMode setting. (Elsewhere in this reference: /checkup above enables auto mode by default as part of its one-pass maintenance.)

v2.1.207 bug fixes:

  • Fixed the terminal freezing and keystrokes lagging while streaming responses containing very long lists, tables, paragraphs, or code blocks.
  • Security-relevant: remote managed settings from a non-interactive run (claude -p, the SDK) were being permanently recorded as consented without the security consent dialog ever showing — now fixed.
  • Fixed spurious prompt-injection warnings triggered by benign system-generated conversation updates.
  • The auto-updater no longer overwrites a custom launcher script or symlink at ~/.local/bin/claude on every release; /doctor now reports an externally managed launcher.
  • Compound commands with cd no longer prompt for permission when the only output redirect is to /dev/null.
  • Fixed the transcript jumping above the start of the answer when a response finishes streaming.
  • Fixed extensions.worktreeConfig being left in the repo’s .git/config (breaking go-git tools like tea) after the last worktree.sparsePaths worktree was removed.
  • Fixed malformed bracket patterns in rules globs, skill paths, .ignore, and .worktreeinclude breaking file reads, file suggestions, and worktree creation.
  • Fixed a crash loop in agent teams where a malformed teammate mailbox message caused repeated errors every second until the mailbox file was manually deleted.
  • Background sessions auto-named by accepting a plan now show that name on their agent-view row.

New release (v2.1.208–v2.1.209, July 14)

Full narrative in What’s New — Week 29. The new/changed reference surface:

  • Screen reader mode expanded (v2.1.208). The --ax-screen-reader flag (v2.1.181, above) gains two more enable paths: env var CLAUDE_AX_SCREEN_READER=1 and setting "axScreenReader": true — opt-in plain-text rendering for screen-reader users.
  • vimInsertModeRemaps setting (v2.1.208) — map two-key insert-mode sequences (e.g. jj → Escape) in vim mode.
  • CLAUDE_CODE_PROCESS_WRAPPER env var (v2.1.208) — agent view + the background service route every Claude Code self-spawn through a required corporate-launcher wrapper executable (enterprise/managed-launcher).
  • Mouse-click support (v2.1.208) for multi-select menus and “Other” input rows in fullscreen mode.
  • Safety (v2.1.208): catastrophic removals hidden inside $(…) / backticks / <(…) now prompt in --dangerously-skip-permissions and auto mode, matching the plain-form behaviour.
  • Plus a large batch of background-agent reliability and long-session memory/perf fixes (up to 7× faster tool rounds at high MCP-tool counts; up to 79× smaller edit-heavy transcripts) — see the digest.
  • v2.1.209 hotfix: fixed /model and other dialogs being blocked in claude agents background sessions (reverts an over-broad guard from v2.1.208).

New releases (v2.1.210–v2.1.211, July 14–15)

v2.1.210 (July 14):

  • Live elapsed-time counter on the collapsed tool-summary line — long-running tool calls now visibly tick instead of looking stuck.
  • Startup warning for Write(path), NotebookEdit(path), and Glob(path) permission rules — use Edit(path) or Read(path) instead; a rule written against the wrong tool name previously failed silently with no warning.
  • Worktree-isolation fix. isolation: 'worktree' subagents could run git-mutating commands against the main repo checkout instead of their own isolated worktree — now correctly contained. Same reliability family as the worktree-isolation fixes logged under v2.1.203/205 above.
  • ultracode keyword opt-in no longer fires on non-human-originated input — webhook payloads and relayed PR comments could previously trigger it.
  • Fixed a rendered text fragment leaking into crash telemetry when a UI component returned content outside a styled text element.
  • Fixed paste markers leaking into external editors opened from Claude Code, which could appear as stray È/É characters around pasted text.
  • Fixed claude attach sometimes failing with “job not found” or “agent is still starting” during session transitions — attach now waits for the daemon to settle, and terminal resizes during a slow attach apply once it completes.
  • Fixed a session crash when a tool’s result renderer returned a numeric bigint value or plain text instead of a UI element.
  • Fixed a hook callback timeout being misreported to the model as a user rejection, which made unattended sessions stop and wait. Relevant to Hooks’ blocking-mechanics reference.
  • Fixed Claude assuming a cd took effect after its command was moved to the background; the tool result now states the working directory is unchanged.
  • Fixed plugin-provided MCP servers being torn down when a worktree subagent session ended, affecting the MCP server connection for the parent session.

v2.1.211 (July 15):

  • --forward-subagent-text flag + CLAUDE_CODE_FORWARD_SUBAGENT_TEXT env var — include subagent text and thinking in stream-json output, so downstream systems consuming a session’s stream see subagent reasoning, not just the parent turn’s.
  • Security-relevant: permission-preview spoofing fix. Permission previews relayed to chat channels were not neutralizing bidirectional-override, zero-width, and look-alike quote characters — a tool input could visually alter the rendered approval message. Now neutralized.^[inferred — this closes exactly the class of trust gap Agent Guardrails flags for permission relay: a channel-relayed approval is only as trustworthy as what it displays, and a spoofed preview is a way to get a human to approve something other than what they think they’re approving.] Distinct from, and complementary to, the sandbox.credentials / autoMode.hard_deny controls documented elsewhere in this reference.
  • Safety-relevant regression fix: auto mode no longer overrides a PreToolUse hook’s ask decision for unsandboxed Bash — a hook ask now floors the decision at a prompt instead of being silently overridden by auto mode’s own classifier verdict. Directly relevant to the auto-mode classifier behavior documented in Agent Guardrails Layer 2.
  • Fixed parallel Claude Code sessions all logging out simultaneously after wake-from-sleep when many sessions share one credential store.
  • Fixed plugin MCP servers not reconnecting after an idle web session woke, leaving MCP calls failing until the next message.
  • Fixed Claude Code on Vertex and Bedrock attempting the default Opus model at startup and printing a spurious fallback notice when a model is explicitly configured.
  • Fixed subagents spawned with an explicit model override reverting to the parent’s model when resumed or sent a follow-up message.
  • Fixed nested .claude/rules/*.md files loading even when setting sources exclude project settings.
  • File-upload validation edge cases: filenames ending in a DOS device suffix (.prn) or a trailing dot are now accepted; files with multiple hard links are refused.
  • Fixed file uploads to Claude in Chrome from remote and CLI sessions.
  • Fixed edits that leave the input as ”?” being silently swallowed and toggling the shortcuts panel.
  • Fixed a startup hang when another Claude Code process held an exclusive lock on the project’s config file at session start.

New release (v2.1.212, July 17)

/fork → background session; /subtask = in-session fork. As of v2.1.212, /fork creates a new background session in claude agents that copies your current conversation context — it gets its own row and runs independently while you keep the original going. The old in-session fork behavior — delegating a task to a subagent while remaining in the same session — is now /subtask.

/fork evolution:

  • Before June 2 (v2.1.160): /fork = copy transcript to a manually-driven new session
  • June 2, v2.1.160/161: /fork = in-session subagent delegate; /branch = old manual-copy behavior
  • July 17, v2.1.212: /fork = new background session (own claude agents row); /subtask = in-session delegate

claude auto-mode reset [--yes] (v2.1.212) — new subcommand restores the default auto-mode configuration. --yes skips the confirmation prompt. See Auto Mode.

New session-wide caps (v2.1.212):

  • CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION (default: 200) — caps WebSearch tool calls per session; further calls are blocked once the cap is reached.
  • CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION (default: 200) — caps subagent spawns per session. Both caps are tunable via env var.

CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS (v2.1.212) — MCP tool calls longer than this threshold (default: 120000ms / 2 minutes) are automatically moved to the background so the session stays usable. Set to 0 or a very large value to disable.

/resume picker (v2.1.212) — when there is no obvious recent session to resume, /resume now opens a session picker instead of doing nothing.

Deprecated: the Task tool’s mode parameter — scheduling logic has moved to the ScheduleWakeup tool.

v2.1.212 bug fixes:

  • Fixed plan mode running file-modifying Bash commands without a permission prompt (correctness regression — plan mode is supposed to block writes).
  • Fixed worktree creation following a repository-committed symlink at .claude/worktrees, which could create files outside the repository (same worktree-isolation family as the v2.1.203/205/210 fixes).
  • Fixed a continue:false hook halt being dropped when the tool failed or completed mid-stream, and hook-infrastructure errors misreported as user rejections.
  • Fixed SIGTERM not propagating to the full Bash process tree when Claude terminates a command — child processes were left running.
  • Prompt caching improvement for commands routed behind Claude Code gateways.

New releases (v2.1.214–v2.1.216, July 18–20)

v2.1.214 (July 18) — new capabilities:

  • EndConversation tool. Claude can now end a session with highly abusive users or persistent jailbreak attempts — the same capability live on claude.ai since 2025. See Anthropic — Ending a subset of conversations.
  • Progress heartbeat for long-running tool calls that previously went silent — the session now emits a periodic heartbeat so long tools don’t look hung.
  • ISO modified timestamp added to memory-file frontmatter (memory files now carry a machine-readable last-modified stamp).
  • OpenTelemetry: message-level correlation + tool provenance. New message.uuid, client_request_id, and tool_source attributes on OTEL log events; new CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH to cap logged content length.

v2.1.214 permission / Bash-safety hardening (a batch of fail-closed fixes — relevant to Auto Mode and anyone relying on allow-rules):

  • Fixed single-segment dir/** allow rules (e.g. Edit(src/**)) auto-approving writes to a nested dir/ anywhere in the tree instead of only <cwd>/dir.
  • Fixed a permission-check bypass affecting commands run in Windows PowerShell 5.1 sessions.
  • Bash permission checks now fail closed on file-descriptor redirect forms that bash parses differently than the permission analyzer.
  • Commands over 10,000 characters now always prompt instead of running automatically.
  • zsh variable subscripts/modifiers inside [[ ]] comparisons now prompt (previously treated as inert text).
  • No longer auto-approves certain help/man commands that could smuggle unsafe options, command substitutions, or backslash paths.
  • Fixed permission prompts on remote sessions that could proceed before the local confirmation dialog resolved.

v2.1.215 (July 19): Claude no longer runs the /verify and /code-review skills on its own — invoke them explicitly with /verify or /code-review when you want them.

v2.1.216 (July 20):

  • sandbox.filesystem.disabled setting (new) — skip filesystem isolation while keeping network egress control. For workflows that need full-disk access but still want the sandbox’s network guardrails.
  • Fixed a quadratic slowdown in long sessions: message-normalization cost grew with turn count, causing multi-second stalls and slow resumes.
  • Fixed auto mode denying commands with “HTTP 401” classifier errors after the OAuth token expired or rotated mid-session (see Auto Mode).
  • Fixed AskUserQuestion telling Claude to continue even when the answer asked it to wait or explain first — free-text answers now get neutral wording.
  • Fixed Claude Code on the web re-asking the same question and dropping the answer after a few idle minutes.
  • Worktree-isolation fixes (same family as v2.1.203/205/210/212): worktree-isolated subagents redirecting git into the shared checkout via git -C, --git-dir, or GIT_DIR/GIT_WORK_TREE; sessions landing in another project’s leftover worktree when cwd didn’t match the selected project; background sessions whose worktree has no git repo being undeletable.
  • Fixed resumed background-agent sessions reverting to the default agent — the agent’s prompt and tool restrictions are now restored on resume.
  • Fixed claude daemon stop --any potentially terminating an unrelated process via a stale legacy daemon lockfile.
  • Fixed assorted UX: @-mentions silently attaching nothing after file-modifying hooks; vim dot-repeat of c-operators and paste; statusline running twice on resume; resume-picker hangs on failure; Esc-Esc at an idle prompt not opening the rewind picker.

New releases (v2.1.217–v2.1.218, July 21–22)

Sources: raw/anthropic-watch-claude-code-tag-v2-1-217.md (tagged 2026-07-21T21:35:10Z) and raw/anthropic-watch-claude-code-tag-v2-1-218.md (2026-07-22T21:24:56Z), both ashwin-ant. Both stubs are truncated mid-item at the source feed — v2.1.217 cuts off at “Fixed Remote Control sessions not showing a …” and v2.1.218 at “…priced at the co…”. Everything below is verbatim-backed; see Open Questions for the tail.

v2.1.217 (July 21) — new:

  • Emoji shortcode autocomplete in the prompt input. Type :heart: to insert ❤️, or :hea for suggestions. Disable with the emojiCompletionEnabled setting — the new settings key of this release, and the one to reach for if you write code where a stray : sequence shouldn’t expand.
  • Warnings when transcript writes are failing (e.g. disk full) or when session saving is off because of an inherited environment variable — instead of losing transcripts silently. Companion to the W25 fix for VS-Code-inherited env vars killing transcripts; this one surfaces the condition rather than fixing a single cause.

v2.1.217 fixes:

  • MCP truncated-output memory leak. Truncated MCP tool outputs kept the full untruncated result in memory for the rest of the session. Directly relevant to long sessions against chatty MCP servers — the visible output was small, the retained footprint was not.
  • Background-session isolation now canonicalizes symlinked working directories — previously a symlinked cwd could let a session escape its workspace folder. Same worktree/background-isolation family as v2.1.203/205/210/212/216, and the security-relevant one of this batch.
  • Auto-compact never triggering for Claude Opus 4.8 on Bedrock, and /compact failing once already over the limit. Both fixed. Bedrock users on Opus 4.8 were effectively running without auto-compact.
  • Windows auto-update failures that could leave claude.exe missing; failed updates now restore the preserved executable automatically.
  • Corporate mTLS, TLS-verify, OAuth scope, and proxy settings being ignored in Claude Desktop sessions.
  • Managed OTEL_EXPORTER_OTLP_ENDPOINT not governing all signals — lower-scope signal-specific overrides no longer redirect telemetry away from the managed endpoint. An enterprise telemetry-exfiltration gap, closed.
  • --resume / --continue / /resume failing with a TypeError on a transcript with a malformed attachment entry.
  • Screen-reader mode: startup announcement cut off by the first prompt render; thinking status row re-rendering every few seconds to update elapsed time and token counts.

v2.1.218 (July 22) — the /code-review and /ultrareview release:

  • /code-review now runs as a background subagent — review work no longer fills your conversation, and stacked slash commands stay its review target. The most consequential change in this pair for anyone who reviews inside a working session.
  • Fixed /ultrareview failing on descriptive arguments like "review my auth changes" — those now run a review of your current branch, with the text applied as a note to the findings rather than being parsed as a target.
  • Fixed /code-review ultra silently running a local review in non-interactive sessions — it now launches the cloud review. Silent-downgrade class bug: scripted/CI invocations were getting a weaker review than requested with no signal.
  • Fixed the left arrow key discarding the conversation with no undo. Presses right after editing now ask to confirm, and Esc in the agent view returns to the conversation it backgrounded.
  • claude mcp list and /mcp now show HTTP status and error text when a server fails to connect, plus a warning for MCP config values with hidden leading or trailing whitespace. Two of the most common silent MCP-config failures, finally surfaced.
  • Fixed Windows paths with \u-prefixed segments (e.g. C:\Users\unicorn) being corrupted into CJK characters in tool inputs, which made those files inaccessible.
  • Fixed multi-line paste collapsing into one line with j in place of newlines, in terminals that encode pasted newlines as Ctrl+J.
  • Fixed /context reporting stale pre-compact token usage after compacting from the message picker.
  • Screen-reader announcements of deleted text for word and line deletions (Option+Delete, Ctrl+W, Cmd+Backspace, Ctrl+U, Ctrl+K) in --ax-screen-reader mode.
  • Gateway spend metering now prices Bedrock application-inference-profile ARNs and other config-mapped upstream model IDs correctly (item truncated at source).

New releases (v2.1.219, July 24)

Source: ai-research/claude-code-docs-changelog-2026-07-24.md (official changelog, fetched 2026-07-24). Also fills truncation gaps for v2.1.217–218 (previous stubs cut mid-item).

v2.1.219 (July 24) — Claude Opus 5 + settings + subagent depth:

  • Claude Opus 5 as default Opus model — claude-opus-5 replaces Opus 4.8 as the default Opus; 1M context; fast mode at 50 per MTok. The /model picker now labels the Opus row “Opus (1M context)”.
  • Opus 4.7 removed from fast mode — /fast now applies to Opus 5 and Opus 4.8 only.
  • workflowSizeGuideline settings key — controls the Dynamic workflow size guideline from any settings file; hides the /config toggle while set.
  • Dynamic workflows now default to medium size (aim for fewer than 15 agents); override via /config or workflowSizeGuideline in settings.
  • sandbox.network.strictAllowlist setting — deny non-allowlisted hosts for sandboxed commands without prompting.
  • DirectoryAdded hook — fires after /add-dir or SDK register_repo_root registers a new working directory mid-session (see Hooks).
  • mcp_server_errors in headless stream-json init event — lists --mcp-config entries skipped by config validation; terminal runs print a startup warning.
  • Nested subagent forwarding in stream-json — depth-2+ subagents appear in --forward-subagent-text output, keyed by their spawning Agent tool_use id.
  • Managed MCP allowlist/denylist ${VAR} entries now resolve from the startup environment and managed-settings env instead of settings-file env.
  • Subagent nesting depth 3 — subagents can spawn nested subagents up to depth 3 by default (was briefly 0 in v2.1.217); set CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 to disable nesting.
  • Fixed claude -p text output dropping the already-produced answer when a turn dies mid-stream on an API error.
  • claude mcp list and /mcp now show HTTP status and error text when a server fails to connect, plus a warning for hidden leading/trailing whitespace in MCP config values.
  • /model picker highlight updated: only the newest model’s name is highlighted.
  • claude-api skill updated to default to Opus 5 with a migration path from Opus 4.8.
  • Structured failure categories added to self-hosted runner spawn/session failures.

New releases (v2.1.220–v2.1.224, July 25–August 7)

Source: ai-research/claude-code-docs-changelog-2026-08-07.md (official changelog, fetched 2026-08-07). Full narrative in What’s New — Week 32.

v2.1.220 (July 25): Bug fixes and reliability improvements only — no new CLI surface.

v2.1.221 (August 4) — new surface:

  • mode: "mask" for sandbox credential files (Linux/WSL) — new option under sandbox.credentials. The session reads a sentinel copy of the file (or a structured-field extract) while the sandbox proxy substitutes the real value on egress. On macOS, credential masking falls back to deny. Extended in v2.1.224 with extract/onExtractNoMatch, decode: "jwt", and awsPairs/sigv4 options (all require network.tlsTerminate).
  • prompt-audit subcommand on the claude-api skill — audits prompts and tool descriptions for patterns written for older models. Run against your CLAUDE.md and skill files. Companion to The New Rules of Context Engineering for Claude 5 Models.
  • /status now shows session kind — interactive, background job that is attached, or background job that is unattended.
  • Sessions forked with /fork now create their own git worktree (same isolation guarantee as worktree-isolated subagents extended to /fork).
  • [VSCode] Focus view — Ctrl+Alt+F or “Claude Code: Toggle Focus view” hides tool activity behind an expandable per-turn summary with a live running-tool indicator.

v2.1.222 (August 4) — changes and removals:

  • ultraplan removed. See Ultraplan (removed in v2.1.222).
  • Remote Control auto-start can no longer be enabled by a repo-local .claude/settings.json. A committed settings file can disable Remote Control auto-start, but cannot enable it. Enable via user-scope /config only.
  • /usage MCP attribution corrected — was inflating MCP server share by counting every turn after any tool call to a server. Now reflects only turns that actually consumed its results. Relevant: any MCP cost estimates derived from /usage before this release are inflated.

v2.1.223 (August 6) — new surface and behavior changes:

  • /review is now an alias of /code-review — consolidates the two commands. /code-review reviews the current diff or a PR; /code-review ultra runs a deep cloud review. With no effort level, /code-review reuses the last typed level — type /code-review high to change it. (Note: v2.1.202 changed /review to single-pass; v2.1.223 makes it a full alias.)
  • Marketplace "owner/*" wildcard entries in strictKnownMarketplaces and blockedMarketplaces managed settings — allow or block all marketplace repos under a GitHub org in one entry.
  • CLAUDE_CODE_DISABLE_1M_CONTEXT now holds every Claude model with a native 1M context window to 200K via auto-compaction — no longer a fixed model list. A startup warning appears when the env var is set but auto-compaction is not enforcing 200K. If you set this env var expecting it to cover a model released after the previous fixed list was compiled, it may not have applied before this release.
  • /teleport hint shown in cloud sessions — displays how to continue the session locally via claude --teleport.

v2.1.224 (August 7) — new surface:

  • claude self-hosted-runner — new subcommand (Team and Enterprise). Registers your own machines or containers as execution targets for Claude Code web, mobile, and desktop sessions. See Week 32 — Self-hosted runners.
  • archive plugin source — claude plugin install <url.zip> installs a plugin from a zip over HTTPS with optional --sha256 pinning. Neither git nor npm required. See Plugins and Marketplaces.
  • crossSessionInbound setting — messages sent via SendMessage to a session running with bypassed permissions are held for human approval; messages to other sessions auto-deliver.
  • dialogExpiry setting — controls how long held cross-session-inbound approval dialogs remain open.
  • ANTHROPIC_BEDROCK_REGION_PREFIX — env var to prefer a specific Bedrock cross-region inference profile over the one derived from AWS_REGION.
  • Cross-session SendMessage + ListAgents (macOS and Linux) — Claude Code sessions can now discover and message each other across machines. See Week 32 — Cross-session messaging between machines.
  • 200-subagent-per-session spawn cap removed. CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION (added v2.1.212, default 200) no longer hard-limits long-running sessions. Concurrency cap (CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS, default 20) and depth cap (CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH, default 3) still apply.

v2.1.217–218 gaps now filled (items missing from the truncated raw stubs, now confirmed from official changelog):

v2.1.217 missing items (cut at “Fixed Remote Control sessions not showing a …”):

  • Fixed Remote Control sessions not showing a pending permission prompt or dialog to viewers that connected after it appeared.
  • Fixed background shells becoming impossible to stop after /background or ← on heavily loaded machines (most visible on Windows).
  • Fixed a CLAUDE.md or SKILL.md paths frontmatter value with many brace groups OOM-killing or stalling the CLI — brace expansion is now budget-bounded.
  • Fixed transcript preview sitting flush against the input area when attaching to a starting background session.
  • Improved footer PR badge links to be clickable hyperlinks even when terminal support can’t be detected (over ssh/tmux); set FORCE_HYPERLINK=0 to opt out.
  • Changed login-expiry warning to appear 3 days before expiry instead of 5.
  • CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS (new, default 20) — cap on concurrently-running subagents; a single message can’t fan out unbounded background agents.
  • CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH — sets nesting depth; v2.1.217 initially set default to 0 (disabled nesting), v2.1.219 revised default to 3.
  • --max-budget-usd now stops background subagents once reached.

v2.1.218 missing items (cut at gateway-spend-metering line):

  • Fixed gateway spend metering to price Bedrock application-inference-profile ARNs and other config-mapped upstream model IDs at the configured model’s rates (the truncated “…priced at the co…” line).
  • Fixed mojibake when a long IDE selection was truncated mid-emoji, and a case where a tool executor error could be silently dropped.
  • Fixed engine teardown race that could start and abandon a phantom turn; input pushed after close now consistently rejected.
  • Fixed spurious “[Request interrupted by user]” messages after interrupted tool calls; unpaired tool_use block left when a tool aborted mid-response.
  • Fixed VoiceOver reading “new line” instead of echoing the typed space at end of input in --ax-screen-reader mode.
  • Fixed plugin and settings panels not moving the terminal cursor to the focused row.
  • Fixed crashes (maximum call stack exceeded) on deeply nested watched directory tree deletion and on rendering deeply nested UI trees.
  • Fixed PR events occasionally lost when a session exited immediately after creating/linking a PR.
  • Fixed Bedrock setup wizard failing for assume-role profiles in partitioned AWS regions and on proxy-only networks.
  • Fixed rare negative/incorrect turn duration measurements — turns now timed with a monotonic clock.
  • Fixed “N MCP servers need authentication” startup notice over-counting claude.ai connectors that aren’t connected.
  • Fixed prompt history entries dropped or duplicated when history writes raced or failed.
  • Fixed a retry loop re-sending doomed requests after context-overflow error with large thinking budget.
  • Security: Fixed agent frontmatter hooks running from untrusted folders — hooks now require the agent file’s folder to have accepted workspace trust.
  • Fixed fork-session lineage lost after compaction in headless/SDK sessions.
  • Fixed a resumed session failing every turn when its history held a malformed delta attachment.
  • Changed /deep-research to start only when invoked manually.
  • Changed plan mode with auto to no longer prompt for Bash commands the static analyzer can’t prove read-only.
  • Changed server-managed settings so benign feature/cost toggles no longer trigger the settings-approval prompt.
  • Agent names with : are now rejected (reserved for plugin namespacing).
  • Skills with context: fork now run in background by default; opt out per skill with background: false.
  • yes/no/on/off/1/0 now accepted as boolean values for skill/plugin frontmatter.
  • Fixed remote sessions continuing to send heartbeats after worker replacement.

Background agent reliability hardening (v2.1.195–v2.1.200)

A running theme across the W27 point releases, not a single feature ship: long-running background sessions/agents (claude agents, the daemon supervisor) got measurably more resilient to interruption across five consecutive versions. Verified against the official changelog (ai-research/claude-code-docs-changelog-2026-07-06.md) — this closes the “background agents surviving crashes, with cross-OS handover” item flagged by the unofficial @ClaudeCodeLog changelog-thread cluster (raw/x-account-claudecodelog-2072425697629343845.md).

  • Cross-platform crash/restart survival (v2.1.196). Long-running background commands and workflows now survive the session’s own process being stopped, restarted, or updated — including on Windows, where background shells are now handed off instead of killed outright. Daemon-restart-killed workers are automatically resumed the next time the agents view opens.
  • Daemon-crash recovery (v2.1.200). Fixed background agents never restarting after a crash left a stale daemon.lock file whose PID the OS had since reused (previously blocked all future restarts indefinitely). Hardened daemon handover so a reinstalled older build can no longer hijack a running daemon — build recency is now judged by the version’s embedded build timestamp.
  • Sleep/wake and stall fixes (v2.1.200). Fixed background sessions silently stopping mid-turn after sleep/wake or when reopening a previously-stalled session; fixed a stalled session re-running a turn that had already been cancelled with Esc.
  • Platform-specific fixes (v2.1.199). Linux: fixed the background-agent daemon killing itself and every running agent roughly every 50 seconds after an unclean shutdown left a corrupted worker record. macOS: fixed background agents failing to cold-start over SSH with “Could not switch to audit session” (a regression introduced in v2.1.196).

See Week 27 digest for the exhaustive per-version bug list (roster corruption, socket auth tokens, control-byte terminal leaks, and more) — this section covers only the subset that answers “does a background agent survive X?”

Recent additions (2026-08-09 watchlist sweep)

New and updated CLI surface from ai-research/watchlist-snapshots/code-claude-com-docs-en-cli-reference-2026-08-09.md:

--autocompact <auto|tokens> flag (v2.1.221)

Set the auto-compact window for a session without changing saved settings. Accepts the same values as /autocompact. Requires Claude Code v2.1.221 or later.

claude --autocompact 500k    # threshold: 500 000 tokens for this session
claude --autocompact auto    # default auto-compaction logic for this session

Useful in one-off sessions or CI scripts where you want a compaction threshold that differs from your persisted /autocompact setting, without touching that setting for future sessions.

--resume now searches all projects on this machine (v2.1.223)

When you pass a session ID to --resume / -r, Claude Code now searches the current project directory and its git worktrees, then every other project on this machine. Before v2.1.223, session ID search covered only the current project and its worktrees — sessions in other projects were unreachable by ID unless you navigated there first.

Name search and the picker are unchanged — they already searched across all projects before v2.1.223.

--mcp-config with -p skips wait for cached servers (v2.1.221)

When using --mcp-config with -p, Claude Code waits for pending servers to connect before running the first turn. Servers with a cached tool list (from a prior session) skip the wait and connect on first use. Both the wait behavior and the cached-tool-list shortcut require v2.1.221 or later.

Recent additions (2026-07-05 watchlist sweep)

New CLI surface in Claude Code as of v2.1.195–v2.1.199, sourced from ai-research/watchlist-snapshots/code-claude-com-docs-en-cli-reference-2026-07-05.md:

  • claude gateway --config gateway.yaml (v2.1.195). New subcommand: starts the self-hosted Claude apps gateway server. For administrators deploying SSO and policy in front of Claude Code on Amazon Bedrock, Google Cloud’s Agent Platform, or Microsoft Foundry. Requires --config pointing at a gateway.yaml. Added to the Quick command map above under “Gateway.”
  • claude daemon stop --any [--keep-workers]. New subcommand: stops the background-session supervisor and the sessions it hosts. --keep-workers leaves background sessions running so the next supervisor reconnects to them; --any confirms stopping an on-demand supervisor. Use to recover from an unresponsive supervisor.
  • --bg cannot combine with -p/--print (v2.1.198). Previously undocumented constraint: combining --bg / --background (start as background agent, return immediately) with -p/--print (SDK/non-interactive mode) raises an error as of v2.1.198.
  • Daemon routing fix (v2.1.199). claude --dangerously-skip-permissions daemon <subcommand> now routes to the daemon subcommand. Previously, a leading --dangerously-skip-permissions caused daemon <subcommand> to be treated as an interactive session prompt.

Recent Signals

[Reddit signal — r/ClaudeCode 2026-05-09]: r/ClaudeCode post 1t8712b (“20 Claude Code commands worth using”, score 318) inventories operator-level slash commands grouped into stop/undo/branch (Esc, double-Esc//rewind, /btw, /branch), context management (/compact, /clear, /export, /resume, claude -c, claude -r, /remote-control aka /rc), working-smarter (/model opusplan, /simplify, /insights HTML report at ~/.claude/usage-data/report.html, /loop with .claude/loop.md overrides, /skills [name]), and keyboard shortcuts (Ctrl+V paste screenshots, Ctrl+J newline-without-send, Ctrl+R prompt history search, Ctrl+U clear input). Notable hazard surfaced in comments: /model opusplan has an unresolved bug where every subagent runs Opus (very expensive) — flagged for Quick command map consumers to verify before adopting opusplan as default. Verify each entry exists in this reference and append any that are missing during the next refresh pass.

[X signal — @bcherny 2026-05-21 → SHIPPED v2.1.149]: Boris Cherny (@bcherny) announced an upcoming /usage breakdown by Skills, Agents, MCPs, and Plugins. Shipped in v2.1.149 (2026-05-22) — see the updated /usage row in the table above. /usage now shows per-category attribution on top of the existing day/week view.

[Reddit signal — r/ClaudeCode 2026-05-22]: r/ClaudeCode post 1tkv87g (“/remote-control is a window into what the future is going to be like”, score 490 / 203 comments, u/OpinionsRdumb) is the highest-engagement /remote-control thread to date — workflow validation, not new feature surface. The OP frames /remote-control as a replacement for running 2-3 simultaneous local agents: enter /remote-control in CLI or Desktop, the session syncs in real time to the phone Claude app, you can drive it from anywhere, and the multi-agent burnout pattern collapses into one sequential session you check on from your phone. Anchors the --remote-control / claude remote-control row above as a load-bearing primitive (alongside Managed Agents and the --remote / --teleport siblings) rather than a niche flag. No CC version delta — feature has been live since W21; the signal is community validation crossing into broad awareness.

[Claude Code update — 2026-06-02, @ClaudeDevs]: /fork changed semantics → background agent; old behavior renamed /branch. /fork now spawns a background agent that inherits your exact context (system prompt, tools, conversation history, model selection) plus the prompt cache, and returns its result directly into your current session — delegated/parallel work with no context or cache loss. The previous /fork behavior (copy the transcript into a new session you drive manually) is now /branch — i.e. the /branch in the 2026-05-09 inventory above is this renamed command. Shipped on the v2.1.160/161 line; the full changelog lands in the Week-24 release digest. Source: @ClaudeDevs.

Community-sourced settings (YouTube walkthrough, ingested 2026-07-10)

A creator walkthrough (“These Hidden Settings Will 10x Your Claude Code”) surfaced several settings.json keys and one keyboard interaction not yet cross-verified against an official changelog or docs page reviewed by this wiki. Treat as community-reported, not Anthropic-confirmed, until corroborated.

  • autoCompactPercentageOverride^[inferred] (settings.json) — overrides the context-window percentage at which Claude Code auto-compacts. Per the creator, the built-in default waits until the context window is ~95% full; they recommend overriding to ~75%, their stated “sweet spot” for pre-empting context rot (which they say can start around 70-80% full). Accepts a value from 0 to 100. See Headroom for the broader context-hygiene theme.
  • cleanupPeriodDays^[inferred] (settings.json) — overrides the default 30-day retention window for saved conversation transcripts (the history shown in /resume). The creator warns not to set it to 0 (wipes history immediately); set a larger number (e.g. 365) to retain more.
  • spinnerTipsEnabled: false^[inferred] (settings.json) — disables the rotating tips shown under the input spinner while Claude is working.
  • Starter deny-rule pair (settings.json permissions) — the creator’s recommended minimum: deny reads of .env files (keeps secrets/API keys out of context) and deny git push * (keeps publish authority with the human even when commits happen automatically). Deny rules are checked before allow rules at every level — ties into the glob deny-rule support shipped in v2.1.166 above.
  • Mobile push notifications for remote-control sessions (settings.json) — the creator describes an “agent push notify enabled” line (set true) that, inside a --remote-control / /remote-control session, pings your phone when a permission prompt or question is waiting. Distinct from CLAUDE_CLIENT_PRESENCE_FILE (v2.1.181) above, which suppresses mobile pushes while a presence marker file exists on the local machine — this is the opt-in push itself, not its suppression.
  • Blank commit/PR attribution (settings.json) — the creator shows blanking out the default commit/PR attribution text (normally something like “Generated with AI” / “Co-Authored-By: your alias”) so commits stop being attributed to Claude. The transcript doesn’t spell out the exact key on screen; distinct from attribution.sessionUrl (v2.1.183) above, which only omits the claude.ai session link, not the co-authorship text itself.
  • Ctrl+S prompt stash (keyboard interaction) — while typing a prompt, Ctrl+S stashes (cuts) the in-progress draft; pasting or hitting Ctrl+S again from a fresh prompt restores it. Functions like cut/paste for prompt drafts — useful for detouring mid-prompt without losing the draft.
  • ClaudeSounds (third-party, not an Anthropic project) — a community notification-hook library by Dave Schumacher that wires custom audio notifications into Claude Code’s notification hooks, as an alternative to the built-in terminal-bell/OS-notification options exposed via /config. Clone the repo, add it to PATH, configure it as a notification hook.

Key Takeaways

  • One binary, named subcommands (auth, mcp, plugin, remote-control, agents, auto-mode, setup-token, install, update); everything else is flags on claude.
  • claude --help is incomplete by design — refer to this page (or the official source) for the full surface.
  • -p / --print is the SDK gateway. Most automation flags (--output-format, --max-turns, --max-budget-usd, --no-session-persistence, --include-hook-events) only apply with -p.
  • --bare is the fastest scripted entry — skips auto-discovery of hooks, skills, plugins, MCP, auto memory, CLAUDE.md. Pair with -p for cheap scripted calls.
  • --exclude-dynamic-system-prompt-sections is the multi-tenant prompt-cache lever: hoists per-machine state into the user message so the cached prefix is shared across users running the same scripted task.
  • --fork-session exists alongside --resume / --continue — the standard way to branch off an existing conversation without overwriting it.
  • Three modes for “how does Claude Code talk to claude.ai?”: --remote (push to web), --teleport (pull web back to terminal), --remote-control / claude remote-control (drive local from web/app).
  • Mistype protection: claude udpate returns a “Did you mean claude update?” suggestion and exits.

Try It

  1. Cheapest non-interactive call. claude --bare -p "summarize this in one line" < notes.txt — no auto memory, no plugins, no MCP, no CLAUDE.md scan. Useful in cron jobs and CI scripts where you just want the model.
  2. Force a specific model + effort. claude --model claude-sonnet-4-6 --effort high "..." to pin both for one session without changing settings.
  3. Plan-mode start. claude --permission-mode plan so the first turns plan-only; switch to write mode via Shift+Tab once aligned.
  4. Worktree-isolated session. claude -w feature-auth --tmux — clean branch + tmux split. Keeps speculative work out of the main checkout.
  5. Resume by name. claude -r "auth-refactor" (note: works because you set -n "auth-refactor" when you started). --fork-session if you want a copy that diverges.
  6. Web ↔ terminal handoff. claude --remote "Triage open Sentry issues" to spin a web session, then claude --teleport later to pull it down to your terminal.
  7. Multi-user prompt-cache reuse. claude -p --exclude-dynamic-system-prompt-sections "..." in scripted multi-user workloads — different users, same cache prefix.
  8. CI-safe auth. claude setup-token once locally → store the OAuth token in CI secrets → CI runs claude -p "..." non-interactively against it.

Recent additions (2026-08-14 weekly sweep)

New CLI surface and behavior changes in Claude Code v2.1.228–v2.1.233 (August 11–14, 2026), sourced from ai-research/claude-code-docs-changelog-2026-08-14.md:

  • CLAUDE_CODE_TOOL_MEMORY_LIMIT (v2.1.233, Linux). New env var (Linux only): caps the per-tool memory budget in megabytes. Set in environment or settings.json → env. Relevant to anyone running memory-constrained CI or container workloads where a runaway tool call could OOM the agent process.
  • CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS (v2.1.233). Controls how long WebFetch results stay cached (in milliseconds). Unset = default TTL. Set to 0 to disable caching (force a fresh fetch every call). Set to a large value to reduce redundant fetches in scripts that call the same URL repeatedly.
  • CLAUDE_CODE_ENABLE_TODO_TOOLS=1 (v2.1.233). The TodoRead / TodoWrite / TodoCreate tools are removed by default from Opus 4.8, Sonnet 5, Fable 5, and Mythos 5+. Set this env var to 1 to restore them. These models use native internal planning instead; the tools remain available on older models (Haiku 4.5, Sonnet 4.7, etc.).
  • forward_user_identity gateway setting (v2.1.233). Adds X-Forwarded-User headers to gateway-proxied requests so downstream inference providers can log or audit per-user traffic. Opt-in at the gateway config level.
  • Write tool overwrite without prior read (v2.1.228). On newer models, the Write tool can now overwrite an existing file without first reading it — the prior-read guard was removed. Older models retain the guard. This changes the “you must Read before Write” mental model; session prompts that enforce that sequence may now be redundant on current models.
  • GitLab MR URLs in --worktree and Agents view (v2.1.233). When a background or worktree session creates a GitLab merge request, the MR URL now surfaces in the Agents view and in the session output, matching the existing behaviour for GitHub PRs.
  • /code-review runs as background subagent at high/xhigh/max effort (v2.1.232). At --effort high, xhigh, or max, /code-review now spawns as a background subagent so it can run fully in parallel without blocking the interactive session. At lower effort levels it still runs inline.
  • claude plugin validate checks bare .claude/skills directories (v2.1.233). The validator now detects skill files placed directly in .claude/skills/ (without a plugin.json or wrapping directory) and warns that they will not be auto-loaded as plugins. Helps catch the common mistake of placing skills in the wrong directory.
  • @ session mentions (v2.1.232). Type @ inside a Claude Code session to mention (and address) another running agent session by name — the same @ mention model as Cowork. Works in combination with cross-session SendMessage for coordinating parallel sessions.

Recent additions (2026-08-16 watchlist sweep)

Source: ai-research/watchlist-snapshots/code-claude-com-docs-en-cli-reference-2026-08-16.md. The CLI reference docs page now documents the --post flag for claude ultrareview.

claude ultrareview --post (v2.1.227+)

claude ultrareview [target] accepts a --post flag that posts the finished review findings to the pull request as one plain comment from your GitHub account. Only valid on github.com PR targets. --no-post is the default (prints findings to stdout, exits 0 on success or 1 on failure). Requires Claude Code v2.1.227 or later.

# Run ultrareview on PR 1234 and post findings as a PR comment
claude ultrareview 1234 --post
 
# Run with JSON output and custom timeout, no auto-post
claude ultrareview 1234 --json --timeout 60

The Quick command map entry at the top of this article is updated to include --post.

Recent additions (2026-08-21 weekly sweep)

New CLI flags, env vars, settings, and commands in Claude Code v2.1.236–v2.1.239 (August 19–21, 2026), sourced from ai-research/claude-code-docs-changelog-2026-08-21.md:

ANTHROPIC_DEFAULT_MODEL env var (v2.1.236)

Sets the model new sessions start on. A /model pick still overrides it and persists across restarts — unlike ANTHROPIC_MODEL, which does not survive a /model override. Use in CI environments or shared workstations to pin a default without preventing users from switching.

keybindingFlavor setting (v2.1.238 / v2.1.239)

A new keybindingFlavor user/project setting changes the prompt key behavior:

  • "classic" (default) — unchanged; Ctrl+W deletes words in Claude Code’s own style.
  • "readline" — Ctrl+W deletes back to previous whitespace (Bash behavior); also activates Alt+F, Alt+D, Ctrl+→ word navigation, and punctuation-separated word boundaries (v2.1.239 extended this).

claude self-hosted-runner new flags (v2.1.238)

  • --defer-shutdown-max-min <minutes> — on SIGTERM, keep serving attached sessions, park remaining ones after the specified minutes, then exit. Enables graceful drains in rolling deploys.
  • --proxy-authorization-command <cmd> / --proxy-authorization-file <path> — supply a freshly issued Proxy-Authorization header on every egress connection for proxies that require per-connection auth tokens.

/claude-api upgrade (v2.1.239)

Built-in skill command that migrates Python projects from anthropic 0.x to 1.x. The bundled claude-api skill’s Python reference was also updated: in 1.x, timeouts use anthropic.Timeout, not httpx.Timeout. This skill was separately updated in v2.1.238 for the Managed Agents Aug 19 release (web search/fetch domain settings, memory stores on self-hosted sandboxes).

Cost estimates include data-residency premium (v2.1.239)

/cost, the status line, and --max-budget-usd now include the 1.1× US-only-inference premium that applies to data-residency workspaces. Enterprise teams using data-residency configurations should re-check budgets — actual costs were previously higher than the displayed estimate.

CLAUDE_CODE_RETRY_WATCHDOG behavior change (v2.1.239)

Persistent retry mode now fails immediately on organization spend-limit and out-of-credits errors instead of waiting indefinitely for a reset. Previously it would keep retrying without surfacing that no reset was coming.

Recent additions (2026-08-25 compile)

v2.1.240–245 (Aug 22–25). Thin week in the release feed:

VersionDateNote
v2.1.240Aug 22Bug fixes and reliability improvements (not itemised)
v2.1.241Aug 23Bug fixes and reliability improvements (not itemised)
v2.1.243Aug 24Changelog/feed chore
v2.1.245Aug 25Fixes a startup crash on Linux distributions shipping glibc 2.44 — named: Arch Linux, CachyOS, Fedora Rawhide

v2.1.242 and v2.1.244 do not appear in the release feed, matching the earlier v2.1.213 / v2.1.230 pattern. If Claude Code will not start on a rolling-release Linux distribution, update to v2.1.245 before debugging anything else. W35 is in progress and has no digest yet; v2.1.240–241 are folded into Week 34.

A community plugin worth knowing: /eli5. Per Thariq (Anthropic), people at Anthropic use it to have a topic explained as if you know nothing about it, rendered as an HTML artifact with big pictures and very few words — the stated point is comprehension before you attack a problem, not shorter output.

claude plugin marketplace add anthropics/claude-plugins-community
claude plugin install eli5@claude-community

Usage: /eli5 how does this module work, /eli5 why did we make this tradeoff, /eli5 what caused this incident.

Terminal vs desktop app — a recurring question. An r/ClaudeCode thread (score 250, 351 comments) asks why nearly every screenshot people share is from the terminal rather than the Claude Code desktop app, from a user who finds the desktop app “way more comfortable, flexible, and easy to read.” No answer is recorded here because the thread body contains only the question — but the volume of response is itself the signal, and it is worth noting that this wiki’s own coverage is overwhelmingly terminal-shaped. Two workflows in this batch run entirely in the desktop app, both by non-technical operators: the marketing-team build uses the open-folder / trust-workspace flow specifically because it is legible to people who do not use a terminal.

Recent additions (2026-08-28 sweep)

New CLI flags, env vars, settings, and behavior changes in Claude Code v2.1.246–v2.1.251 (August 25–28, 2026), sourced from ai-research/claude-code-docs-changelog-2026-08-28.md:

--restricted / CLAUDE_CODE_RESTRICTED=1 (v2.1.248)

A new execution floor that removes Bash, computer use, and WebFetch (unless named in --tools), keeps file tools inside the working directory, refuses bypassPermissions, and ignores user, project, and local settings files. Only managed settings apply. Designed for untrusted content pipelines, sandboxed CI, and locked-down code-review sessions where shell access must simply not exist.

# Evaluate untrusted code without shell access
claude --restricted -p "review this file for bugs" < untrusted-code.py

Unlike permission rules, --restricted removes tool classes entirely rather than gating them per-call. It cannot be weakened by a project .claude/settings.json.

CLAUDE_CODE_SUBAGENT_MODEL behavior change (v2.1.251)

Breaking change for existing workflows. Previously this env var overrode the subagent model in all cases — including when an agent definition’s frontmatter specified model: and when the spawning call named a model explicitly. After v2.1.251, it sets the default: an agent definition’s model: takes precedence, and an explicit per-spawn model argument takes precedence over that.

Migration: Workflows that relied on CLAUDE_CODE_SUBAGENT_MODEL to enforce a uniform model across all subagents, including those with explicit model: in their agent definition, will see different routing after this update. Use a PreModelSwitch hook (new in v2.1.251) to enforce model constraints deterministically.

experimental.cacheTtl in agent frontmatter (v2.1.248)

Accepts "5m" or "1h" — sets a per-agent prompt cache TTL used when no subagentPromptCacheTtl session setting is configured. Allows different cache durations for different agent definitions within the same session.

Enterprise default model → Opus 5 (v2.1.251)

Seat-based Enterprise subscriptions now default to Opus 5 on new sessions, matching Max and Team. Organizations that relied on Sonnet as a cost-control default should set ANTHROPIC_DEFAULT_MODEL=claude-sonnet-5 in managed settings or update per-account /config defaults.

/effort saves per-model (v2.1.251)

/effort now saves the effort level per model rather than globally. Switching from Opus to Sonnet and back restores each model’s own saved effort level. /effort high on Opus no longer bleeds into Sonnet sessions when you switch.

/claude-api cost-optimize (v2.1.247)

A new built-in skill command that profiles an existing project’s Claude API spend and works through cost levers (caching, token hygiene, batch API, effort reduction, model choice) one measured change at a time. The /claude-api skill was also updated in the same release with Admin API coverage: organization members, invites, workspaces, API keys, rate limit reports, workload identity federation, and CMEK.

Spend limit bar in /usage (v2.1.251)

A visual spend limit bar appears in /usage for sessions behind a Claude apps gateway with org spend limits. A matching rate_limits.spend_limit field is available for status line scripts.

Prompt-cache line in /cost (v2.1.251)

/cost now includes a per-session prompt-cache line: hit ratio, misses, tokens re-cached, and warm/cold status. A matching prompt_cache object is available in status line scripts. Previously, prompt-cache performance was only inferrable from the cost delta between turns.

Auto mode tab in /permissions (v2.1.246)

/permissions has a new Auto mode tab for viewing and editing auto mode classifier rules. Previously, inspecting auto mode rules required reading settings files directly.

Bash wildcard allow-rule startup warning (v2.1.246)

Claude Code now warns at startup when a Bash allow rule has a wildcard before the subcommand (e.g. Bash(git * main)). Such rules match git --force main as well as git commit main — a wider allow surface than most users intend.

self-hosted-runner --client-label (v2.1.248)

claude self-hosted-runner --client-label <label> (or SELF_HOSTED_RUNNER_CLIENT_LABEL) overrides the label the runner registers with (default: hostname). Useful for multi-runner deployments where the hostname alone does not distinguish runners.

Security fixes in v2.1.251 (summary for CLI users)

Five permission-bypass vulnerabilities fixed in one release:

  • File tools following a symlink after the permission check (TOCTOU — read/write outside approved path)
  • Plugin commands pointing outside the plugin directory (path traversal)
  • Project settings enabling beta tracing that bypassed a pinned OTLP collector
  • Workflow scriptPath readable before permission check ran (content leakage via error messages)
  • Grep/Glob ignoring Read(...) deny rules on files reached through a symlink

All five affect sessions in shared or adversarial environments. Update to v2.1.251 immediately if you run Claude Code in CI with untrusted plugins, project settings you don’t control, or shared working directories.

Recent additions (2026-09-06 watchlist sweep)

New flags appearing on the cli-reference docs page as of 2026-09-06, not present in the 2026-08-28 sweep. Both are in the versioned table that tracks minimum-version requirements. Source: ai-research/watchlist-snapshots/code-claude-com-docs-en-cli-reference-2026-09-06.md.

--permission-prompts (v2.1.259+)

Sets who answers permission prompts in print (-p) / headless mode. Relevant for operators routing approvals in non-interactive pipelines.

--append-subagent-system-prompt-file (v2.1.261+)

Loads subagent system prompt text from a file. Companion to --append-subagent-system-prompt (inline text). Allows larger subagent instructions to be stored as files rather than inline shell strings.

Recent additions (2026-09-13 watchlist sweep)

New items appearing on the cli-reference docs page as of 2026-09-13, covering v2.1.260 through v2.1.268+. Source: ai-research/watchlist-snapshots/code-claude-com-docs-en-cli-reference-2026-09-13.md.

claude rm — two new worktree flags

  • --discard-unpushed <commit>@<worktree-id> (v2.1.260+) — when removing a background session that has a worktree, discards unpushed commits at the specified commit in the given worktree. Required when the session has unpushed work and you want to force-remove without pushing first.
  • --force-remove-worktree <worktree-id> (v2.1.268+) — force-removes a worktree even if it has unmerged changes. Destructive; bypasses the normal safety check that prevents removal of worktrees with unmerged content.

--plugin-dir folder-of-plugins support (v2.1.265+)

--plugin-dir previously accepted a single plugin directory or a .zip archive. As of v2.1.265+, it also accepts a folder containing multiple plugins — the flag loads all plugins found within that folder.

--json for claude plugin subcommands (v2.1.268+)

All five claude plugin subcommands now accept --json to print the result as a structured JSON object:

claude plugin install --json
claude plugin uninstall --json
claude plugin enable --json
claude plugin disable --json
claude plugin update --json

Output format:

{"command": "install", "outcome": "ok", "message": "...", "pluginId": "formatter@my-marketplace", "scope": "user"}

Fields: command (the subcommand name), outcome (ok or error code), message (human-readable detail), pluginId (plugin identifier with marketplace scope), scope (user or project), failureCode (present on failure). Useful for scripting plugin management in CI or automated setup flows.

Recent additions (2026-09-18 weekly sweep)

New content from W36 (v2.1.251–v2.1.261) and W37 (v2.1.263–v2.1.277) plus changelog through 2026-09-18. Source: ai-research/claude-code-docs-whats-new-w36-2026-09-18.md, ai-research/claude-code-docs-whats-new-w37-2026-09-18.md, ai-research/claude-code-docs-changelog-2026-09-18.md.

maxEffortLevel setting (v2.1.269)

Caps the effort level on a per-model or global basis, across all providers including Bedrock, Vertex AI, and Foundry. Set in ~/.claude/settings.json:

{ "maxEffortLevel": "high" }

Valid values match the /effort levels (low, medium, high, xhigh, max). Prevents accidental max effort runs on expensive models in shared or CI environments.

/output-style command (v2.1.269)

List and switch output styles from any session type, including non-interactive -p runs. Previously only adjustable in interactive sessions.

CLAUDE_CODE_WEBFETCH_DEADLINE_MS (v2.1.268)

WebFetch now times out after 300 seconds instead of hanging indefinitely. Override with:

export CLAUDE_CODE_WEBFETCH_DEADLINE_MS=600000  # 10 minutes
export CLAUDE_CODE_WEBFETCH_DEADLINE_MS=0        # remove limit

omitClaudeMd in agent frontmatter (v2.1.271)

Skips CLAUDE.md loading for a specific agent definition. Use for subagents that should operate without inheriting the parent project’s instructions:

---
model: claude-haiku-4-5-20251001
omitClaudeMd: true
---

Per-command allowed_domains for Bash/PowerShell/Monitor (v2.1.271)

Restricts which network destinations a specific shell command can reach in auto mode, without writing a global deny rule. Configured per-command in the permissions block. See Auto Mode for the full syntax.

--accept-command <sha256> for claude plugin install/update (v2.1.271)

Non-interactively accepts a plugin’s install command by its SHA-256 hash, enabling fully automated plugin management in CI:

claude plugin install my-plugin --accept-command abc123...

bashOutputMaxChars / taskOutputMaxChars (v2.1.261)

Raises the character limit for inline output from successful Bash commands and background tasks, up to 128,000 characters. Previously long output was always truncated in the tool result.

{ "bashOutputMaxChars": 128000, "taskOutputMaxChars": 128000 }

bypassPermissions in project settings no longer takes effect (v2.1.261)

defaultMode: "bypassPermissions" in .claude/settings.json or .claude/settings.local.json is now silently ignored; the session starts in Manual mode instead. Only user or managed settings — or --permission-mode bypassPermissions at the CLI — can start a bypassPermissions session.

keybindingFlavor deprecated (v2.1.261)

Word-editing shortcuts now follow readline for everyone: Ctrl+W deletes to previous whitespace, Alt+B/Alt+F/Alt+D treat / and . as word breaks. The keybindingFlavor setting no longer has any effect.

CLAUDE_CODE_MCP_STARTUP_WAIT_MS (v2.1.274)

Bounds how long Claude Code waits for MCP servers to connect at startup:

export CLAUDE_CODE_MCP_STARTUP_WAIT_MS=5000  # wait 5 seconds max
export CLAUDE_CODE_MCP_STARTUP_WAIT_MS=0     # proceed immediately without waiting

CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1 (v2.1.277)

Tells Claude Code that the gateway proxy marks the egress boundary; affects network-access decisions in auto mode. Relevant for deployments where all outbound traffic goes through a gateway.

AGENTS.md support (v2.1.277)

When no CLAUDE.md exists in a project, Claude Code now reads AGENTS.md for project instructions. CLAUDE.md takes precedence when both files are present. Added for cross-tool compatibility with Codex CLI and other agent frameworks that use AGENTS.md as their project-instructions convention. See Week 37 for details.

Send-now interrupt key (v2.1.277)

Ctrl+Enter (or Ctrl+X Ctrl+S) interrupts the current turn and sends any queued messages immediately. Useful for course-correcting a running turn without waiting for completion.

multiplier in modelPricing (v2.1.271)

Applies a chargeback rate multiplier (1–10) for internal cost accounting in gateway deployments. Set in modelPricing per-model to reflect internal overhead rates.

fast mode in Claude Code Remote sessions (v2.1.271)

Fast mode is now available in cloud and self-hosted remote sessions, matching the behavior already available in interactive desktop/terminal sessions.

Recent additions (2026-09-25 sweep)

Source: ai-research/claude-code-docs-changelog-2026-09-25.md:

CLAUDE_CODE_AUTO_MODE_SERVER (v2.1.278)

Set to 0 to opt out of server-side auto mode classification. By default (v2.1.278+), the auto mode classifier runs server-side for Claude API, Enterprise, Bedrock, Vertex, Foundry, and gateway deployments. Server-side does not charge for classifier overhead. Set CLAUDE_CODE_AUTO_MODE_SERVER=0 to revert to local classification.

CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH (v2.1.280)

Environment variable to cap the length of MCP server descriptions sent to the model. Useful when a verbose MCP server is consuming excessive context. Check /context to see whether MCP schema descriptions are a significant fraction of context before tuning.

maxProseWidth setting (v2.1.282)

New setting in settings.json to cap prose column width in wide terminals:

{
  "maxProseWidth": 100
}

Prevents excessively wide line wrapping on monitors with very wide terminal windows.

attribution setting (v2.1.281)

Add "attribution": false to settings.json (user or project scope) to suppress the Generated by Claude Code attribution footer in GitHub comments, PR bodies, and commit messages:

{
  "attribution": false
}

availableModelsMatch and deniedModels managed settings (v2.1.283)

Two new managed settings for fine-grained model access control:

  • availableModelsMatch — a pattern (regex or glob) that further filters the availableModels allowlist. Allows families of models without enumerating every version.
  • deniedModels — explicit blocklist. Models listed here are denied even if they appear in availableModels.

/doctor prompt-audit (v2.1.283)

New claude doctor prompt-audit subcommand audits CLAUDE.md files and prompting patterns. Surfaces conflicting rules, overly long system prompts, and patterns that degrade model behavior on newer models.

claude doctor prompt-audit                         # audit current project
claude doctor prompt-audit --path /path/CLAUDE.md  # explicit path

x-claude-code-prompt-id gateway hint header (v2.1.283)

New hint header in gateway deployments. Carries a stable prompt ID, enabling gateways to group multiple requests from the same prompt. Joins the existing gateway hint headers (opt-in with CLAUDE_CODE_GATEWAY_HINT_HEADERS=1).


Recent additions (2026-09-20 watchlist sweep)

Source: ai-research/watchlist-snapshots/code-claude-com-docs-en-cli-reference-2026-09-20.md:

--exec <command> flag

Run shell command as PTY-backed background job. Combine with --bg to launch from the shell:

claude --bg --exec 'pytest -x'

The --bg flag starts the session in the background; --exec attaches the named shell command as the background task for that session.

--prompt-suggestions flag

Emit a prompt_suggestion message with a predicted next user prompt after each turn that generates one. Very short conversations may produce none.

Requires --print, --output-format stream-json, and --verbose to all be set. Intended for chat-style SDK consumers that want to pre-populate a suggested follow-up in the UI.


Open Questions

  • What is actually in v2.1.240 and v2.1.241? Both carry an unitemised “bug fixes and reliability improvements” note in the GitHub release feed. The official code.claude.com changelog may have detail; not fetched this pass.

  • Why do practitioners prefer the terminal over the desktop app? A 351-comment thread asks exactly this and the body records no answer. Worth a targeted read of that thread — the wiki’s coverage assumes the terminal without ever having justified it.

  • The page lists claude subcommands but does not include slash commands — those live under a separate “Interactive mode” / commands reference. Worth a future ingest.

  • Environment variables referenced (CLAUDE_CODE_SIMPLE, CLAUDE_CODE_DEBUG_LOGS_DIR, CLAUDE_CODE_DISABLE_CRON, CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX) point to a separate /en/env-vars page. Ingest candidate for the env-var matrix.

  • The “See also” section names Chrome extension, Interactive mode, Quickstart, Common workflows, Settings, and Agent SDK pages — none currently in the wiki at full depth. Candidate ingests if the surface keeps growing.

  • v2.1.217 / v2.1.218 stubs truncated at source. The anthropic-ecosystem-watch GitHub-release feed cuts both bodies mid-item: v2.1.217 at “Fixed Remote Control sessions not showing a …” (the Remote Control fix is unrecoverable from this raw file) and v2.1.218 at the gateway-spend-metering line (“…priced at the co…”, presumably “at the correct rate”). Trailing items after those points are unknown. Reconcile against the official CHANGELOG.md or code.claude.com/docs/en/release-notes — the same truncation pattern hit v2.1.208 and v2.1.210–211.

  • emojiCompletionEnabled default and scope unconfirmed. The v2.1.217 note says the feature is disabled with this setting, implying it ships on by default, but neither the default value nor whether it is a boolean or an enum is stated in the stub.