Claude docs changes for April 28th, 2026 [diff]
Executive Summary
- Windows: Git for Windows is no longer required — Claude Code now falls back to PowerShell as the shell tool when Git Bash is absent, simplifying Windows installation
claude ultrareview [target]subcommand lets you run ultrareview non-interactively from CI or scripts, printing findings to stdout and exiting with a status code- PostToolUse hooks can now replace tool output for all tools (not just MCP) via the new
updatedToolOutputfield;updatedMCPToolOutputis deprecated - Two critical memory leak fixes in 2.1.121: multi-GB RSS growth when processing many images, and up to ~2GB leak in
/usageon machines with large transcript histories - MCP servers now get a new
alwaysLoadconfig option to bypass tool-search deferral, ensuring specific tools are always available in context
New Claude Code versions
2.1.120
New features
- Windows: Git for Windows (Git Bash) is no longer required — when absent, Claude Code uses PowerShell as the shell tool
- Added
claude ultrareview [target]subcommand to run/ultrareviewnon-interactively from CI or scripts — prints findings to stdout (--jsonfor raw output) and exits 0 on completion or 1 on failure - Skills can now reference the current effort level with
${CLAUDE_EFFORT}in their content - Set
AI_AGENTenvironment variable for subprocesses soghcan attribute traffic to Claude Code
Existing feature improvements
- Auto-compact in auto mode now displays
auto(lowercase, no token count) instead of a misleading token value - Faster session start when you have many claude.ai connectors configured but not authorized
- Spinner tips recommending the desktop app or creating skills/agents are hidden when you already have them
Major bug fixes
- Fixed pressing Esc during a stdio MCP tool call closing the entire server connection (regression in 2.1.105)
- Fixed
/rewindand other interactive overlays not responding to keyboard input after launching withclaude --resume - Fixed terminal scrollback duplication in non-fullscreen mode (resize, dialog dismiss, long sessions)
- Fixed
DISABLE_TELEMETRY/CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICnot suppressing usage metrics telemetry for API and enterprise users - Fixed false-positive "Dangerous rm operation" permission prompts in auto mode for multi-line bash commands containing both a pipe and a redirect
- Fixed
findin the Bash tool exhausting open file descriptors on large directory trees, causing host-wide crashes (macOS/Linux native builds)
2.1.121
New features
- Added
alwaysLoadoption to MCP server config — whentrue, all tools from that server skip tool-search deferral and are always available in context - Added
claude plugin pruneto remove orphaned auto-installed plugin dependencies;plugin uninstall --prunecascades - Added a type-to-filter search box to
/skillsso you can find a skill in long lists without scrolling - PostToolUse hooks can now replace tool output for all tools via
hookSpecificOutput.updatedToolOutput(previously MCP-only) CLAUDE_CODE_FORK_SUBAGENT=1now works in non-interactive sessions and via the SDK
Existing feature improvements
- MCP servers that hit a transient error during startup now auto-retry up to 3 times instead of staying disconnected
- Vertex AI: support for X.509 certificate-based Workload Identity Federation (mTLS ADC)
- Fullscreen mode: typing into the prompt no longer jumps scroll back to the bottom after you've scrolled up
- Dialogs that overflow the terminal are now scrollable with arrow keys, PgUp/PgDn, and mouse wheel
- OpenTelemetry: added
stop_reason,gen_ai.response.finish_reasons, anduser_system_prompt(gated behindOTEL_LOG_USER_PROMPTS) to LLM request spans
Major bug fixes
- Fixed unbounded memory growth (multi-GB RSS) when processing many images in a session
- Fixed
/usageleaking up to ~2GB of memory on machines with large transcript histories - Fixed Bash tool becoming permanently unusable when the directory Claude was started in is deleted or moved mid-session
- Fixed
--resumecrashing on startup in external builds - Fixed
--resumefailing on large sessions when a transcript line was corrupted by an unclean shutdown - Fixed Microsoft 365 MCP OAuth failing with duplicate or unsupported
promptparameter - Fixed
NO_PROXYnot being respected for all HTTP clients when set viamanaged-settings.jsonunder the native build - Fixed "Always allow" rules for built-in tools in remote sessions not surviving worker restarts
Claude Code changes
New Documents
whats-new/2026-w16 [Source]
Week 16 (April 13–17) release digest covering v2.1.105–v2.1.113: Claude Opus 4.7 becomes the default model on Max and Team Premium with a new xhigh effort level and interactive /effort slider; Routines let you run templated cloud agents on a schedule or GitHub event; /usage now shows a breakdown of what's driving your limits; /ultrareview launches parallel multi-agent code review in the cloud; and the CLI moves to native per-platform binaries.
whats-new/2026-w17 [Source]
Week 17 (April 20–24) release digest covering v2.1.114–v2.1.119: /ultrareview enters public research preview; session recap shows a one-line summary when you return to a terminal; custom themes can be built and shipped from /theme or a plugin; and Claude Code on the web gets a redesign with a new sessions sidebar and drag-and-drop layout.
Changed documents
agent-sdk/tool-search [Source]
Previously an error page (HTTP 500); now contains the full documentation for tool search in the Agent SDK. Covers how tool search works, the ENABLE_TOOL_SEARCH environment variable with all its values (true, auto, auto:N, false), how to optimize tool discovery via naming and system prompts, and limits (max 10,000 tools, 3–5 results per search, requires Claude Sonnet 4+ or Opus 4+). [line 1]
agent-sdk/typescript [Source]
- The
PostToolUsehook output type now includesupdatedToolOutput(works for all tools) alongsideupdatedMCPToolOutput(now deprecated). [line 1364] [Source]
amazon-bedrock [Source]
- Added
bedrock:GetInferenceProfileto the required IAM policy, allowing Claude Code to resolve application inference profile ARNs to their backing foundation models. Without this permission, Claude Code recovers automatically but with an extra round-trip per new model. [line 222] [Source]
claude-code-on-the-web [Source]
- New note: cloud sessions (ultrareview, routines, Code Review) originate from Anthropic-managed infrastructure, not your network. If your organization has IP allowlisting enabled, every cloud session will fail with an authentication error; contact Anthropic support to exempt Anthropic-hosted services. [line 740] [Source]
cli-reference [Source]
- Added
claude ultrareview [target]subcommand — runs ultrareview non-interactively, blocks until the review finishes, prints findings to stdout, and exits 0 on success or 1 on failure. Supports--jsonand--timeout <minutes>flags. [line 24] [Source]
data-usage [Source]
- Expanded the session quality survey section: after the rating prompt, a new optional follow-up can ask to upload your session transcript to Anthropic. Selecting "Yes" uploads conversation transcripts and raw session logs (with API key patterns redacted), retained for up to 6 months. Selecting "No" or "Don't ask again" uploads nothing. Organizations with zero data retention or policy-disabled feedback never see this follow-up. [line 17] [Source]
devcontainer [Source]
Comprehensive rewrite of the dev containers page. The new structure covers: adding Claude Code via the official Dev Container Feature, persisting authentication and settings across rebuilds with named volumes, enforcing organization policy via managed-settings.json in the Dockerfile or containerEnv, restricting network egress, running without permission prompts, and a guided walkthrough of the reference container. Also adds an architecture diagram and links to the full org setup guide. [line 1]
env-vars [Source]
CLAUDE_CODE_FORK_SUBAGENTdescription updated: the variable now works in interactive mode and via the SDK orclaude -p(previously documented as interactive-only). [line 91] [Source]CLAUDE_CODE_SIMPLE_SYSTEM_PROMPTdescription updated: now documented as Opus 4.7-specific — it uses a shorter system prompt and abbreviated tool descriptions only on that model; has no effect on other models. [line 127] [Source]
fullscreen [Source]
- Added tips for native text selection in fullscreen: hold
Option(iTerm2) orShift(most Linux/Windows terminals) as a bypass modifier so the terminal handles click-and-drag directly. Also noted that iTerm2 blocks OSC 52 clipboard access by default until you enable it in Settings → General → Selection. [line 112] [Source]
google-vertex-ai [Source]
- Added support for X.509 certificate-based Workload Identity Federation (mTLS ADC) via the standard Application Default Credentials chain (requires v2.1.121+). Set
GOOGLE_APPLICATION_CREDENTIALSto the credential configuration file path. [line 72] [Source]
hooks [Source]
updatedToolOutputis now the preferred field for replacing tool output in PostToolUse hooks — it works for all tools, not just MCP tools.updatedMCPToolOutputis kept for backward compatibility. A new example shows replacingBashtool output (stdout/stderr/interrupted/isImage shape). Added clarification thatupdatedToolOutputonly changes what Claude sees; the tool has already run and the original output is captured in telemetry. [line 1208] [Source]
index [Source]
- Windows: Git for Windows is now described as recommended (not required) — if absent, Claude Code uses PowerShell as the shell tool instead. [line 36] [Source]
interactive-mode [Source]
- "Bash mode" renamed to "Shell mode" throughout the document to reflect that PowerShell is now a supported shell on Windows. [line 67] [Source]
mcp [Source]
- Auto-retry on startup: as of v2.1.121, HTTP/SSE MCP servers that fail their initial connection now retry up to 3 times on transient errors (5xx, connection refused, timeout) before being marked as failed. Authentication and not-found errors are not retried. [line 1020] [Source]
- New
alwaysLoadserver config option: set totrueto exempt a server from tool-search deferral — all its tools load into context at session start regardless ofENABLE_TOOL_SEARCH. Also works at the individual tool level via"anthropic/alwaysLoad": truein the tool's_metaobject. Requires v2.1.121+. [line 1802] [Source]
monitoring-usage [Source]
- Three new attributes added to
claude_code.llm_requestOpenTelemetry spans:stop_reason(e.g.end_turn,tool_use,max_tokens),gen_ai.response.finish_reasons(same value as a string array, per GenAI semantic conventions), anduser_system_prompt(gated behindOTEL_LOG_USER_PROMPTS=1, truncated at 60 KB, emitted once per session). [line 162] [Source]
overview [Source]
- Windows: Git for Windows is now described as recommended (not required) — if absent, Claude Code uses PowerShell as the shell tool instead. [line 36] [Source]
plugin-dependencies [Source]
- New section documenting
claude plugin prune: lists and removes auto-installed plugin dependencies that no longer have any installed plugin requiring them. Supports--scope,--dry-run, and-yflags. Also documentsclaude plugin uninstall --prunefor cascading cleanup. Requires v2.1.121+. [line 97] [Source]
plugin-marketplaces [Source]
- Marketplace manifest now supports top-level
$schema,description, andversionfields (previously only undermetadata); the oldmetadata.descriptionandmetadata.versionpaths remain for backward compatibility.claude plugin validatenow accepts these top-level fields without warnings. [line 175] [Source]
plugins-reference [Source]
$schemafield added to the plugin manifest (plugin.json) schema — allows editor autocomplete and validation; ignored by Claude Code at load time. [line 373] [Source]- New
plugin prunecommand documented with full options table (--scope,--dry-run,-y). Also added--pruneand-yflags toplugin uninstall. [line 705] [Source]
quickstart [Source]
- Windows: Git for Windows is now described as recommended (not required) — if absent, Claude Code uses PowerShell as the shell tool instead. [line 53] [Source]
server-managed-settings [Source]
- Bypass condition expanded: server-managed settings are now documented as bypassed by any third-party provider configuration, not just a non-default
ANTHROPIC_BASE_URL. This explicitly includesCLAUDE_CODE_USE_BEDROCK,CLAUDE_CODE_USE_MANTLE,CLAUDE_CODE_USE_VERTEX, andCLAUDE_CODE_USE_FOUNDRY. [line 191] [Source]
setup [Source]
- Shell requirements updated: Git for Windows is now recommended on native Windows with PowerShell as a fallback; the Windows setup table and instructions reflect that Claude Code no longer requires Git Bash to start. [line 14] [Source]
skills [Source]
- New
${CLAUDE_EFFORT}substitution placeholder: expands to the current effort level (low,medium,high,xhigh, ormax), allowing skill instructions to adapt to the active effort setting. [line 200] [Source]
statusline [Source]
- New optional
hideVimModeIndicatorfield: set totrueto suppress the built-in-- INSERT --text when your status line script already renders the vim mode itself. [line 56] [Source]
sub-agents [Source]
- Forked subagents are no longer limited to interactive sessions:
CLAUDE_CODE_FORK_SUBAGENT=1now enables fork mode in non-interactive mode and via the Agent SDK as well. [lines 718–763]
terminal-config [Source]
- Added note for iTerm2: running
/terminal-setupnow also enables "Applications in terminal may access clipboard" (Settings → General → Selection), which is required for/copyto write to the system clipboard, including from inside tmux. Restart iTerm2 for the change to take effect. [line 36] [Source]
tools-reference [Source]
- Removed the PowerShell tool limitation stating "Git Bash is still required to start Claude Code on Windows" — PowerShell now works as a standalone shell. [line 117] [Source]
troubleshooting [Source]
- Updated Windows shell error: the error message changed from
"Claude Code on Windows requires git-bash"to"Claude Code on Windows requires either Git for Windows (for bash) or PowerShell". The troubleshooting section now explains both options (Git for Windows or PowerShell 7). [line 14] [Source]
ultrareview [Source]
- New section documenting the
claude ultrareviewnon-interactive subcommand: reviews current branch vs. default branch, a PR by number, or a diff against a named branch. Blocks until done, prints findings to stdout, exits 0 on success or 1 on failure/timeout/error. Progress and session URL go to stderr. Supports--jsonand--timeout <minutes>flags. [line 51] [Source]
voice-dictation [Source]
- In the VS Code extension, if the Claude Code
languagesetting is empty, voice dictation now falls back to VS Code'saccessibility.voice.speechLanguagesetting before defaulting to English. [line 69] [Source]
API changes
Changed documents
agents-and-tools/tool-use/advisor-tool [Source]
- Clarified that the
clear_thinkingdefaultkeep: {type: "thinking_turns", value: 1}applies to earlier Opus/Sonnet models and all Haiku models; Opus 4.5+ and Sonnet 4.6+ default to keeping all turns. Recommends settingkeep: "all"explicitly to preserve advisor cache stability across model tiers. [line 320] [Source]
api/sdks/go [Source]
- Installation instructions updated: the install command changed from
go get -u 'github.com/anthropics/anthropic-sdk-go@v1.38.0'togo get github.com/anthropics/anthropic-sdk-go(no pinned version, no-uflag). [line 14] [Source]
build-with-claude/adaptive-thinking [Source]
- Removed the workaround note for the
displayfield — it is now natively supported across SDKs (no more need for type assertions or raw HTTP requests). - Thinking block preservation cost clarified: on Opus 4.5+ and Sonnet 4.6+, all prior turns are kept (not just the last one), so input token costs reflect more blocks being billed. [line 178] [Source]
build-with-claude/context-editing [Source]
clear_thinking_20251015default behavior is now model-specific: Opus 4.5+ and Sonnet 4.6+ keep all prior thinking blocks by default; earlier Opus/Sonnet and all Haiku models keep only the last turn. Thekeepconfiguration table now says "Model-specific" instead of{type: "thinking_turns", value: 1}. Recommends settingkeepexplicitly when code runs across multiple model tiers. [line 35] [Source]
build-with-claude/extended-thinking [Source]
- Claude Opus 4.7 added to the model comparison table with adaptive thinking, summarized thinking output, automatic interleaved thinking, and thinking block preservation by default. [line 588] [Source]
- "Thinking block preservation in Claude Opus 4.5 and later" section renamed to "Thinking block preservation by model" and updated to document per-class defaults: Opus 4.5+ keeps all, Sonnet 4.6+ keeps all, earlier Opus/Sonnet and all Haiku keep only the last turn. [line 591] [Source]
- Removed SDK workaround note for the
display: "omitted"field — now natively supported across SDKs. [line 112] [Source] - Context window usage clarification: on Opus 4.5+ and Sonnet 4.6+, thinking blocks from prior turns are kept and count toward context window usage; on earlier models they are stripped and do not count. [line 506] [Source]
build-with-claude/prompt-caching [Source]
- Cache invalidation table updated: the "Non-tool results passed to extended thinking requests" row is now marked "Model-specific" — on Opus 4.5+ and Sonnet 4.6+, thinking blocks are preserved so the cache remains valid; on earlier models/Haiku, they are stripped and the cache is invalidated. [line 303] [Source]
- Cache invalidation patterns section updated with the same model-specific clarification. [line 349] [Source]