Claude docs changes for July 29th, 2026 [diff]

Executive Summary

  • Cloud environment configuration (network access, environment variables, setup scripts, organization-shared environments) moved out of "Claude Code on the web" into a new dedicated Configure cloud environments page, alongside a new worked example for deploying the Claude Apps Gateway on AWS (ECS Fargate/EKS, RDS, Secrets Manager, Bedrock).
  • If ANTHROPIC_API_KEY is set in the environment, Claude Code now skips the browser login prompt on first launch and instead asks you to approve the key.
  • Auto mode is now enabled by default for Team/Enterprise organizations (administrators opt out via permissions.disableAutoMode), reversing the previous opt-in model.
  • The Claude Apps Gateway now auto-applies most delivered environment variables (model selection, numeric limits, telemetry toggles) without an approval dialog — only proxy, base-URL, and OTLP-endpoint variables always require approval (gateway v2.1.218+).
  • The Agent SDK TypeScript reference gains a large set of new capabilities: a getContextUsage() method, fast_mode_disabled_reason diagnostics, several new hook events (DirectoryAdded, StopFailure, PostCompact, PermissionDenied, TaskCreated, Elicitation), and new built-in tools (CronCreate/CronDelete/CronList, RemoteTrigger, PushNotification, ReportFindings, Artifact, and more).

Claude Code changes

New Documents

claude-apps-gateway-on-aws [Source]

New worked example for deploying the Claude Apps Gateway on AWS using Amazon Bedrock (or Claude Platform on AWS) as the model upstream. It walks through provisioning the gateway on Amazon ECS Fargate or EKS behind an internal Application Load Balancer, Amazon RDS for PostgreSQL for session state, AWS Secrets Manager for credentials (JWT signing key, OIDC client secret, Postgres URL), an IAM role/IRSA for Bedrock access, and Okta (or any OIDC-compliant IdP) for sign-in, including prerequisites and step-by-step aws CLI commands.

cloud-environments [Source]

New page consolidating cloud-session configuration previously embedded in "Claude Code on the web": the auto-created Default environment (Trusted network access, no variables/setup script), creating/editing/archiving environments, environment variables and setup scripts, organization-shared environments for Team/Enterprise admins, pre-installed tools/runtimes, network access levels and the default allowed-domains list, the GitHub proxy, and the security proxy. It's now the canonical reference for cloud environment configuration across web, CLI --cloud, Claude Tag, routines, mobile, and Desktop.

Changed documents

accessibility [Source]

  • After the screen-reader mode confirmation line prints, Claude Code now holds the interface for 3 seconds (configurable via CLAUDE_AX_STARTUP_QUIET_MS, 0 to disable, press any key to skip) so screen readers can finish speaking. Requires v2.1.217+. [line 21] [Source]
  • Typing at the end of the input line now writes only the typed characters instead of rewriting the whole line each keystroke, so screen readers echo only new characters. Requires v2.1.219+. [line 51] [Source]

admin-setup [Source]

  • Owners/admins now choose the organization's default cloud environment separately, at a dedicated admin settings page (claude.ai/admin-settings/claude-code), rather than from the same page used to create shared environments. [line 83] [Source]

advisor [Source]

  • Clarifies that opus/sonnet/fable advisor aliases resolve to Claude Code's built-in default version per model family (which advances with new releases), not simply "the latest version." [line 71] [Source]

agent-sdk/agent-loop [Source]

  • Clarifies that extended thinking produces thinking blocks, and that the display field on ThinkingConfig controls whether the thinking text is actually returned. [line 185] [Source]
  • Adds Microsoft Foundry (Azure-hosted) deployments as a third condition, alongside Google Vertex and non-first-party ANTHROPIC_BASE_URL, that forces upfront loading of MCP tool schemas instead of deferred tool search. [line 220] [line 258] [Source]

agent-sdk/file-checkpointing [Source]

  • Documents a new limitation: edits made by a subagent aren't tracked/checkpointed, except for a skill run with context: fork in the foreground. [line 10] [Source]
  • New rewind safety behavior: Claude Code now skips restoring/deleting a tracked path that's a symlink, hard link, or other non-regular file (or whose parent no longer resolves, or whose backup can't be read safely); each skipped path is counted in a new skippedLinks field on RewindFilesResult. Requires v2.1.216+. [line 31] [Source]

