https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md Claude Code Changelog Release notes for Claude Code Anthropic 2026-05-18T01:52:01Z https://github.com/anthropics/claude-code/releases/tag/v2.1.143 Claude Code v2.1.143 2026-05-18T01:52:01Z <p>• Added plugin dependency enforcement: claude plugin disable now refuses when another enabled plugin depends on the target (with a copy-pasteable disable-chain hint), and claude plugin enable force-enables transitive dependencies</p> <p>• Added projected context cost (per-turn and per-invocation token estimates) to the /plugin marketplace browse pane</p> <p>• Added worktree.bgIsolation: "none" setting to let background sessions edit the working copy directly without EnterWorktree, for repos where worktrees are impractical</p> <p>• PowerShell tool now passes -ExecutionPolicy Bypass. Opt out with CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1</p> <p>• Background sessions now preserve the model and effort level you set after waking from idle</p> <p>• Shift+Tab in attached agent sessions now includes auto mode in the cycle</p> <p>• Fixed a corrupt .credentials.json with a non-array scopes value hanging the CLI on startup or silently aborting OAuth token refresh</p> <p>• Fixed right-click paste in claude agents on Windows Terminal and WSL</p> <p>• Fixed stop hooks that block repeatedly looping forever — the turn now ends with a warning after 8 consecutive blocks (override via CLAUDE_CODE_STOP_HOOK_BLOCK_CAP)</p> <p>• Fixed Esc/Ctrl+C not cancelling a pending /loop wakeup while Claude is idle between iterations</p> <p>• Fixed /goal evaluator firing while background shells or delegated subagents are still running</p> <p>• Fixed NO_COLOR/FORCE_COLOR in settings.json env stripping Claude Code's own UI colors — they now apply to subprocesses only</p> <p>• Fixed agent view spawning repeated PowerShell processes on Windows when listing sessions</p> <p>• Fixed /bg without a prompt sending "continue" to the forked session — the fork now waits for input</p> <p>• Fixed --agent &lt;name&gt; not finding plugin-contributed agents without the plugin: prefix</p> <p>• Fixed deleting a session from agent view not removing its transcript file</p> <p>• Fixed stale-fragment rendering when scrolling in attached background sessions on Windows Terminal</p> <p>• Fixed background agents false-positive worker-stall detection storm after host sleep or macOS App Nap</p> <p>• Fixed 5xx error messages pointing at status.claude.com instead of naming the configured gateway or cloud provider</p> <p>• The PowerShell tool is now enabled by default on Windows for Bedrock, Vertex, and Foundry users. Opt out with CLAUDE_CODE_USE_POWERSHELL_TOOL=0.</p> <p>• claude agents now accepts --add-dir, --settings, --mcp-config, and --plugin-dir and applies them to the dashboard and to background sessions dispatched from it</p> <p>• claude agents accepts --permission-mode, --model, --effort, and --dangerously-skip-permissions to set defaults for sessions dispatched from the view</p> <p>• claude --bg --dangerously-skip-permissions now persists across retire→wake</p> <p>• Fixed background sessions silently capturing IDE file references into the warm spare's input, which caused the reference to be prepended to the next prompt dispatched from claude agents</p> <p>• Worktree cleanup no longer falls back to rm -rf when git worktree remove fails, preventing loss of gitignored or in-progress files</p> <p>• Fixed background-job sessions on macOS getting "Operation not permitted" errors when reading files under ~/Documents, ~/Desktop, or ~/Downloads, even with Full Disk Access granted.</p> <p>• /bg now preserves --mcp-config, --settings, --add-dir, --plugin-dir, and --strict-mcp-config, so backgrounded sessions keep their MCP servers and settings across respawn.</p> <p>• Background sessions launched from claude agents now honor permissions.defaultMode from settings.json (was previously overridden to auto mode)</p> <p>• Fixed: on Windows, pressing ← in claude agents while a response was streaming could leave the agents list unresponsive to all input</p> <p>• /bg and ←-detach now preserve --fallback-model, so backgrounded workers degrade to the fallback model on overload instead of hard-failing.</p> <p>• /bg and ←-detach now preserve --allow-dangerously-skip-permissions, so the forked worker keeps bypass-permissions available in its Shift+Tab cycle.</p> <p>• Fixed: background daemon spawn now falls back to the running binary when the ~/.local/bin/claude launcher is missing or non-executable</p> <p>• Fixed claude agents --allow-dangerously-skip-permissions defaulting dispatched sessions to bypass mode instead of making it available in the permission cycle</p> https://github.com/anthropics/claude-code/releases/tag/v2.1.142 Claude Code v2.1.142 2026-05-18T01:52:01Z <p>• Added new claude agents flags: --add-dir, --settings, --mcp-config, --plugin-dir, --permission-mode, --model, --effort, and --dangerously-skip-permissions to configure dispatched background sessions</p> <p>• Fast mode now uses Opus 4.7 by default (previously Opus 4.6). Set CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1 to pin fast mode to Opus 4.6</p> <p>• Plugins with a root-level SKILL.md and no skills/ subdirectory are now surfaced as a skill</p> <p>• The /plugin details pane and claude plugin details now show LSP servers a plugin provides</p> <p>• /web-setup warns before replacing an existing GitHub App connection</p> <p>• Fixed MCP_TOOL_TIMEOUT not raising the per-request fetch timeout for remote HTTP and SSE MCP servers, which capped tool calls at 60 seconds regardless of the configured value</p> <p>• Fixed background sessions not recognizing pre-existing git worktrees, blocking Edit while EnterWorktree refused to create a duplicate</p> <p>• Fixed background sessions disappearing and daemon reconnect failing after macOS sleep/wake — the daemon now detects clock jumps instead of treating them as elapsed idle time</p> <p>• Fixed daemon not exiting cleanly after the binary is upgraded (e.g. brew upgrade), causing dispatched agents to crash-loop on the deleted path</p> <p>• Fixed background agents crash-looping when the Claude-in-Chrome extension is connected without a shared tab</p> <p>• Fixed clicking links in an attached claude agents session — the background worker's headless browser shim no longer applies while attached</p> <p>• Fixed claude agents "v to open in editor" using the daemon's default editor instead of your shell's $EDITOR/$VISUAL</p> <p>• Fixed claude agents deadlocking on Windows with network-drive working directories; Ctrl+C now works during startup</p> <p>• Fixed background-color bleed when attaching to a claude agents session from Apple Terminal or other 256-color-only terminals</p> <p>• Fixed claude --bg --dangerously-skip-permissions not persisting across retire/wake</p> <p>• Fixed session titles being derived from the URL when the first message is a link</p> <p>• Fixed redundant set_model requests from remote clients injecting duplicate /model breadcrumbs into the transcript</p> <p>• Fixed plugins using skills: ["./"] showing a false "path escapes plugin directory" error</p> <p>• Fixed plugin cache cleanup deleting the active plugin version directory when no installation metadata is present</p> <p>• Fixed /plugin browse pane showing "0 installs" for newly published plugins</p> <p>• Fixed plugin advisories not naming every plugin.json key that shadows a default folder</p> <p>• Improved reactive compaction: the first summarize attempt now seeds from the original request's overflow size, avoiding a wasted near-full-context retry</p> <p>• Improved hook configuration error: configuring a prompt- or agent-type hook for SessionStart/Setup/SubagentStart now shows a clear "use a command-type hook instead" error</p> <p>• Removed stale /model claude-sonnet-4-20250514 suggestion from Usage Policy refusal messages</p> https://github.com/anthropics/claude-code/releases/tag/v2.1.141 Claude Code v2.1.141 2026-05-18T01:52:01Z <p>• Added terminalSequence field to hook JSON output so hooks can emit desktop notifications, window titles, and bells without a controlling terminal</p> <p>• Added CLAUDE_CODE_PLUGIN_PREFER_HTTPS to clone GitHub plugin sources over HTTPS instead of SSH, for environments without a GitHub SSH key</p> <p>• Added ANTHROPIC_WORKSPACE_ID environment variable for workload identity federation — scopes the minted token to a specific workspace when the federation rule covers more than one</p> <p>• Added claude agents --cwd &lt;path&gt; to scope the session list to a directory</p> <p>• /feedback can now include recent sessions (last 24 hours or 7 days) for issues spanning more than the current session</p> <p>• Rewind menu: added "Summarize up to here" to compress earlier context while keeping recent turns intact</p> <p>• Auto mode permission dialog now explains when a permissions.ask rule caused the prompt</p> <p>• Restored the "view diff in your IDE" option on file-edit permission prompts when an IDE is connected</p> <p>• Background agents launched via /bg or ←← now preserve the current permission mode instead of reverting to default</p> <p>• claude agents: agents that finish work but leave a background shell running now move to Completed instead of staying under Working</p> <p>• Improved spinner feedback during long thinking periods — the spinner now warms to amber after 10 seconds to signal Claude is still working</p> <p>• Improved plugin menu navigation: →/Tab switch tabs, ↑ moves to the tab strip, and tab headers and search box are clickable in fullscreen mode</p> <p>• Fixed background side-queries sending an unavailable Haiku model ID on Bedrock/Vertex/Foundry/gateway when no ANTHROPIC_SMALL_FAST_MODEL override is set — now falls back to the main-loop model</p> <p>• Fixed claude daemon status and /doctor on Windows throwing when the daemon pipe key file is locked or unreadable — now shows the underlying error instead of an opaque failure</p> <p>• Fixed claude agents showing the agent-type list instead of the dashboard when launched through a wrapper that adds flags</p> <p>• Fixed claude agents opening a crashed session firing redundant dispatches when the working directory was deleted</p> <p>• Fixed background jobs on a custom ANTHROPIC_BASE_URL gateway not getting auto-named — the namer now uses the main model when no Haiku model is configured</p> <p>• Fixed /model in one session silently changing the autocompact threshold in other concurrent sessions</p> <p>• Fixed switching permission mode while a tool-permission prompt is open not auto-dismissing the prompt when the new setting permits the tool</p> <p>• Fixed pressing Enter while a permission/dialog prompt is open also submitting text in the input box</p> <p>• Fixed hooks receiving a non-existent transcript_path after EnterWorktree switches the working directory</p> <p>• Fixed markdown tables with cell wrapping falling back to the vertical key-value layout instead of rendering as a bordered grid (regression in 2.1.136)</p> <p>• Fixed cancelled prompts being removed from Up-arrow history when auto-restored into the input box, avoiding duplicate entries</p> <p>• Fixed prompts cancelled with Ctrl+C/Esc before any response being dropped from Up-arrow history</p> <p>• Fixed Ctrl+C not interrupting a running turn while in vim INSERT/VISUAL mode</p> <p>• Fixed alternative chat:submit keybindings (e.g. meta+enter, ctrl+enter) not working when enter is rebound to chat:newline</p> <p>• Fixed prompt suggestions being silently disabled when an output style was configured</p> <p>• Fixed spinnerVerbs setting not being honored in turn-completion messages</p> <p>• Fixed AskUserQuestion popup hiding the last line of preceding chat content</p> <p>• Fixed Web Search status showing "Did 0 searches" when searches returned errors</p> <p>• Fixed multi-line statusline output dropping or corrupting rows when any line exceeds terminal width</p> <p>• Fixed light-ansi theme using invisible white for diff context lines on light backgrounds — now uses black</p> <p>• Fixed error overlay dumping minified bundle source that hid the original error message</p> <p>• Fixed pressing Enter after typing a feedback survey rating digit submitting it as a chat message instead of the rating</p> <p>• Fixed pressing x on a selected subagent in the agent panel typing into the prompt instead of stopping the agent</p> <p>• Fixed session title being derived from plugin monitor notifications before the user's first prompt</p> <p>• Fixed "Allowed by PermissionRequest hook" repeating once per tool call under a collapsed read/search group</p> <p>• Fixed /tui silently dropping running background shells and subagents — now refuses and asks to wait for them to finish</p> <p>• Fixed welcome banner showing "API Usage Billing" on Bedrock, Vertex, Foundry, and other third-party providers — now shows the provider name</p> <p>• Fixed /mcp server list not keeping the focused server visible in short terminals in fullscreen mode</p> <p>• Fixed redaction in /feedback bundles producing invalid JSON for quoted values like session IDs</p> <p>• Fixed desktop and third-party provider sessions incorrectly inheriting apiKeyHelper/ANTHROPIC_AUTH_TOKEN from host managed-settings</p> <p>• Fixed early analytics events being silently dropped when fired before logger initialization</p> <p>• Fixed claude plugin install failing for plugins whose marketplace ref no longer exists upstream when a sha is also pinned</p> <p>• Fixed plugin details pane showing 0 MCP servers for plugins that declare them via .mcp.json</p> <p>• Fixed plugin MCP servers with unset config variables showing a generic connection failure instead of a "config issue" message with a fix-it hint; malformed .mcp.json entries no longer drop other MCP servers</p> <p>• Fixed MCP server configs using POSIX shell parameter expansions (e.g. ${var%pattern}) being incorrectly flagged as missing environment variables</p> <p>• Fixed MCP HTTP/SSE servers returning 403 on connect showing as "failed" instead of "needs auth"</p> <p>• Fixed remote MCP servers disconnecting unnecessarily when the optional server-events stream failed to reconnect — tool calls continue over POST</p> <p>• Fixed Remote Control MCP connectors all failing with 401 when the worker session token rotated mid-session</p> <p>• Fixed Remote Control automatically re-enrolling a trusted device when the server rejects a stale token, instead of looping through /login</p> <p>• Fixed a race where early OTel spans could be silently dropped in SDK/headless mode with beta tracing enabled</p> <p>• Fixed custom voice:pushToTalk keybindings and "space": null unbinds being silently ignored</p> <p>• Fixed Windows Alt+V image paste reporting "no image found" when the clipboard contains a screenshot</p> <p>• Fixed SDK "Claude Code native binary not found" on Linux when both glibc and musl platform packages are installed</p> <p>• Bedrock: awsCredentialExport now always runs when configured instead of being skipped when ambient AWS credentials resolve, fixing auth for cross-account access</p> <p>• [VSCode] Fixed in-chat mic showing no feedback when the microphone produced only silence — now shows "No audio detected"</p> <p>• [VSCode] Voice mode: the WSL error now suggests installing sox libsox-fmt-pulse for WSLg users</p> <p>• claude agents: launching a session no longer fails when the pre-warmed background worker is unhealthy — now falls back to a fresh launch</p> <p>• claude agents no longer shows empty placeholder sessions left over from backgrounding a fresh REPL, and shows onboarding text when entered via ← with no other agents</p> <p>• Empty idle background sessions left over from ← are now automatically retired by the daemon after 5 minutes</p> https://github.com/anthropics/claude-code/releases/tag/v2.1.140 Claude Code v2.1.140 2026-05-18T01:52:01Z <p>• Improved Agent tool subagent_type matching to accept case- and separator-insensitive values (e.g. "Code Reviewer" resolves to code-reviewer)</p> <p>• Updated agent color palette</p> <p>• Fixed /goal silently hanging when disableAllHooks or allowManagedHooksOnly is set — now shows a clear message instead of an indicator that never resolves</p> <p>• Fixed a regression in settings hot-reload where symlinked settings files caused misattributed change events and spurious ConfigChange hooks</p> <p>• Fixed claude --bg failing with "connection dropped mid-request" when the background service was about to idle-exit</p> <p>• Fixed background service startup failing on machines with enterprise endpoint security by allowing more time</p> <p>• Fixed remote managed settings not retrying on 401 — now retries once with a force-refreshed token</p> <p>• Fixed managed extraKnownMarketplaces auto-update policy not being persisted to known_marketplaces.json</p> <p>• Fixed /loop scheduling redundant wakeups to poll for background tasks that already notify on completion</p> <p>• Fixed a recurring event-loop stall on Windows when a missing executable (e.g. gh) triggered synchronous where.exe re-spawns on every check</p> <p>• Fixed Read tool calls failing validation when offset is passed as a whitespace-padded or +-prefixed string</p> <p>• Fixed native terminal cursor not staying at the input caret when the terminal loses focus</p> <p>• Plugins now warn when a default component folder (e.g. commands/) is silently ignored because plugin.json sets the matching key. Shown in /doctor, claude plugin list, and /plugin.</p> https://github.com/anthropics/claude-code/releases/tag/v2.1.139 Claude Code v2.1.139 2026-05-18T01:52:01Z <p>• Added agent view (Research Preview): a single list of every Claude Code session — running, blocked on you, or done. Run claude agents to get started. See https://code.claude.com/docs/en/agent-view</p> <p>• Added /goal command: set a completion condition and Claude keeps working across turns until it's met. Works in interactive, -p, and Remote Control. Shows live elapsed/turns/tokens as an overlay panel</p> <p>• Added /scroll-speed command to tune mouse wheel scroll speed with a live preview</p> <p>• Added claude plugin details &lt;name&gt; to show a plugin's component inventory and projected per-session token cost</p> <p>• Added transcript view navigation: ? for keyboard shortcuts, {/} to jump between user prompts, v to toggle shortcut panel</p> <p>• Added hook args: string[] field (exec form) that spawns the command directly without a shell, so path placeholders never need quoting</p> <p>• Added hook continueOnBlock config option for PostToolUse — set to true to feed the hook's rejection reason back to Claude and continue the turn</p> <p>• MCP stdio servers now receive CLAUDE_PROJECT_DIR in their environment, matching hooks. Plugin configs can reference ${CLAUDE_PROJECT_DIR} in commands</p> <p>• Compaction prompt now asks the model to preserve sensitive user instructions</p> <p>• /mcp Reconnect now picks up .mcp.json edits without a restart, and shows the HTTP status and URL when reconnecting fails</p> <p>• /context all per-skill token estimates now account for the model's tokenizer and show rounded values</p> <p>• claude plugin install &lt;name&gt;@&lt;marketplace&gt; now auto-refreshes the marketplace and retries before reporting a plugin as not found</p> <p>• /plugin installed-plugin details now show hook event names and MCP server names cleanly</p> <p>• /context now shows the providing plugin's name for plugin-sourced skills</p> <p>• Remote MCP server reconnect retry on transient failures is now enabled for all users</p> <p>• API requests from subagents now carry x-claude-code-agent-id / x-claude-code-parent-agent-id headers, and claude_code.llm_request OTEL spans include agent_id / parent_agent_id attributes</p> <p>• Remote Control, /schedule, claude.ai MCP connectors, and notification preferences are now disabled when ANTHROPIC_API_KEY / apiKeyHelper / ANTHROPIC_AUTH_TOKEN is set, even if a Claude.ai login also exists. Unset the API key to use these features</p> <p>• Fixed a deadlock where expired credentials and the forceRemoteSettingsRefresh policy setting blocked claude auth login/logout/status with no way to recover</p> <p>• Fixed autoAllowBashIfSandboxed not auto-approving commands with shell expansions like $VAR and $(cmd)</p> <p>• Fixed a bug where a hook writing to the terminal could corrupt an on-screen interactive prompt; hooks now run without terminal access</p> <p>• Fixed unbounded memory growth when an HTTP/SSE MCP server streams non-protocol data — response bodies now capped at 16 MB per SSE frame</p> <p>• Fixed Skill(name *) permission rules — the wildcard form now works as a prefix match, matching Bash(ls *) behavior</p> <p>• Fixed settings hot-reload not detecting edits to symlinked ~/.claude/settings.json</p> <p>• Fixed plugin details failing to load when the marketplace key differs from the manifest name</p> <p>• Fixed /model picker "Default" row not reflecting ANTHROPIC_DEFAULT_OPUS_MODEL/ANTHROPIC_DEFAULT_SONNET_MODEL overrides</p> <p>• Fixed spurious "stream idle timeout" 5 minutes after a response completed, caused by the watchdog timer not being cleared on stream cancellation</p> <p>• Fixed silent exit 1 when 10+ MCP servers are configured and the cache directory is unwritable — the error message now includes the underlying cause</p> <p>• Fixed a typing cursor blinking on tab names, list pointers, and select rows in dialogs</p> <p>• Fixed transcript view letter shortcuts not working after mouse click</p> <p>• Fixed Bash-mode up-arrow history repeating the first entry and clobbering the in-progress draft</p> <p>• Fixed pasting or dropping multiple images only inserting the last one</p> <p>• Fixed hyperlinks using unreadable dark navy on dark themes — they now adapt to the active theme</p> <p>• Fixed model picker showing a redundant "Current model" row for third-party users whose model is set to the opus alias</p> <p>• Fixed legacy Opus picker entry on PAYG 3P providers resolving to the same model as the default entry</p> <p>• Fixed mouse wheel scrolling speed in Cursor and VS Code 1.92–1.104; the trackpad now scrolls at a steady rate and the mouse wheel keeps ~3 lines per notch</p> <p>• Fixed scroll behavior in Windows Terminal and VS Code when attached to background sessions</p> <p>• Fixed MCP resources from disconnected servers lingering in @server: autocomplete</p> <p>• Fixed two-file diff snippets over-reporting the number of truncated lines by one</p> <p>• Fixed Grep results not relativizing Windows drive-letter paths and count mode reporting wrong totals for single-file paths</p> <p>• Fixed border-embedded text overflowing on CJK/emoji due to visual cell width miscalculation</p> <p>• Fixed fuzzy-match highlighting splitting emoji and astral-plane characters mid-pair</p> <p>• Fixed skill argument names containing regex metacharacters breaking argument substitution</p> <p>• Fixed ProgressBar rendering a full block for an almost-full fractional cell</p> <p>• Fixed task polling and fs.watch being resurrected when the last subscriber leaves while a fetch is in flight</p> <p>• Fixed plugin dependency resolution leaving a stale count when the manifest name differs from the source identifier</p> <p>• Fixed Insights Time-of-Day chart skewing when a session has an unparseable timestamp</p> <p>• Fixed keybindings using only the cmd/super/win modifier being flagged as unparseable</p> <p>• Fixed claude_code.active_time.total OpenTelemetry metric not being emitted in --print mode</p> <p>• Fixed claude plugin update not preserving cross-plugin symlinks inside a marketplace</p> <p>• [VSCode] Press Cmd/Ctrl+Shift+T to reopen the most recently closed session tab, configurable via claudeCode.enableReopenClosedSessionShortcut</p> https://github.com/anthropics/claude-code/releases/tag/v2.1.138 Claude Code v2.1.138 2026-05-18T01:52:01Z <p>• Internal fixes</p> https://github.com/anthropics/claude-code/releases/tag/v2.1.137 Claude Code v2.1.137 2026-05-18T01:52:01Z <p>• [VSCode] Fixed extension failing to activate on Windows</p> https://github.com/anthropics/claude-code/releases/tag/v2.1.136 Claude Code v2.1.136 2026-05-18T01:52:01Z <p>• Added CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL to re-enable the session quality survey for enterprises capturing responses through OpenTelemetry</p> <p>• Added settings.autoMode.hard_deny for auto mode classifier rules that block unconditionally regardless of user intent or allow exceptions</p> <p>• Fixed MCP servers configured in .mcp.json, plugins, and claude.ai connectors silently disappearing after /clear in the VS Code extension, JetBrains plugin, and Agent SDK</p> <p>• Fixed a rare login loop where a concurrent credential write could overwrite a freshly-rotated OAuth token and force re-login</p> <p>• Fixed MCP OAuth refresh tokens being lost when multiple servers refresh concurrently — users with several remote MCP servers should no longer need daily re-authentication</p> <p>• Fixed an API error (400) when extended thinking emitted a redacted thinking block after a tool call</p> <p>• Fixed --resume / --continue not finding sessions when the project path contains underscores</p> <p>• Fixed plan mode not blocking file writes when a matching Edit(...) allow rule exists</p> <p>• WSL2: image paste from Windows clipboard now works via a PowerShell fallback when xclip/wl-paste cannot read image data</p> <p>• Fixed plugin Stop/UserPromptSubmit hooks failing when cache cleanup deletes a version still in use by a running session</p> <p>• Improved visual consistency across slash command dialogs: standardized footer hints, dialog spacing, and arrow-key styling, and the dialog frame now appears immediately during loading instead of popping in after</p> <p>• Fixed colors appearing at wrong positions in bash command output and markdown code blocks</p> <p>• Fixed ReasonML diffs rendering corrupted "undefined" text artifacts at word-diff boundaries</p> <p>• Fixed worktree exit dialog warning about uncommitted files in the wrong directory after worktree removal</p> <p>• Fixed @ file picker not matching files created mid-session in small non-git directories</p> <p>• Fixed @-mention file picker not finding files in directories with more than 100 entries</p> <p>• Fixed failed tool calls not being click-to-expand in fullscreen mode when their output was truncated</p> <p>• Fixed Backspace and Ctrl+Backspace getting swapped after using Ctrl+G to open an external editor on terminals with persistent extended-key modes</p> <p>• Fixed /usage weekly reset showing time of day instead of the calendar date</p> <p>• Fixed welcome banner ellipsis causing column overflow on CJK terminals</p> <p>• Fixed /insights crash when session history contains tool calls with malformed input fields</p> <p>• Fixed a renderer crash when a tool's collapsibility classification changes mid-session</p> <p>• Fixed a skills entry in plugin.json hiding the plugin's default skills/ directory, and listing a file path now shows an error instead of failing silently</p> <p>• Fixed IDE shell-integration lock files not respecting CLAUDE_CONFIG_DIR</p> <p>• Fixed trailing whitespace in copied terminal output during streaming</p> <p>• Fixed plugin uninstall and enable/disable not matching slugs case-insensitively</p> <p>• Fixed tool error truncation marker showing a negative count for surrogate-pair strings</p> <p>• Fixed env vars from CLAUDE_ENV_FILE SessionStart hooks going stale after /resume or /clear</p> <p>• Fixed /branch saving a multi-line session title when given a pasted multi-line name</p> <p>• Fixed a stray leading space on the second line of wrapped text at the column boundary</p> <p>• Fixed Esc not dismissing dialogs in /install-github-app, /desktop, /resume, and /web-setup</p> <p>• Fixed /doctor MCP schema errors not naming the missing field or showing the source file path</p> <p>• Fixed Bash permission prompts showing an internal parser diagnostic instead of a user-readable explanation</p> <p>• Fixed plugin slash commands with spaces (e.g. /myplugin review) not resolving to their namespaced form</p> <p>• Fixed AskUserQuestion discarding multi-select answers when supplied as an array</p> <p>• Fixed /clear &lt;name&gt; not labeling the cleared session for /resume</p> <p>• Fixed CronList output missing qualifiers and the scheduled prompt</p> <p>• Fixed "Jump to bottom" overlay leaving color artifacts on CJK characters in fullscreen mode</p> <p>• Fixed wide markdown tables leaving a stale bordered render in terminal scrollback while streaming</p> <p>• Fixed pasted text being silently dropped when a long prompt with a pasted-text placeholder was auto-truncated</p> <p>• Fixed /release-notes getting stuck on an old version after a failed changelog refresh</p> <p>• Fixed /mcp server list not scrolling when there are more servers than fit in the terminal</p> <p>• Fixed mid-input slash command autocomplete not working after an initial slash command</p> <p>• Fixed scrolling to bottom re-engaging auto-follow with autoScrollEnabled: false</p> <p>• Fixed prompt suggestions being auto-submitted by Enter on an empty input instead of requiring Tab or arrow to accept</p> <p>• Fixed keyboard shortcut hints not reflecting rebound keys from keybindings.json</p> <p>• Fixed /settings language change being reverted on Escape after confirming</p> <p>• Fixed /terminal-setup only appearing in autocomplete on exact name match instead of partial prefixes</p> <p>• Fixed "Chat about this" on an AskUserQuestion dialog erasing the question text</p> <p>• Fixed MCP tool results being invisible when the server returns content blocks</p> <p>• Improved error message when --worktree collides with an existing or stale worktree</p> <p>• Changed plugin marketplace removal key to d (matching delete elsewhere) instead of r which collided with retry</p> https://github.com/anthropics/claude-code/releases/tag/v2.1.133 Claude Code v2.1.133 2026-05-18T01:52:01Z <p>• Added worktree.baseRef setting (fresh | head) to choose whether --worktree, EnterWorktree, and agent-isolation worktrees branch from origin/&lt;default&gt; or local HEAD. Note: the default fresh changes EnterWorktree's base back to origin/&lt;default&gt; (it has been local HEAD since 2.1.128) — set worktree.baseRef: "head" to keep unpushed commits in new worktrees</p> <p>• Added sandbox.bwrapPath and sandbox.socatPath managed settings (Linux/WSL) to specify custom bubblewrap and socat binary locations</p> <p>• Added parentSettingsBehavior admin-tier key ('first-wins' | 'merge') to let admins opt SDK managedSettings (parent tier) into the policy merge</p> <p>• Hooks now receive the active effort level via the effort.level JSON input field and the $CLAUDE_EFFORT environment variable, and Bash tool commands can read $CLAUDE_EFFORT</p> <p>• Improved focus mode behavior</p> <p>• Improved memory usage by releasing warm-spare background workers under memory pressure</p> <p>• Fixed parallel sessions all dead-ending at 401 after a refresh-token race wiped shared credentials</p> <p>• Fixed Edit/Write allow rules scoped to a drive root (C:\) or POSIX / matching incorrectly and always prompting</p> <p>• Fixed an unhandled rejection (ECOMPROMISED) when a history or session-log file lock is compromised by clock skew or slow disk</p> <p>• Fixed pressing Esc during conversation compaction showing a spurious "Error compacting conversation" notification</p> <p>• Fixed HTTP(S)_PROXY / NO_PROXY / mTLS not being respected for the full MCP OAuth flow including discovery, dynamic client registration, token exchange, and token refresh</p> <p>• Fixed Read/Write/Edit being denied on mapped network drives passed via --add-dir / SDK additionalDirectories</p> <p>• Fixed Remote Control stop/interrupt from claude.ai not fully canceling the CLI session the same way local Esc does, causing queued messages to never advance after interrupting a stuck tool or prompt</p> <p>• Fixed /effort in one session unexpectedly changing the effort level of other concurrent sessions, and a related issue where an IDE effort change could be silently dropped</p> <p>• Fixed subagents not discovering project, user, or plugin skills via the Skill tool</p> <p>• claude --help now lists --remote-control alongside --remote-control-session-name-prefix</p> <p>• [VSCode] Fixed claudeCode.claudeProcessWrapper failing with "Unsupported platform" when the extension build doesn't bundle a Claude binary</p> https://github.com/anthropics/claude-code/releases/tag/v2.1.132 Claude Code v2.1.132 2026-05-18T01:52:01Z <p>• Added CLAUDE_CODE_SESSION_ID environment variable to the Bash tool subprocess environment, matching the session_id passed to hooks</p> <p>• Added CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 env var to opt out of the fullscreen alternate-screen renderer and keep the conversation in the terminal's native scrollback</p> <p>• Added a "Pasting…" footer hint while a Ctrl+V image paste is being read from the clipboard</p> <p>• Fixed external SIGINT (e.g. IDE stop button, kill -INT) not running graceful shutdown — terminal modes are now restored and the --resume hint is printed instead of an abrupt exit</p> <p>• Fixed an uncaught exception when the terminal is closed or SSH disconnects mid-session under the native build</p> <p>• Fixed --resume failing with no low surrogate in string when a tool error truncation split an emoji; pre-corrupted sessions are sanitized on load</p> <p>• Fixed --permission-mode flag being ignored when resuming a plan-mode session with -p --continue/--resume, and plan mode not being re-applied after ExitPlanMode within the same session</p> <p>• Fixed fullscreen mode showing a blank screen after laptop sleep/wake or Ctrl+Z/fg until the next keystroke or stream output</p> <p>• Fixed cursor landing mid-grapheme on Ctrl+E/A/K/U/arrow keys when an Indic conjunct or ZWJ emoji wraps across lines</p> <p>• Fixed vim operators corrupting text containing decomposed (NFD) accented characters</p> <p>• Fixed pasting text starting with / silently swallowing the input or triggering an unknown-command reply</p> <p>• Fixed pasting dumping stray escape sequences into the prompt when focus events or mouse-tracking reports interleave with the bracketed paste</p> <p>• Fixed mouse wheel scrolling being too fast in Cursor and VS Code 1.92–1.104 due to an upstream xterm.js bug</p> <p>• Fixed scroll-wheel handling in JetBrains IDE 2025.2 terminals (spurious arrow keys, wrong-direction events, runaway acceleration)</p> <p>• Fixed /usage Ctrl+S hanging when copying the stats screenshot to the clipboard on Linux/X11</p> <p>• Fixed /terminal-setup showing a contradictory error in Windows Terminal — Shift+Enter is natively supported there</p> <p>• Fixed /effort picker not reflecting the CLAUDE_CODE_EFFORT_LEVEL env var override</p> <p>• Fixed /status showing the wrong default model for some users</p> <p>• Fixed slash command autocomplete popup being capped at ~3–5 visible commands instead of scaling with terminal height</p> <p>• Fixed statusline context_window token counts reflecting cumulative session totals instead of current context usage</p> <p>• Fixed Alt+T (thinking toggle) not working on macOS terminals without "Option as Meta" enabled (iTerm2, Terminal.app defaults)</p> <p>• Fixed dead keyboard input on Windows after re-opening a background session from claude agents</p> <p>• Fixed unbounded memory growth (10GB+ RSS) when a stdio MCP server writes non-protocol data to stdout</p> <p>• Fixed MCP servers that connect but fail tools/list silently showing 0 tools — they now retry once and show "connected · tools fetch failed" in /mcp</p> <p>• Fixed unauthorized claude.ai MCP connectors showing as "failed" instead of "needs auth", and headless -p mode retrying non-transient 4xx connection failures</p> <p>• Improved visual consistency in slash command dialogs and /login, /upgrade, /extra-usage dialog spacing</p> <p>• Updated the /tui fullscreen startup banner to describe additional renderer benefits (lower memory usage, mouse support, auto-copy on select)</p> <p>• Fixed Bedrock and Vertex 400 errors when ENABLE_PROMPT_CACHING_1H is set</p> https://github.com/anthropics/claude-code/releases/tag/v2.1.131 Claude Code v2.1.131 2026-05-18T01:52:01Z <p>• Fixed VS Code extension failing to activate on Windows due to a hardcoded build path in the bundled SDK (createRequire polyfill bug)</p> <p>• Fixed Mantle endpoint authentication failing with missing x-api-key header</p> https://github.com/anthropics/claude-code/releases/tag/v2.1.129 Claude Code v2.1.129 2026-05-18T01:52:01Z <p>• Added --plugin-url &lt;url&gt; flag to fetch a plugin .zip archive from a URL for the current session</p> <p>• Added CLAUDE_CODE_FORCE_SYNC_OUTPUT=1 env var to force-enable synchronized output on terminals that auto-detection misses (e.g. Emacs eat)</p> <p>• Added CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE: when set on Homebrew or WinGet installations, Claude Code runs the upgrade command in the background and prompts to restart</p> <p>• Plugin manifests: themes and monitors should now be declared under "experimental": { ... }. Top-level declarations still work but claude plugin validate will warn</p> <p>• Gateway /v1/models discovery for the /model picker is now opt-in via CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 (was automatic in 2.1.126–2.1.128)</p> <p>• Ctrl+R history picker now defaults to searching all prompts across all projects, matching pre-2.1.124 behavior. Press Ctrl+S to narrow to the current project or session</p> <p>• Third-party deployments (Bedrock, Vertex, Foundry, or ANTHROPIC_BASE_URL gateway) no longer see spinner tips pointing at first-party Anthropic surfaces</p> <p>• skillOverrides setting now works: off hides from model and /, user-invocable-only hides from model only, name-only collapses description</p> <p>• The claude_code.pull_request.count OTel metric now counts PRs/MRs created via MCP tools, not just shell commands</p> <p>• Policy refusal error messages now include the API Request ID for easier support debugging</p> <p>• Fixed API errors with unrecognized 400 status codes showing raw JSON instead of the underlying error message</p> <p>• Fixed /clear not resetting the terminal tab title after a conversation</p> <p>• Fixed session title chip from /rename disappearing while a permission or other dialog is active</p> <p>• Fixed agent panel below the prompt being hidden when subagents are running (regression in 2.1.122)</p> <p>• Fixed external-editor handoff (Ctrl+G) blanking the conversation history above the prompt</p> <p>• Fixed /context dumping its rendered ASCII visualization grid into the conversation, wasting ~1.6k tokens per call</p> <p>• Fixed /agents Library list arrow-key navigation: the highlighted agent now stays visible when the list exceeds the viewport</p> <p>• Fixed /branch success message not including the new branch's session id for /resume</p> <p>• Fixed bold headers with keycap/ZWJ/skin-tone emoji losing trailing characters in fullscreen mode</p> <p>• Fixed server-managed settings policy not applying for enterprise/team users whose stored OAuth credentials lacked the user:inference scope</p> <p>• Fixed OAuth refresh race after wake-from-sleep that could log out all running sessions</p> <p>• Fixed 1-hour prompt cache TTL being silently downgraded to 5 minutes</p> <p>• Fixed cache-miss warning appearing spuriously after /clear or compaction when changing /effort or /model</p> <p>• Fixed Bash(mkdir *), Bash(touch *) and similar allow rules not being honored for in-project paths</p> <p>• Fixed deniedMcpServers patterns with a *:// scheme wildcard not matching mixed-case hostnames</p> <p>• Fixed harmless WebSocket warning being logged as an error in --debug during voice mode</p> <p>• [VSCode] Fixed /clear not clearing the conversation context and displayed transcript</p> https://github.com/anthropics/claude-code/releases/tag/v2.1.128 Claude Code v2.1.128 2026-05-18T01:52:01Z <p>• Bare /color (no args) now picks a random session color</p> <p>• /mcp now shows the tool count for connected servers and flags servers that connected with 0 tools</p> <p>• --plugin-dir now accepts .zip plugin archives in addition to directories</p> <p>• --channels now works with console (API key) authentication — console orgs with managed settings must set channelsEnabled: true to enable</p> <p>• Updated /model picker: collapsed duplicate Opus 4.7 entries, and current Opus now shows as "Opus" instead of "Opus 4.7"</p> <p>• Subprocesses (Bash, hooks, MCP, LSP) no longer inherit OTEL_* environment variables, so OTEL-instrumented apps run via the Bash tool no longer pick up the CLI's own OTLP endpoint</p> <p>• MCP: workspace is now a reserved server name — existing servers with that name will be skipped with a warning</p> <p>• Reconnecting MCP servers no longer flood the conversation with full tool-name lists on every reconnect — re-announced tools are summarized by server prefix</p> <p>• SDK hosts now receive a persistent localSettings suggestion for Bash permission prompts, so "Always allow" writes to .claude/settings.local.json</p> <p>• EnterWorktree now creates the new branch from local HEAD as documented, instead of origin/&lt;default-branch&gt; — unpushed commits are no longer dropped</p> <p>• Auto mode: when the classifier can't evaluate an action, the error now includes a hint (retry, /compact, or run with --debug)</p> <p>• Fixed focus mode briefly dimming the previous response when submitting a new prompt</p> <p>• Fixed stray "4;0;" desktop notification on every /exit in Kitty and other terminals that interpret OSC 9 as a notification</p> <p>• Fixed Remote Control showing an empty "Opening your options…" message on rate limit instead of actionable upsell options</p> <p>• Fixed drag-and-drop image upload hanging on "Pasting text…" when the image read fails</p> <p>• Fixed crash loop when piping very large input (&gt;10 MB) to claude -p via stdin</p> <p>• Fixed long URLs not being individually clickable on every wrapped row in fullscreen mode</p> <p>• Fixed /plugin Components panel showing "Marketplace 'inline' not found" for plugins loaded via --plugin-dir</p> <p>• Fixed MCP tool results dropping images when the server returns both structured content and content blocks</p> <p>• Fixed fenced code blocks inside list items carrying leading whitespace into the clipboard on copy-paste</p> <p>• Fixed tab navigation in /config stranding focus — the tab header now stays focused so arrows and Esc keep working</p> <p>• Fixed markdown link labels being lost on terminals without OSC 8 hyperlink support — links now render as label (url) instead of just the URL</p> <p>• Fixed sessions on 1M-context models with a smaller autocompact window being falsely blocked with "Prompt is too long" before reaching the actual API limit</p> <p>• Fixed parallel shell tool calls: a failing read-only command (grep, git diff, ls) no longer cancels sibling calls</p> <p>• Fixed banner showing "with X effort" on models that don't support effort</p> <p>• Fixed /fast on 3P providers fuzzy-matching to an unrelated skill instead of showing "not available"</p> <p>• Fixed Bedrock default model resolving to global.* instead of the region-appropriate prefix</p> <p>• Fixed vim mode: Space in NORMAL mode now moves the cursor right, matching standard vi/vim behavior</p> <p>• Fixed terminal progress indicator (OSC 9;4) flickering off between tool calls — stays visible across the full turn</p> <p>• Fixed /rename without args failing on resumed sessions whose last entry is a compact boundary</p> <p>• Fixed stale "remote-control is active" status lines from prior sessions appearing after --resume/--continue</p> <p>• Fixed stale installed_plugins.json entries pointing at deleted cache directories polluting PATH</p> <p>• Fixed MCP stdio servers receiving corrupted arguments when CLAUDE_CODE_SHELL_PREFIX is set and an argument contains spaces or shell metacharacters</p> <p>• Fixed sub-agent progress summaries missing the prompt cache (~3× cache_creation reduction)</p> <p>• Fixed /plugin update never detecting new versions of npm-sourced plugins</p> <p>• Fixed sub-agent summaries firing repeatedly while a sub-agent's transcript is static, capping worst-case token cost on idle sub-agents</p> <p>• Headless --output-format stream-json: init.plugin_errors now includes --plugin-dir load failures in addition to dependency demotions</p> https://github.com/anthropics/claude-code/releases/tag/v2.1.126 Claude Code v2.1.126 2026-05-18T01:52:01Z <p>• The /model picker now lists models from your gateway's /v1/models endpoint when ANTHROPIC_BASE_URL points at an Anthropic-compatible gateway</p> <p>• - Added claude project purge [path] to delete all Claude Code state for a project (transcripts, tasks, file history, config entry) — supports --dry-run, -y/--yes, -i/--interactive, and --all</p> <p>• --dangerously-skip-permissions now bypasses prompts for writes to .claude/, .git/, .vscode/, shell config files, and other previously-protected paths (catastrophic removal commands still prompt as a safety net)</p> <p>• claude auth login now accepts the OAuth code pasted into the terminal when the browser callback can't reach localhost (WSL2, SSH, containers)</p> <p>• claude_code.skill_activated OpenTelemetry event now fires for user-typed slash commands and carries a new invocation_trigger attribute ("user-slash", "claude-proactive", or "nested-skill")</p> <p>• Auto mode: the spinner now turns red when a permission check stalls, instead of looking like the tool is running</p> <p>• Host-managed deployments (CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST) no longer auto-disable analytics on Bedrock/Vertex/Foundry</p> <p>• Windows: PowerShell 7 installed via the Microsoft Store, MSI without PATH, or .NET global tool is now detected</p> <p>• Windows: when the PowerShell tool is enabled, Claude now treats PowerShell as the primary shell instead of defaulting to Bash</p> <p>• Read tool: removed the per-file malware-assessment reminder that could cause spurious refusals and "this is not malware" commentary on legacy models</p> <p>• Security: Fixed allowManagedDomainsOnly / allowManagedReadPathsOnly being ignored when a higher-priority managed-settings source lacked a sandbox block</p> <p>• Fixed pasting an image larger than 2000px breaking the session — images are now downscaled on paste, and oversized images in history are automatically removed and the request retried</p> <p>• Fixed showing the login screen for "OAuth not allowed for organization" errors — now shows guidance to contact your admin</p> <p>• Fixed OAuth login failing with timeout on slow or proxied connections, in IPv6-only devcontainers, and when the browser callback can't reach localhost</p> <p>• Fixed a rare race where a concurrent credential write could clear a valid OAuth refresh token</p> <p>• Fixed API retry countdown sticking at "0s" instead of counting down between attempts</p> <p>• Fixed "Stream idle timeout" error after waking Mac from sleep mid-request</p> <p>• Fixed background and remote sessions falsely aborting with "Stream idle timeout" during long model thinking pauses</p> <p>• Fixed a hang where the assistant could finish thinking but show no output after a run of empty turns</p> <p>• Fixed overly fast trackpad scrolling in Cursor and VS Code 1.92–1.104 integrated terminals</p> <p>• Fixed claude.ai MCP connectors being suppressed by manual servers stuck in needs-auth state</p> <p>• Fixed Japanese/Korean/Chinese text rendering as garbled characters on Windows in no-flicker mode</p> <p>• Fixed Ctrl+L clearing the prompt input — it now only forces a screen redraw, matching readline behavior</p> <p>• Fixed deferred tools (WebSearch, WebFetch, etc.) not being available to skills with context: fork and other subagents on their first turn</p> <p>• Fixed plan-mode tools being unavailable in interactive sessions launched with --channels</p> <p>• Fixed /plugin Uninstall reporting "Enabled" instead of "Uninstalled"</p> <p>• Bounded total size of file-modified reminders when a linter touches many files at once</p> <p>• Fixed /remote-control retries appearing stuck on "connecting…" — each retry now shows its result</p> <p>• Fixed Remote Control failure notification not showing the error reason for initial connection failures</p> <p>• Windows: clipboard writes no longer expose copied content in process command-line arguments visible to EDR/SIEM telemetry; also fixes &gt;22KB selections not reaching the clipboard</p> <p>• PowerShell tool: bare -- (e.g. git diff -- file) is no longer mis-flagged as the --% stop-parsing token</p> <p>• Fixed Agent SDK hang when the model emits a malformed tool name in a parallel tool call batch</p> https://github.com/anthropics/claude-code/releases/tag/v2.1.123 Claude Code v2.1.123 2026-05-18T01:52:01Z <p>• Fixed OAuth authentication failing with a 401 retry loop when CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 is set</p> https://github.com/anthropics/claude-code/releases/tag/v2.1.122 Claude Code v2.1.122 2026-05-18T01:52:01Z <p>• Added ANTHROPIC_BEDROCK_SERVICE_TIER environment variable to select a Bedrock service tier (default, flex, or priority), sent as the X-Amzn-Bedrock-Service-Tier header</p> <p>• Pasting a PR URL into the /resume search box now finds the session that created that PR (GitHub, GitHub Enterprise, GitLab, and Bitbucket)</p> <p>• /mcp now shows claude.ai connectors hidden by a manually-added server with the same URL, with a hint to remove the duplicate</p> <p>• Clarified the /mcp message shown when an MCP server is still unauthorized after the browser sign-in flow</p> <p>• OpenTelemetry: numeric attributes on api_request/api_error log events are now emitted as numbers, not strings</p> <p>• OpenTelemetry: added claude_code.at_mention log event for @-mention resolution</p> <p>• Fixed /branch producing forks that fail with "tool_use ids were found without tool_result blocks" when the source session contained entries from rewound timelines</p> <p>• Fixed /model not showing the Effort option for Bedrock application inference profile ARNs, and those ARNs not receiving output_config.effort</p> <p>• Fixed Vertex AI / Bedrock returning invalid_request_error: output_config: Extra inputs are not permitted on session-title generation and other structured-output queries</p> <p>• Fixed Vertex AI count_tokens endpoint returning 400 errors for users behind proxy gateways</p> <p>• Fixed spinnerTipsOverride.excludeDefault not suppressing the time-based spinner tips</p> <p>• Fixed ToolSearch missing MCP tools that connected after session start in nonblocking mode</p> <p>• Fixed !exit / !quit in bash mode terminating the CLI instead of running as a shell command</p> <p>• Fixed images sent to newer models being resized to 2576px per side instead of the correct 2000px maximum</p> <p>• Fixed remote control session idle status redrawing twice per second, which could flood tmux -CC control pipes and pause the terminal</p> <p>• Fixed assistant messages appearing blank in some sessions due to a stale view preference</p> <p>• Fixed a malformed hooks entry in settings.json no longer invalidating the entire file</p> <p>• Voice mode: keybindings bound to Caps Lock now show an error since terminals don't deliver Caps Lock as a key event</p> https://github.com/anthropics/claude-code/releases/tag/v2.1.121 Claude Code v2.1.121 2026-05-18T01:52:01Z <p>• Added alwaysLoad option to MCP server config — when true, all tools from that server skip tool-search deferral and are always available</p> <p>• Added claude plugin prune to remove orphaned auto-installed plugin dependencies; plugin uninstall --prune cascades</p> <p>• Added a type-to-filter search box to /skills so you can find a skill in long lists without scrolling</p> <p>• PostToolUse hooks can now replace tool output for all tools via hookSpecificOutput.updatedToolOutput (previously MCP-only)</p> <p>• Fullscreen mode: typing into the prompt no longer jumps scroll back to the bottom after you've scrolled up to read earlier output</p> <p>• Dialogs that overflow the terminal are now scrollable with arrow keys, PgUp/PgDn, home/end, and mouse wheel in both fullscreen and non-fullscreen modes</p> <p>• Clicking any line of a long URL that wraps across rows in fullscreen mode now opens the full URL</p> <p>• SDK and claude -p: CLAUDE_CODE_FORK_SUBAGENT=1 now works in non-interactive sessions</p> <p>• --dangerously-skip-permissions no longer prompts for writes to .claude/skills/, .claude/agents/, and .claude/commands/</p> <p>• /terminal-setup now enables iTerm2's "Applications in terminal may access clipboard" setting so /copy works, including from tmux</p> <p>• MCP servers that hit a transient error during startup now auto-retry up to 3 times instead of staying disconnected</p> <p>• The terminal tab session title is now generated in your configured language setting</p> <p>• Claude.ai connectors with the same upstream URL are now deduplicated instead of appearing as duplicates</p> <p>• Vertex AI: support X.509 certificate-based Workload Identity Federation (mTLS ADC)</p> <p>• Faster startup after upgrading: removed the Recent Activity panel from the release-notes splash</p> <p>• LSP diagnostic summaries now expand on click/ctrl+o and show the expand hint</p> <p>• SDK: mcp_authenticate now supports redirectUri for custom scheme completion and claude.ai connectors</p> <p>• OpenTelemetry: added stop_reason, gen_ai.response.finish_reasons, and user_system_prompt (gated behind OTEL_LOG_USER_PROMPTS) to LLM request spans</p> <p>• [VSCode] Voice dictation now respects the accessibility.voice.speechLanguage setting when no Claude Code language is configured</p> <p>• [VSCode] /context now opens a native token usage dialog</p> <p>• Fixed unbounded memory growth (multi-GB RSS) when processing many images in a session</p> <p>• Fixed /usage leaking up to ~2GB of memory on machines with large transcript histories</p> <p>• Fixed memory leak when long-running tools fail to emit a clear progress event</p> <p>• Fixed Bash tool becoming permanently unusable when the directory Claude was started in is deleted or moved mid-session</p> <p>• Fixed --resume crashing on startup in external builds</p> <p>• Fixed --resume failing on large sessions when a transcript line was corrupted by an unclean shutdown — the corrupt line is now skipped</p> <p>• Fixed thinking.type.enabled is not supported error when using Bedrock application inference profile ARNs</p> <p>• Fixed Microsoft 365 MCP OAuth failing with duplicate or unsupported prompt parameter</p> <p>• Fixed scrollback duplication when pressing Ctrl+L or triggering a redraw in non-fullscreen mode on tmux, GNOME Terminal, Windows Terminal, and Konsole</p> <p>• Fixed claude.ai MCP connectors silently disappearing when the connector-list fetch hits a transient auth error at startup</p> <p>• Fixed "Always allow" rules for built-in tools in remote sessions not surviving worker restarts</p> <p>• Fixed NO_PROXY not being respected for all HTTP clients when set via managed-settings.json under the native build</p> <p>• Fixed managed settings approval prompt exiting the session even when accepted — now applies settings and continues</p> <p>• Fixed /usage returning "rate limited" after a stale OAuth token — now refreshes automatically</p> <p>• Fixed invalid legacy enum values in settings.json invalidating the entire settings file</p> <p>• Fixed /usage dialog content being clipped when no-flicker mode is off</p> <p>• Fixed /focus showing "Unknown command" when the fullscreen renderer is off — now explains how to enable it</p> <p>• Fixed embedded grep/find/rg shell wrappers failing when the running binary is deleted mid-session — now falls back to installed tools</p> <p>• Reduced peak file descriptor usage during find in the Bash tool on large directory trees</p> https://github.com/anthropics/claude-code/releases/tag/v2.1.120 Claude Code v2.1.120 2026-05-18T01:52:01Z <p>• Windows: Git for Windows (Git Bash) is no longer required — when absent, Claude Code uses PowerShell as the shell tool</p> <p>• Added claude ultrareview [target] subcommand to run /ultrareview non-interactively from CI or scripts — prints findings to stdout (--json for raw output) and exits 0 on completion or 1 on failure</p> <p>• Skills can now reference the current effort level with ${CLAUDE_EFFORT} in their content</p> <p>• Set AI_AGENT environment variable for subprocesses so gh can attribute traffic to Claude Code</p> <p>• Spinner tips that recommend installing the desktop app or creating skills/agents are now hidden when you already have them</p> <p>• Show a "use PgUp/PgDn to scroll" hint when the terminal sends arrow keys instead of scroll events</p> <p>• Faster session start when you have many claude.ai connectors configured but not authorized</p> <p>• The auto mode denial message now links to the configuration docs</p> <p>• claude plugin validate now accepts $schema, version, and description at the top level of marketplace.json and $schema in plugin.json</p> <p>• Auto-compact in auto mode now displays auto (lowercase, no token count) instead of a misleading token value</p> <p>• Fixed pressing Esc during a stdio MCP tool call closing the entire server connection (regression in 2.1.105)</p> <p>• Fixed /rewind and other interactive overlays not responding to keyboard input after launching with claude --resume</p> <p>• Fixed terminal scrollback duplication in non-fullscreen mode (resize, dialog dismiss, long sessions)</p> <p>• Fixed DISABLE_TELEMETRY / CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC not suppressing usage metrics telemetry for API and enterprise users</p> <p>• Fixed false-positive "Dangerous rm operation" permission prompts in auto mode for multi-line bash commands containing both a pipe and a redirect</p> <p>• Fixed long selection menus clipping below the terminal in fullscreen mode — the focused option now stays on screen as you scroll</p> <p>• Fixed Write tool output collapsing instead of expanding when clicking "+N lines" in fullscreen</p> <p>• Fixed slash command picker jumping while typing, and improved highlight to only match contiguous substrings in blue</p> <p>• Fixed /plugin marketplace failing to load when one entry uses an unrecognized source format — that entry is shown but installing it prompts you to update</p> <p>• [VSCode] /usage now opens the native Account &amp; Usage dialog instead of returning plain-text session cost</p> <p>• [VSCode] Voice dictation now respects the language setting in ~/.claude/settings.json</p> <p>• Fixed find in the Bash tool exhausting open file descriptors on large directory trees, causing host-wide crashes (macOS/Linux native builds)</p> https://github.com/anthropics/claude-code/releases/tag/v2.1.119 Claude Code v2.1.119 2026-05-18T01:52:01Z <p>• /config settings (theme, editor mode, verbose, etc.) now persist to ~/.claude/settings.json and participate in project/local/policy override precedence</p> <p>• Added prUrlTemplate setting to point the footer PR badge at a custom code-review URL instead of github.com</p> <p>• Added CLAUDE_CODE_HIDE_CWD environment variable to hide the working directory in the startup logo</p> <p>• --from-pr now accepts GitLab merge-request, Bitbucket pull-request, and GitHub Enterprise PR URLs</p> <p>• --print mode now honors the agent's tools: and disallowedTools: frontmatter, matching interactive-mode behavior</p> <p>• --agent &lt;name&gt; now honors the agent definition's permissionMode for built-in agents</p> <p>• PowerShell tool commands can now be auto-approved in permission mode, matching Bash behavior</p> <p>• Hooks: PostToolUse and PostToolUseFailure hook inputs now include duration_ms (tool execution time, excluding permission prompts and PreToolUse hooks)</p> <p>• Subagent and SDK MCP server reconfiguration now connects servers in parallel instead of serially</p> <p>• Plugins pinned by another plugin's version constraint now auto-update to the highest satisfying git tag</p> <p>• Vim mode: Esc in INSERT no longer pulls a queued message back into the input; press Esc again to interrupt</p> <p>• Slash command suggestions now highlight the characters that matched your query</p> <p>• Slash command picker now wraps long descriptions onto a second line instead of truncating</p> <p>• owner/repo#N shorthand links in output now use your git remote's host instead of always pointing at github.com</p> <p>• Security: blockedMarketplaces now correctly enforces hostPattern and pathPattern entries</p> <p>• OpenTelemetry: tool_result and tool_decision events now include tool_use_id; tool_result also includes tool_input_size_bytes</p> <p>• Status line: stdin JSON now includes effort.level and thinking.enabled</p> <p>• Fixed pasting CRLF content (Windows clipboards, Xcode console) inserting an extra blank line between every line</p> <p>• Fixed multi-line paste losing newlines in terminals using kitty keyboard protocol sequences inside bracketed paste</p> <p>• Fixed Glob and Grep tools disappearing on native macOS/Linux builds when the Bash tool is denied via permissions</p> <p>• Fixed scrolling up in fullscreen mode snapping back to the bottom every time a tool finishes</p> <p>• Fixed MCP HTTP connections failing with "Invalid OAuth error response" when servers returned non-JSON bodies for OAuth discovery requests</p> <p>• Fixed Rewind overlay showing "(no prompt)" for messages with image attachments</p> <p>• Fixed auto mode overriding plan mode with conflicting "Execute immediately" instructions</p> <p>• Fixed async PostToolUse hooks that emit no response payload writing empty entries to the session transcript</p> <p>• Fixed spinner staying on when a subagent task notification is orphaned in the queue</p> <p>• Tool search is now disabled by default on Vertex AI to avoid an unsupported beta header error (opt in with ENABLE_TOOL_SEARCH)</p> <p>• Fixed @-file Tab completion replacing the entire prompt when used inside a slash command with an absolute path</p> <p>• Fixed a stray p character appearing at the prompt on startup in macOS Terminal.app via Docker or SSH</p> <p>• Fixed ${ENV_VAR} placeholders in headers for HTTP/SSE/WebSocket MCP servers not being substituted before requests</p> <p>• Fixed MCP OAuth client secret stored via --client-secret not being sent during token exchange for servers requiring client_secret_post</p> <p>• Fixed /skills Enter key closing the dialog instead of pre-filling /&lt;skill-name&gt; in the prompt</p> <p>• Fixed /agents detail view mislabeling built-in tools unavailable to subagents as "Unrecognized"</p> <p>• Fixed MCP servers from plugins not spawning on Windows when the plugin cache was incomplete</p> <p>• Fixed /export showing the current default model instead of the model the conversation actually used</p> <p>• Fixed verbose output setting not persisting after restart</p> <p>• Fixed /usage progress bars overlapping with their "Resets …" labels</p> <p>• Fixed plugin MCP servers failing when ${user_config.*} references an optional field left blank</p> <p>• Fixed list items containing a sentence-final number wrapping the number onto its own line</p> <p>• Fixed /plan and /plan open not acting on the existing plan when entering plan mode</p> <p>• Fixed skills invoked before auto-compaction being re-executed against the next user message</p> <p>• Fixed /reload-plugins and /doctor reporting load errors for disabled plugins</p> <p>• Fixed Agent tool with isolation: "worktree" reusing stale worktrees from prior sessions</p> <p>• Fixed disabled MCP servers appearing as "failed" in /status</p> <p>• Fixed TaskList returning tasks in arbitrary filesystem order instead of sorted by ID</p> <p>• Fixed spurious "GitHub API rate limit exceeded" hints when gh output contained PR titles mentioning "rate limit"</p> <p>• Fixed SDK/bridge read_file not correctly enforcing size cap on growing files</p> <p>• Fixed PR not linked to session when working in a git worktree</p> <p>• Fixed /doctor warning about MCP server entries overridden by a higher-precedence scope</p> <p>• Windows: removed false-positive "Windows requires 'cmd /c' wrapper" MCP config warning</p> <p>• [VSCode] Fixed voice dictation's first recording producing nothing on macOS while the microphone permission prompt is showing</p> https://github.com/anthropics/claude-code/releases/tag/v2.1.118 Claude Code v2.1.118 2026-05-18T01:52:01Z <p>• Added vim visual mode (v) and visual-line mode (V) with selection, operators, and visual feedback</p> <p>• Merged /cost and /stats into /usage — both remain as typing shortcuts that open the relevant tab</p> <p>• Create and switch between named custom themes from /theme, or hand-edit JSON files in ~/.claude/themes/; plugins can also ship themes via a themes/ directory</p> <p>• Hooks can now invoke MCP tools directly via type: "mcp_tool"</p> <p>• Added DISABLE_UPDATES env var to completely block all update paths including manual claude update — stricter than DISABLE_AUTOUPDATER</p> <p>• WSL on Windows can now inherit Windows-side managed settings via the wslInheritsWindowsSettings policy key</p> <p>• Auto mode: include "$defaults" in autoMode.allow, autoMode.soft_deny, or autoMode.environment to add custom rules alongside the built-in list instead of replacing it</p> <p>• Added a "Don't ask again" option to the auto mode opt-in prompt</p> <p>• Added claude plugin tag to create release git tags for plugins with version validation</p> <p>• --continue/--resume now find sessions that added the current directory via /add-dir</p> <p>• /color now syncs the session accent color to claude.ai/code when Remote Control is connected</p> <p>• The /model picker now honors ANTHROPIC_DEFAULT_*_MODEL_NAME/_DESCRIPTION overrides when using a custom ANTHROPIC_BASE_URL gateway</p> <p>• When auto-update skips a plugin due to another plugin's version constraint, the skip now appears in /doctor and the /plugin Errors tab</p> <p>• Fixed /mcp menu hiding OAuth Authenticate/Re-authenticate actions for servers configured with headersHelper, and HTTP/SSE MCP servers with custom headers being stuck in "needs authentication" after a transient 401</p> <p>• Fixed MCP servers whose OAuth token response omits expires_in requiring re-authentication every hour</p> <p>• Fixed MCP step-up authorization silently refreshing instead of prompting for re-consent when the server's insufficient_scope 403 names a scope the current token already has</p> <p>• Fixed an unhandled promise rejection when an MCP server's OAuth flow times out or is cancelled</p> <p>• Fixed MCP OAuth refresh proceeding without its cross-process lock under contention</p> <p>• Fixed macOS keychain race where a concurrent MCP token refresh could overwrite a freshly-refreshed OAuth token, causing unexpected "Please run /login" prompts</p> <p>• Fixed OAuth token refresh failing when the server revokes a token before its local expiry time</p> <p>• Fixed credential save crash on Linux/Windows corrupting ~/.claude/.credentials.json</p> <p>• Fixed /login having no effect in a session launched with CLAUDE_CODE_OAUTH_TOKEN — the env token is now cleared so disk credentials take effect</p> <p>• Fixed unreadable text in the "new messages" scroll pill and /plugin badges</p> <p>• Fixed plan acceptance dialog offering "auto mode" instead of "bypass permissions" when running with --dangerously-skip-permissions</p> <p>• Fixed agent-type hooks failing with "Messages are required for agent hooks" when configured for events other than Stop or SubagentStop</p> <p>• Fixed prompt hooks re-firing on tool calls made by an agent-hook verifier subagent</p> <p>• Fixed /fork writing the full parent conversation to disk per fork — now writes a pointer and hydrates on read</p> <p>• Fixed Alt+K / Alt+X / Alt+^ / Alt+_ freezing keyboard input</p> <p>• Fixed connecting to a remote session overwriting your local model setting in ~/.claude/settings.json</p> <p>• Fixed typeahead showing "No commands match" error when pasting file paths that start with /</p> <p>• Fixed plugin install on an already-installed plugin not re-resolving a dependency installed at the wrong version</p> <p>• Fixed unhandled errors from file watcher on invalid paths or fd exhaustion</p> <p>• Fixed Remote Control sessions getting archived on transient CCR initialization blips during JWT refresh</p> <p>• Fixed subagents resumed via SendMessage not restoring the explicit cwd they were spawned with</p>