agent-sdk/hooks [Source]

  • New DirectoryAdded hook event fires when a working directory is added mid-session (e.g. via /add-dir or the SDK's register-repo-root control request). [line 182] [Source]
  • Documents a distinct 1.5-second default timeout budget for SessionEnd callbacks. [line 234] [Source]
  • Clarifies that omitting permissionDecision from updatedInput still applies the modified input through normal permission evaluation. [line 349] [line 825] [Source]
  • Clarifies that in headless SDK sessions, only elicitation_complete/elicitation_response fire the Notification hook — other notification types like permission_prompt are interactive-UI-only and reach SDK sessions through canUseTool instead. [line 669] [Source]
  • Hook timeout section rewritten with a precise per-event breakdown of what happens when a callback times out (PreToolUse, PostToolUse, UserPromptSubmit, Stop/SubagentStop, and others). [lines 794-804] [Source]

agent-sdk/hosting [Source]

  • Adds a full Python equivalent example for the ephemeral-sessions one-shot container pattern (previously TypeScript-only). [lines 64-78] [Source]

agent-sdk/mcp [Source]

  • Clarifies that MCP servers that fail to connect don't throw/raise an exception — callers must use the status check, and should also account for servers still "pending" at init requiring a later check. [line 758] [line 794] [Source]

agent-sdk/modifying-system-prompts [Source]

  • New guidance: load large custom system prompts from a file via system_prompt={"type": "file", "path": "..."} in Python instead of a string, since a string prompt is passed as a CLI argument and can hit the OS argument-length limit at process spawn. [line 320] [Source]
  • New note describing the message stream shape (system init, assistant messages, user messages with tool results, final result message) for the CLAUDE.md example. [line 102] [Source]

agent-sdk/observability [Source]

  • New guidance on OTEL export failures: the CLI fails silently by default; set CLAUDE_CODE_OTEL_DIAG_STDERR=1 and read diagnostics via the SDK's stderr callback/option to see exporter errors. Requires v2.1.179+. [line 96] [Source]

agent-sdk/overview [Source]

  • Restructured (not a content removal) into a lean landing page: the detailed install/API-key walkthrough was replaced by a pointer to quickstart.md, and long per-capability code examples were replaced with a condensed capabilities table linking to the dedicated pages. [lines 5-31] [Source]
  • New comparison table near the top contrasting Agent SDK vs. CLI vs. Client SDK vs. Managed Agents. [lines 5-16] [Source]
  • "Next steps" restructured into a list, adding links to agent-loop.md and the "Agent harness design" blog post. [lines 73-82] [Source]

agent-sdk/plugins [Source]

  • Documents that the SDK doesn't expand tilde paths (e.g. ~/plugins) — a nonexistent plugin path is silently skipped rather than erroring. [line 322] [line 333] [Source]

agent-sdk/python [Source]

  • interrupt() example now reads message.terminal_reason ("aborted_streaming"/"aborted_tools") instead of the deprecated subtype="error_during_execution" pattern. [line 604] [Source]
  • CLAUDE_ENABLE_STREAM_WATCHDOG refined: after a stream-idle abort, Claude Code retries at most once, and only if Claude hadn't completed a text block or tool call; otherwise it keeps the completed output and appends an incomplete-response notice. [line 856] [Source]
  • New provider caveat: Claude Code doesn't forward the display field to Amazon Bedrock or Google Cloud's Agent Platform, so Opus 4.7+ returns empty ThinkingBlock output there even with display="summarized". [line 1313] [Source]
  • New failIfUnavailable sandbox setting: Python's sandbox defaults to running unsandboxed with a stderr warning when the sandbox can't start (unlike TypeScript, which defaults failIfUnavailable: true); setting it explicitly makes query() raise instead. [line 3428] [Source]
  • terminal_reason documentation expanded with a new "api_error" value and clearer causes and absence cases. [line 1609] [Source]
  • HookMatcher.timeout now documents concrete defaults: 600s for most events, 30s for UserPromptSubmit. [line 1986] [Source]

agent-sdk/session-storage [Source]

  • New setup instructions for the Python conformance test suite: install pytest explicitly, and pass the adapter as a zero-argument factory (lambda) so each call produces isolated backing storage since contract tests reuse session keys. [lines 226-236] [Source]

agent-sdk/skills [Source]

  • New explanation of the init message's skills array: it only lists user-invocable Skills — one marked user-invocable: false still loads and is usable but won't appear in the array. [line 68] [Source]
  • New example option permission_mode="dontAsk" alongside allowedTools to actually deny (not fall through to prompting) anything not pre-approved. [line 125] [Source]

agent-sdk/slash-commands [Source]

  • Documents that if a prompt supplies fewer arguments than a command's placeholders reference, unmatched indexed placeholders (e.g. $1) are left verbatim in the command text rather than substituted. [line 383] [Source]

agent-sdk/tool-search [Source]

  • New documented limitation: tool search isn't supported on Microsoft Foundry deployments hosted on Azure — the deployment rejects it server-side and the SDK falls back to loading tool definitions upfront; ENABLE_TOOL_SEARCH=true can't override this. [line 16] [lines 25-26] [Source]

agent-sdk/typescript [Source]

By far the largest changeset in this reference, reflecting Claude Code v2.1.216–v2.1.219 and Agent SDK v0.3.214–v0.3.216:

  • New getContextUsage() method on Query and SDKControlGetContextUsageResponse type, returning the same category/skill/tool/memory-file token breakdown the interactive /context command renders. [lines 625-630] [Source]
  • New cancel_queued: true option on the raw interrupt control request (v2.1.219+, capability interrupt_cancel_queued_v1): cancels queued messages, reported via a new cancelled field on SDKControlInterruptResponse. [lines 612-622] [Source]
  • New fast_mode_disabled_reason field added to SDKControlInitializeResponse, SDKResultMessage, and SDKSystemMessage, with a full reason-code table. [lines 1223-1314] [Source]
  • New aborted?: true field on SDKAssistantMessage marking messages truncated by an interrupt/abort (Agent SDK v0.3.214+). [line 1148] [Source]
  • New peer-origin fields fromSession and verifiedPeerPid on SDKMessageOrigin's peer variant, with a new section explaining the trust model (verifiedPeerPid is kernel-verified; from/fromSession are sender-asserted and forgeable). [lines 1454-1482] [Source]
  • Six new HookEvent types added — StopFailure, PostCompact, PermissionDenied, TaskCreated, Elicitation, ElicitationResult, DirectoryAdded, InstructionsLoaded, CwdChanged, FileChanged — each with a corresponding HookInput type. [lines 1504-1878] [Source]
  • New terminalSequence field on hook JSON output and new reloadSkills option on SessionStart hook output to re-scan skill/command directories after the hook runs. [lines 2034-2066] [Source]
  • Large expansion of built-in tool schemas: ExitWorktree, EnterPlanMode, CronCreate/CronDelete/CronList, ScheduleWakeup, RemoteTrigger, PushNotification, REPL, ReportFindings, Artifact, Projects, ReadMcpResourceDir, RefreshMcpTools, ShowOnboardingRolePicker, and generic McpInput/McpOutput. [lines 2595-2846] [lines 3492-3808] [Source]
  • WorkflowOutput gains "remote_launched" status plus sessionUrl, taskType, workflowName, and warning fields for workflows dispatched to remote cloud sessions. [lines 3315-3320] [Source]
  • New canonicalModel/provider fields on ModelUsage (v2.1.218+), naming the pricing-lookup model ID and serving backend. [line 4046] [Source]
  • New heartbeat and subagent_retry/subagent_type fields on SDKToolProgressMessage: periodic 30-second heartbeats for long-running tool calls, and per-attempt retry-backoff visibility for Agent-tool subagents. [lines 4321-4338] [Source]
  • New strictAllowlist field on SandboxNetworkConfig to deny (rather than prompt for) sandboxed access to non-allowlisted hosts (v2.1.219+). [lines 4634-4648] [Source]

agent-sdk/typescript-v2-preview [Source]

  • New clarifying note that the cleanup-pattern code examples send no messages and produce no output when run. [line 160] [Source]

agent-sdk/user-input [Source]

  • New clarifying note that ask_user/askUser helpers in the examples stand in for the application's own prompt UI, not SDK-provided functions.

agent-teams [Source]

  • A teammate's config entry now carries whatever agent type the lead named when spawning it (built-in type or subagent definition), omitting the field if none was named — previously only subagent-definition-spawned teammates got an agent type. [line 209] [Source]

authentication [Source]

  • If ANTHROPIC_API_KEY is set in the environment, Claude Code now skips the browser login prompt on first launch and instead asks the user to approve the key. [line 7] [Source]

checkpointing [Source]

  • Restructured the "Restore vs. summarize" section into "Guide a summary," removing the detailed comparison table and explicit "Summarize from here" vs. "Summarize up to here" descriptions in favor of condensed guidance. [lines 41-45] [Source]

claude-apps-gateway [Source]

  • Changed Amazon Bedrock upstream prerequisite: now requires Anthropic's one-time use case form to be submitted from the Bedrock console's Model catalog, instead of just enabling model access. [line 119] [Source]
  • Added cross-reference to the new "Deploy on AWS" worked example. [line 384] [Source]

claude-apps-gateway-config [Source]

  • Removed the strict "safe list" concept for env vars: Claude Code now applies most delivered env variables without an approval dialog (model selection, numeric limits, etc.), while proxy/base-URL/OTEL_EXPORTER_OTLP_ENDPOINT values always require approval, and the dialog now names the specific variable requiring approval. Before v2.1.218, fewer variables were auto-applied. [lines 458-466] [Source]
  • OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf added as a 6th auto-pushed telemetry variable (previously 5). [lines 571-578] [Source]

claude-apps-gateway-deploy [Source]

  • New cross-reference to the "Deploy on AWS" worked example alongside the existing Google Cloud example. [line 71] [Source]

claude-apps-gateway-spend-limits [Source]

  • The spend-limit meter now resolves rate tiers in a defined 3-step order: exact rates for the upstream model ID, then rates for the configured models[].id mapped to that upstream ID (new — for IDs with no embedded model name, like Bedrock inference-profile ARNs, requires gateway v2.1.218+), then the $5/$25-per-million-token unknown-model default. Before v2.1.218, unrecognized upstream IDs always fell to the unknown-model tier. [lines 48-54] [Source]

claude-code-on-the-web [Source]

  • Major restructuring, not a content removal: the entire "The cloud environment" section (~530 lines covering installed tools, GitHub tools, session linking, resource limits, organization-shared environments, setup scripts, network access, and the default allowed-domains list) moved into the new cloud-environments.md page; a short pointer section replaces it and internal links throughout the page were repointed. [lines 19-23] [Source]
  • Terminology shift for session failure/expiry: "could not allocate a cloud environment" → "could not allocate a VM for the session," and "the underlying environment is reclaimed" → "the session's VM is reclaimed," consistent with environments now being reusable saved configs. [line 232] [line 254] [Source]

claude-security [Source]

  • New troubleshooting guidance for plugin install failures: distinguishes a "Marketplace not found" error (fix: /plugin marketplace add anthropics/claude-plugins-official) from a "plugin not found in marketplace" error (fix: check for typos, then /plugin marketplace update claude-plugins-official). [lines 24-27] [Source]

code-review [Source]

  • New: when the host application requests it, Claude now reports code-review findings via the ReportFindings tool (structured list with file location, one-sentence summary, category tag) instead of plain text. Requires v2.1.218+. [line 286] [Source]
  • Clarifies that terminal /code-review (forked) and any -p run always report findings as plain text, even if the host requested the structured list. [line 287] [Source]
  • New behavior: when Claude later fixes previously reported findings, it re-reports them, each marked fixed, skipped, or no-change-needed. [line 288] [Source]

commands [Source]

  • /desktop availability narrowed to "macOS or x64 Windows" (previously just "Windows"), excluding ARM64 Windows. [line 29] [line 58] [Source]
  • /security-review description now explicitly says it reviews the diff between the current branch and origin's default branch, requires an origin remote, and links to the error reference for an ambiguous argument failure. [line 109] [Source]

costs [Source]

  • Clarifies that context/token usage accrues per-request (including each tool-result-carrying request), and that prompt caching means "re-reading" history at the cached rate rather than avoiding cost entirely. [line 244] [Source]
  • New: on Pro and Max plans, resuming a large session after a long break now offers to resume from a summary so later requests don't carry the full history. [line 245] [Source]

data-usage [Source]

  • Setting DISABLE_TELEMETRY or CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC now also disables the feature-flag evaluation that Remote Control depends on; DISABLE_ERROR_REPORTING doesn't have this effect. [line 82] [Source]

desktop [Source]

  • Clarifies Bypass permissions is unavailable in cloud sessions because they already run in a sandboxed VM. [line 80] [Source]
  • Renamed UI action "Add environment" to "Add cloud environment," pointing to the new cloud-environments.md page. [line 547] [Source]
  • /desktop CLI-to-Desktop handoff now specified as available on macOS and x64 Windows (previously just Windows). [line 706] [Source]
  • New/expanded section on MCP servers from the Desktop chat app: documents conflict-resolution rules when the same server name is defined in claude_desktop_config.json, ~/.claude.json, and .mcp.json — the Code tab prefers claude_desktop_config.json, then ~/.claude.json over .mcp.json, departing from the CLI's normal scope hierarchy. [lines 737-741] [Source]

desktop-linux [Source]

  • Install step now also requires gnupg (sudo apt install curl gnupg), not just curl. [lines 22-25] [Source]
  • Signing-key verification (gpg --show-keys) moved earlier into the install flow, with guidance that a failed/missing key causes apt update to later fail with NO_PUBKEY BAA929FF1A7ECACE, plus the specific fingerprint to check. [lines 34-40] [Source]

devcontainer [Source]

  • New troubleshooting note: the devcontainer feature installs Node.js itself when missing; if that fails with Failed to install Node.js and npm, add the node devcontainer feature explicitly. [line 40] [Source]
  • Important fix/clarification: mounting a volume at ~/.claude alone doesn't persist sign-in, since OAuth account and per-project trust live in ~/.claude.json, a separate file; now instructs setting CLAUDE_CONFIG_DIR to the same mount path. [lines 66-80] [Source]

discover-plugins [Source]

  • New: if Claude Code fails to auto-add the official marketplace (e.g. network blocked), add it manually with /plugin marketplace add anthropics/claude-plugins-official. [line 26] [Source]
  • New guidance: /plugin disable/enable/uninstall open the plugin panel and leave it open; for scripting, use claude plugin shell commands instead. [lines 297-298] [Source]
  • New caveat: the skills count shown by /reload-plugins only counts each plugin's commands/ directory, not its skills/ directory, so it can report "0 skills" even when skills reloaded. [line 342] [Source]

env-vars [Source]

  • New: .claude/settings.local.json is now added to the global gitignore automatically the first time Claude Code saves a setting to it (not just when hand-created). [line 82] [Source]
  • New subsection listing variables using "any non-empty value (including 0) turns it on" semantics rather than standard boolean parsing: CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC, DISABLE_TELEMETRY, DISABLE_ERROR_REPORTING, CLAUDE_CODE_TMUX_TRUECOLOR, FALLBACK_FOR_ALL_PRIMARY_MODELS, IS_DEMO; FORCE_HYPERLINK uniquely parses as a number. [lines 100-109] [Source]
  • Expanded documentation for ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES and the ANTHROPIC_DEFAULT_{FABLE,HAIKU,OPUS,SONNET}_MODEL* variables, previously bare "see Model configuration" rows. [lines 127-140] [Source]
  • CLAUDE_CODE_MAX_OUTPUT_TOKENS: new default behavior documented — defaults to 32000 for unrecognized model IDs and clamps values above a model's cap. [line 255] [Source]
  • DISABLE_GROWTHBOOK, DISABLE_TELEMETRY, and DO_NOT_TRACK documented as making Remote Control unavailable; ENABLE_TOOL_SEARCH gains the Microsoft Foundry/Azure tool-search caveat. [lines 353-371] [Source]
  • MAX_THINKING_TOKENS: substantially rewritten to describe capping logic (one token below max output tokens, never below 1,024) and default behavior differences for adaptive-reasoning models. [line 381] [Source]

errors [Source]

  • New error entry and section: /security-review fails without origin/HEAD — explains why the ref can be missing (single-branch/CI checkouts, no origin remote, unpushed default branch) and remediation options. [lines 82, 1183]
  • Automatic retries section reorganized: explicitly lists which failures ARE retried (server errors, overloads, timeouts, dropped connections, temporary 429s) vs. NOT retried (TLS cert failures, mid-response failures once a block completed, Bedrock content-type mismatches). [lines 108-119] [Source]
  • "The response above may be incomplete": in -p text output, Claude Code now prints the last completed text block before the notice (before v2.1.219, it printed only the notice and dropped the produced response). [lines 203-209] [Source]
  • Network/allowlist section clarifies that GitHub operations and MCP connector traffic use separate channels that bypass the network allowlist entirely. [line 736] [Source]

feature-availability [Source]

  • MCP tool search now documented as unsupported (not just off-by-default) on Microsoft Foundry deployments hosted on Azure. [line 30] [Source]
  • Web search on Microsoft Foundry now qualified as available only for deployments hosted on Anthropic. [line 57] [Source]

github-enterprise-server [Source]

  • Added guidance to check "settings files" for platform-specific locations and to add the JSON to managed-settings.json or the equivalent MDM policy. [line 161] [Source]

goal [Source]

  • Clarifies the default small fast model for /goal evaluation (Haiku) applies to the Claude API; third-party providers use a provider-dependent default. [line 105] [Source]
  • Documents that ANTHROPIC_DEFAULT_HAIKU_MODEL affects every use of the "small fast model," not just /goal — including the haiku alias and background conversation summarization. [lines 110-112] [Source]

headless [Source]

  • New: when subagent-text forwarding is enabled, messages from subagents at every nesting depth are now forwarded (before v2.1.219, nested subagents' messages didn't appear in the stream). [line 149] [Source]
  • New "Fail CI when a plugin or MCP server doesn't load" guidance: new mcp_servers/mcp_server_errors fields on the system/init event let CI detect skipped --mcp-config entries, requiring v2.1.219+. [lines 185-190] [Source]

hooks [Source]

  • SessionEnd hooks of any type now share a combined 1.5-second timeout budget, extendable up to 60 seconds by a longer configured per-hook timeout. [line 313] [Source]
  • /hooks menu source labels renamed/expanded (e.g. UserUser Settings, PluginPlugin Hooks, Built-inBuilt-in Hooks). [lines 543-548] [Source]
  • PermissionRequest event now fires even in sessions that can't show a prompt (e.g. background subagents in non-interactive mode), running hooks and auto-denying if none returns a decision. [lines 1489-1496] [Source]

hooks-guide [Source]

  • SessionEnd hooks share a combined 1.5-second timeout budget (raised to match a longer configured per-hook timeout, up to 60 seconds). [line 851] [Source]
  • Clarifies PermissionRequest hooks in non-interactive mode DO fire when the Agent SDK's canUseTool callback supplies a prompt, and also fire (auto-denying if unhandled) for background subagents' tool calls — previously documented as simply not firing with -p. [lines 854-871] [Source]

index [Source]

  • If ANTHROPIC_API_KEY is set, Claude Code skips the login prompt and asks the user to approve the key instead. [line 64] [Source]
  • Clarifies /desktop handoff requires a claude.ai subscription, in addition to being limited to macOS and x64 Windows. [line 157] [Source]

interactive-mode [Source]

  • In vim NORMAL mode, pressing on an empty prompt now opens agent view (previously a no-op before v2.1.219); arrow keys (not just j/k) also navigate command history. [line 160] [Source]

large-codebases [Source]

  • Clarifies that when starting Claude from the repository root, in-scope skills include the root directory's own skills plus skills from every touched subdirectory. [line 343] [Source]

llm-gateway-connect [Source]

  • Adds the exact debug-log path (~/.claude/debug/<session-id>.txt) where [gatewayDiscovery] lines confirm gateway model discovery ran. [line 283] [Source]

llm-gateway-protocol [Source]

  • Expanded guidance on setting CLAUDE_CODE_ATTRIBUTION_HEADER=0 pre-v2.1.181: split into a gateway-side prompt-cache case and a third-party-provider case (Bedrock, Foundry, Google Cloud's Agent Platform) where a changing prefix hurts that provider's own cache reuse. [lines 91-92] [Source]
  • Notes the gateway-models discovery cache moves to $CLAUDE_CONFIG_DIR if set, instead of always living at ~/.claude/cache/gateway-models.json. [line 158] [Source]

mcp [Source]

  • New explanation of claude mcp add/list feedback: add prints an Added ... confirmation, and list shows per-server health status (✔ Connected, ! Needs authentication, ✘ Failed to connect). [line 143] [Source]
  • Documents that Microsoft Foundry deployments hosted on Azure start on the tool-search path rather than using WaitForMcpServers, since Claude Code only learns of the server-side tool-search rejection from the API. [line 157] [Source]
  • Fixed the example .mcp.json project-scoped server config, which showed a stdio-style block instead of the correct HTTP-transport format ("type": "http", "url"). [lines 345-357] [Source]
  • New note: opening a local session in Desktop's Code tab, a stdio server name defined both at the top level of ~/.claude.json and in .mcp.json resolves to the ~/.claude.json definition. [line 383] [Source]
  • Documents that tool search isn't supported on Microsoft Foundry deployments hosted on Azure and ENABLE_TOOL_SEARCH can't override the server-side rejection. [line 1053] [Source]

mobile [Source]

  • Related-resources link updated to the new "Configure cloud environments" page for network access levels, environment variables, and setup scripts. [line 70] [Source]

model-config [Source]

  • Clarifies ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION defaults to Custom Opus model, or Custom Opus model (1M context) when the pinned model ID has the [1m] suffix and CLAUDE_CODE_DISABLE_1M_CONTEXT isn't set. [line 558] [Source]

monitoring-usage [Source]

  • Rewrote the managed-settings OTLP precedence section into explicit categories (Endpoints, Protocols, Credentials, Exporter selectors); managed OTEL_EXPORTER_OTLP_PROTOCOL now also strips developer-set per-signal protocols. [lines 59-68] [Source]
  • New verification guidance: check the backend for the claude_code.session.count metric, or claude_code.user_prompt event for the SIEM example, to confirm configuration took effect. [line 342] [line 1127] [Source]

network-config [Source]

  • New "Verify your configuration" section: most network settings aren't validated until a later request fails (except the proxy URL, validated at startup); documents claude --debug log lines to look for and new /status rows for Proxy, mTLS client cert/key, and Additional CA cert(s). [lines 99-121] [Source]

overview [Source]

  • If ANTHROPIC_API_KEY is set, Claude Code skips the login prompt and asks the user to approve the key instead. [line 64] [Source]
  • Notes the /desktop terminal-to-Desktop handoff requires a claude.ai subscription. [line 157] [Source]

permission-modes [Source]

  • Auto mode is now available by default on Team/Enterprise (previously required Owner opt-in); administrators now opt out via permissions.disableAutoMode. [line 162] [Source]

plugin-marketplaces [Source]

  • New section on distributing a marketplace via Organization settings > Plugins (Team/Enterprise): requires a private/internal repo synced via the Claude GitHub App or GHE App; only github, url, and git-subdir plugin sources are supported. [lines 256-262] [Source]
  • New distinction for private-repo plugin installs between manual git-credential-helper auth and background auto-updates (credential helpers disabled for background git pull); org-sync distribution bypasses git credentials entirely. [lines 539-545] [Source]
  • Clarifies strictKnownMarketplaces: [] blocks every marketplace source, including the official Anthropic marketplace, and adds an example allowing only that marketplace. [line 655] [line 681] [Source]
  • Changed troubleshooting guidance for claude plugin validate//plugin validate to require running it against the marketplace directory (e.g. claude plugin validate .) rather than with no path. [line 1023] [Source]

plugin-relevance [Source]

  • Clarifies claude plugin validate must run against the marketplace directory to surface unknown relevance/relevance.signals fields as warnings. [line 88] [Source]

plugins [Source]

  • New caveat: the /reload-plugins skills count only covers commands/ directories, so it can report "0 skills" even though an edited skill reloaded. [line 151] [Source]
  • New guidance for verifying an LSP plugin server via the /plugin Errors tab; an invalid config is skipped silently, requiring claude --debug to diagnose. [line 256] [Source]
  • Clarifies plugin-submission validation: run claude plugin validate ./your-plugin; documents new ✔ Validation passed/✔ Validation passed with warnings output and that --strict turns warnings into errors. [line 369] [Source]

plugins-reference [Source]

  • Broadened the PermissionRequest hook trigger description from "when a permission dialog appears" to "when a tool call needs a permission decision." [line 101] [Source]
  • New note that /reload-plugins mid-session keeps live connections for plugin MCP servers whose configuration hasn't changed. [line 168] [Source]

prompt-caching [Source]

  • Expanded compaction cost explanation: /compact mid-session reads from a warm cache and is cheap, but after a break longer than the cache TTL, there's no cache to read, so the request reprocesses the full history uncached — the most expensive case. [lines 95-96] [Source]
  • New: on Pro/Max plans, resuming a large session after a long break triggers an offer to resume from a summary so later requests don't carry the full history. [line 152] [Source]
  • Clarifies subscription sessions get a one-hour cache TTL, and cache writes cost more at that TTL than the five-minute TTL used for usage-credit billing. [lines 157-158] [Source]

quickstart [Source]

  • If ANTHROPIC_API_KEY is set, Claude Code skips the login prompt and asks the user to approve the key instead. [line 77] [Source]

remote-control [Source]

  • New eligibility requirement: feature-flag evaluation must be enabled — DISABLE_TELEMETRY, DO_NOT_TRACK, CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC, or DISABLE_GROWTHBOOK each disable Remote Control if set. [line 23] [Source]
  • The "Enable Remote Control for all sessions" setting gains a default value that explicitly clears the choice, falling back to the org admin default or Claude Code's current default. [line 129] [Source]
  • New troubleshooting section for the "Remote Control requires feature-flag evaluation" error, explaining which variables cause it. [lines 263-271] [Source]

routines [Source]

  • New security-relevant caveat: environment variables configured for a cloud environment are visible to anyone who uses that environment. [line 62] [Source]
  • Clarifies connectors reach their services through Anthropic's servers (not subject to the network allowlist), while reaching your own services directly requires editing network access. [line 65] [Source]

sandbox-environments [Source]

  • Relaxed the GitHub requirement: a connected GitHub account is now only needed when launching from the web interface, not from the CLI with --cloud. [lines 19-34] [Source]
  • New capability: launching via CLI --cloud without a connected GitHub account, Claude Code can bundle and upload the local repository instead of cloning from GitHub. [line 91] [Source]

sandboxing [Source]

  • Clarifies .claude/settings.local.json is only added to the global gitignore once Claude Code actually saves a setting to it. [line 42] [Source]

security [Source]

  • Cloud environment cleanup reworded: session VMs are reclaimed after a period of inactivity, rather than automatically terminated after session completion. [line 91] [Source]
  • Added a link to /security-review as a related resource for running an on-demand security pass on the current branch. [line 125] [Source]

security-guidance [Source]

  • New guidance for scanning existing code, not just Claude's in-session changes: ask Claude to review a file/directory, or use the Claude Security plugin for a deeper multi-agent repo-wide scan; notes /security-review only covers the current branch's changes. [line 217] [Source]

server-managed-settings [Source]

  • New "Environment variables and the approval dialog" section documenting which delivered env variables apply without the approval dialog vs. which always require it (non-empty proxy, base-URL, or OTEL_EXPORTER_OTLP_ENDPOINT); behavior change as of v2.1.218. [lines 197-207] [Source]
  • New: four privacy toggles (CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC, DISABLE_ERROR_REPORTING, DISABLE_TELEMETRY, DO_NOT_TRACK) are evaluated by value rather than name for approval purposes, a behavior change from before v2.1.218. [line 208] [Source]

sessions [Source]

  • New "Resume from a summary" section: on Pro/Max plans, resuming a session inactive for ~1 hour and over 100,000 tokens shows a dialog with three options — resume from summary, resume full session as-is, or don't ask again. [lines 33-40] [Source]

settings [Source]

  • Gitignore behavior changed: Claude Code now adds **/.claude/settings.local.json to the user's global git excludes file the first time it saves a setting there, rather than gitignoring only at creation. [lines 16, 81, 737]
  • New remote.defaultEnvironmentId setting: sets the default cloud environment for CLI-initiated cloud sessions (claude --cloud, ultraplan), written when picking an environment via /remote-env. [line 282] [Source]
  • New switchModelsOnFlag setting (default true): controls whether Claude Code auto-switches to the fallback model when a safety classifier flags a request, vs. pausing for the user to choose. Requires v2.1.160+. [line 302] [Source]
  • Clarifies an empty strictKnownMarketplaces array blocks every marketplace source, including the official Anthropic marketplace, with a new example allowing only that marketplace. [lines 858-996] [Source]

setup [Source]

  • Debian/Ubuntu install instructions now also require gpg and add a mandatory key-verification step (gpg --show-keys, checking fingerprint 31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE), with troubleshooting for NO_PUBKEY BAA929FF1A7ECACE apt errors. [lines 307-324] [Source]

skills [Source]

  • New capability: /verify can record its own recipe when run without one, writing it to .claude/skills/verify/SKILL.md; at the repo root this replaces the bundled /verify. Requires v2.1.200+. [line 33] [Source]
  • Behavior change (v2.1.205+): Claude only edits the recorded recipe file when a run was steered wrong, rather than folding in everything learned each run, reducing merge conflicts. [line 34] [Source]
  • Skill discovery changed: skills from directories added via --add-dir now load automatically at startup; skills in nested .claude/skills/ directories below the starting directory instead load on-demand the first time Claude reads/edits a file in that subdirectory. [lines 123-127] [Source]

slack [Source]

  • Reframes scope: this page now documents the earlier per-user "Claude Code in Slack," clarifies Claude Tag is the Team/Enterprise replacement, and notes Claude Tag isn't available on Pro/Max plans. [lines 3-6] [Source]
  • New troubleshooting section: sessions from a Claude Tag channel fail to start when the channel's cloud environment was created under a personal account; fix is to recreate it as an organization-shared environment. [lines 186-193] [Source]

sub-agents [Source]

  • New restriction: subagent name values can't contain : (reserved for plugin-scoped identifiers) — files with such names fail to load and log an error. Behavior change from before v2.1.218. [line 229] [Source]
  • New requirement: a project-level subagent's frontmatter hooks only run after the user accepts the workspace trust dialog for the folder containing the agent file; previously such hooks could run from untrusted folders, including non-interactively. Behavior change from before v2.1.218. [lines 548-549] [Source]

terminal-guide [Source]

  • New troubleshooting entry for 'Claude Code does not support 32-bit Windows': occurs when using the Windows PowerShell (x86) shortcut instead of the 64-bit one. [lines 273-275] [Source]

tools-reference [Source]

  • PushNotification tool's unavailable-platform list now also includes Claude Platform on AWS. [line 31] [Source]
  • WebSearch is no longer generally available on Microsoft Foundry — it now requires an Anthropic-hosted deployment, since Azure-hosted deployments don't support server-side tools. [line 365] [Source]

troubleshoot-install [Source]

  • Added claude --version verification steps after three separate winget install troubleshooting steps. [lines 311, 355, 441]

ultraplan [Source]

  • Clarifies ultraplan runs in "your default cloud environment" (renamed from "your account's default"), and that /remote-env in the terminal can change which environment that is. [line 12] [Source]

web-quickstart [Source]

  • Onboarding changed: connecting GitHub now automatically creates a cloud environment named Default (Trusted network access) instead of prompting through a manual "create your environment" form. [lines 61-63] [Source]
  • Clarifies signing in for /web-setup requires a claude.ai account login (not API-key auth), checkable via /status. [line 85] [Source]
  • On success, /web-setup now prints Connected as <your-github-username> and opens claude.ai/code in the browser. [line 97] [Source]
  • New troubleshooting entry: /web-setup says "Not signed in to Claude" — no valid or expired claude.ai sign-in; fix is /login then retry. Also notes Team/Enterprise Owners can disable /web-setup for their org, hiding the command. [lines 186-193] [Source]
  • Next-steps link now mentions session sharing and auto-fixing pull requests instead of setup scripts/environment variables/network config, which moved to the new Configure cloud environments page. [line 231] [Source]

workflows [Source]

  • New detailed explanation of resume-after-pause semantics: a still-running agent restarts on resume, and replay follows start order so every agent that started after the first unfinished one re-runs even if it had completed; includes a worked example showing why fanning out into many small agents preserves more progress than one long agent. [lines 297-313] [Source]

API changes

No significant documentation changes today — the only diffs in docs-md/api were Cloudflare email-obfuscation hash rotations in files.md and thinking.md, with no visible content changes.