Claude Code: What's New in March 2026
A summary of all updates, new features, and bug fixes released for Claude Code during March 2026.
New Features in March 2026
- Added `CLAUDE_CODE_NO_FLICKER=1` environment variable to opt into flicker-free alt-screen rendering with virtualized scrollback(v2.1.88)
- Added `PermissionDenied` hook that fires after auto mode classifier denials, allowing the model to retry with `{retry: true}`(v2.1.88)
- Added named subagents to `@` mention typeahead suggestions(v2.1.88)
- Pasting `!command` into an empty prompt now enters bash mode, matching typed `!` behavior(v2.1.88)
- Added X-Claude-Code-Session-Id header to API requests to allow proxies to aggregate requests by session without body parsing.(v2.1.86)
- Added .jj and .sl to VCS directory exclusion lists to prevent Grep and file autocomplete from descending into Jujutsu or Sapling metadata.(v2.1.86)
- Added conditional `if` field for hooks using permission rule syntax to filter when they run, reducing process spawning overhead.(v2.1.85)
- Added timestamp markers in transcripts when scheduled tasks (`/loop`, `CronCreate`) fire.(v2.1.85)
- Added trailing space after `[Image #N]` placeholder when pasting images.(v2.1.85)
- Enabled deep link queries (`claude-cli://open?q=...`) to support up to 5,000 characters, with a warning for long pre-filled prompts.(v2.1.85)
- Enabled PreToolUse hooks to satisfy `AskUserQuestion` by returning `updatedInput` alongside `permissionDecision: \"allow\" `, supporting headless integrations.(v2.1.85)
- Plugins blocked by organization policy are now hidden from marketplace views and cannot be installed or enabled.(v2.1.85)
- Added PowerShell tool for Windows as an opt-in preview.(v2.1.84)
- Added `TaskCreated` hook that fires when a task is created via `TaskCreate`.(v2.1.84)
- Added `WorktreeCreate` hook support for `type: "http"`.(v2.1.84)
- Added `allowedChannelPlugins` managed setting for team/enterprise admins to define a channel plugin allowlist.(v2.1.84)
- Added `x-client-request-id` header to API requests for debugging timeouts.(v2.1.84)
- Added idle-return prompt that nudges users returning after 75+ minutes to `/clear`, reducing unnecessary token re-caching on stale sessions.(v2.1.84)
- Enabled deep links (`claude-cli://`) to open in your preferred terminal instead of the first detected terminal.(v2.1.84)
- Rules and skills `paths:` frontmatter now accepts a YAML list of globs.(v2.1.84)
- Enabled global system-prompt caching when `ToolSearch` is enabled, including for users with MCP tools configured.(v2.1.84)
- Added transcript search functionality, accessible via pressing / in transcript mode, with n/N to step through matches.(v2.1.83)
- Added support for agents to declare an initialPrompt in frontmatter to automatically submit a first turn upon session start.(v2.1.83)
- Enabled positional referencing of pasted images in prompts by inserting an [Image #N] chip at the cursor location.(v2.1.83)
- Added support for binding `chat:killAgents` and `chat:fastMode` via the `~/.claude/keybindings.json` file.(v2.1.83)
- Enabled the use of `Ctrl+X Ctrl+E` as an alternative binding for opening the external editor.(v2.1.83)
- Added the --bare flag for scripted -p calls, which skips hooks, LSP, plugin sync, and skill directory walks for faster execution.(v2.1.81)
- Introduced --channels permission relay, allowing channel servers that declare capability to forward tool approval prompts directly to your phone.(v2.1.81)
- Added `rate_limits` field to statusline scripts for displaying Claude.ai rate limit usage (5-hour and 7-day windows with `used_percentage` and `resets_at`)(v2.1.80)
- Added `source: 'settings'` plugin marketplace source, allowing plugin entries to be declared inline in settings.json(v2.1.80)
- Added CLI tool usage detection to plugin tips, supplementing file pattern matching(v2.1.80)
- Added `effort` frontmatter support for skills and slash commands to override the model effort level when invoked(v2.1.80)
- Enabled `--channels` (research preview) allowing MCP servers to push messages into your session(v2.1.80)
- Added support for Anthropic Console (API billing) authentication via the `--console` flag in `claude auth login`.(v2.1.79)
- Introduced a "Show turn duration" toggle within the `/config` menu to display how long each turn took.(v2.1.79)
- Enabled bridging your local session to claude.ai/code using the new `/remote-control` command in VS Code.(v2.1.79)
- Enabled AI-generated titles for session tabs in VS Code, based on the first message in the session.(v2.1.79)
- Added `StopFailure` hook event that fires when the turn ends due to an API error (rate limit, auth failure, etc.)(v2.1.78)
- Added `${CLAUDE_PLUGIN_DATA}` variable for plugin persistent state that survives plugin updates; `/plugin uninstall` prompts before deleting it(v2.1.78)
- Added `effort`, `maxTurns`, and `disallowedTools` frontmatter support for plugin-shipped agents(v2.1.78)
- Enabled response text to stream line-by-line as it's generated(v2.1.78)
- Added `ANTHROPIC_CUSTOM_MODEL_OPTION` environment variable to add a custom entry to the `/model` picker, with optional `_NAME` and `_DESCRIPTION` suffixed variables for display(v2.1.78)
- Added optional index argument to the /copy command: /copy N now copies the Nth-latest assistant response.(v2.1.77)
- Added the allowRead sandbox filesystem setting to re-allow read access within denyRead regions.(v2.1.77)
- Enabled sessions to be auto-named based on plan content when a plan is accepted.(v2.1.77)
- Renamed the /fork command to /branch (with /fork remaining as an alias).(v2.1.77)
- Added MCP elicitation support, allowing MCP servers to request structured input mid-task via interactive dialogs (form fields or browser URL)(v2.1.76)
- Added new Elicitation and ElicitationResult hooks to intercept and override responses before they are sent back(v2.1.76)
- Added `-n` / `--name <name>` CLI flag to set a display name for the session at startup(v2.1.76)
- Added `worktree.sparsePaths` setting for `claude --worktree` to check out only necessary directories in large monorepos using git sparse-checkout(v2.1.76)
- Added `PostCompact` hook that fires after compaction completes(v2.1.76)
- Added `/effort` slash command to set the model effort level(v2.1.76)
- Enabled session quality surveys, configurable by enterprise admins via the `feedbackSurveyRate` setting(v2.1.76)
- Added actionable suggestions to /context command to identify context-heavy tools, memory bloat, and capacity warnings with specific optimization tips(v2.1.74)
- Added autoMemoryDirectory setting to configure a custom directory for auto-memory storage(v2.1.74)
- Added `modelOverrides` setting to map model picker entries to custom provider model IDs (e.g. Bedrock inference profile ARNs)(v2.1.73)
- Added actionable guidance when OAuth login or connectivity checks fail due to SSL certificate errors (corporate proxies, `NODE_EXTRA_CA_CERTS`)(v2.1.73)
- Improved Up arrow after interrupting Claude to now restore the interrupted prompt and rewind the conversation in one step(v2.1.73)
- Improved `/effort` to work while Claude is responding, matching `/model` behavior(v2.1.73)
- Changed default Opus model on Bedrock, Vertex, and Microsoft Foundry to Opus 4.6 (was Opus 4.1)(v2.1.73)
- Added the `w` key in `/copy` to write the focused selection directly to a file, bypassing the clipboard (useful over SSH).(v2.1.72)
- Introduced optional description argument to `/plan` (e.g., `/plan fix the auth bug`) that enters plan mode and immediately starts.(v2.1.72)
- Added `claude plugins` as an alias for `claude plugin`.(v2.1.72)
- Added `ExitWorktree` tool to leave an `EnterWorktree` session.(v2.1.72)
- Enabled the `CLAUDE_CODE_DISABLE_CRON` environment variable to immediately stop scheduled cron jobs mid-session.(v2.1.72)
- Added `lsof`, `pgrep`, `tput`, `ss`, `fd`, and `fdfind` to the bash auto-approval allowlist, reducing permission prompts for common read-only operations.(v2.1.72)
- Added support for marketplace git URLs without the `.git` suffix (Azure DevOps, AWS CodeCommit).(v2.1.72)
- Restored the `model` parameter on the Agent tool for per-invocation model overrides.(v2.1.72)
- Added effort level indicator on the input border in VSCode.(v2.1.72)
- Added `vscode://anthropic.claude-code/open` URI handler in VSCode to open a new Claude Code tab programmatically, with optional `prompt` and `session` query parameters.(v2.1.72)
- Added /loop command to run a prompt or slash command on a recurring interval (e.g. /loop 5m check the deploy)(v2.1.71)
- Added cron scheduling tools for recurring prompts within a session(v2.1.71)
- Added voice:pushToTalk keybinding to make the voice activation key rebindable in keybindings.json (default: space)(v2.1.71)
- Added bash auto-approval for commands including: fmt, comm, cmp, numfmt, expr, test, printf, getconf, seq, tsort, and pr(v2.1.71)
- Added spark icon in VS Code activity bar that lists all Claude Code sessions, with sessions opening as full editors(v2.1.70)
- Added full markdown document view for plans in VS Code, with support for adding comments to provide feedback(v2.1.70)
- Added native MCP server management dialog in VS Code, allowing users to enable/disable servers, reconnect, and manage OAuth authentication via the /mcp command(v2.1.70)
Bug Fixes in March 2026
- Fixed prompt cache misses in long sessions caused by tool schema bytes changing mid-session(v2.1.88)
- Fixed nested CLAUDE.md files being re-injected dozens of times in long sessions that read many files(v2.1.88)
- Fixed Edit/Write tools doubling CRLF on Windows and stripping Markdown hard line breaks (two trailing spaces)(v2.1.88)
- Fixed `StructuredOutput` schema cache bug causing ~50% failure rate in workflows with multiple schemas(v2.1.88)
- Fixed memory leak where large JSON inputs were retained as LRU cache keys in long-running sessions(v2.1.88)
- Fixed a potential out-of-memory crash when the Edit tool was used on very large files (>1 GiB)(v2.1.88)
- Fixed a crash when removing a message from very large session files (over 50MB)(v2.1.88)
- Fixed `--resume` crash when transcript contains a tool result from an older CLI version or interrupted write(v2.1.88)
- Fixed misleading "Rate limit reached" message when the API returned an entitlement error; now shows the actual error with actionable hints(v2.1.88)
- Fixed LSP server zombie state after crash; server now restarts on next request instead of failing until session restart(v2.1.88)
- Fixed hooks `if` condition filtering not matching compound commands (`ls && git push`) or commands with env-var prefixes (`FOO=bar git push`)(v2.1.88)
- Fixed prompt history entries containing CJK or emoji being silently dropped when they fall on a 4KB boundary in `~/.claude/history.jsonl`(v2.1.88)
- Fixed `/stats` losing historical data beyond 30 days when the stats cache format changes(v2.1.88)
- Fixed `/stats` undercounting tokens by excluding subagent/fork usage(v2.1.88)
- Fixed scrollback disappearing when scrolling up in long sessions(v2.1.88)
- Fixed collapsed search/read group badges duplicating in terminal scrollback during heavy parallel tool use(v2.1.88)
- Fixed notification `invalidates` not clearing the currently-displayed notification immediately(v2.1.88)
- Fixed prompt briefly disappearing after submit when background messages arrived during processing(v2.1.88)
- Fixed long `/btw` responses being clipped with no way to scroll; responses now render in a scrollable viewport(v2.1.88)
- Fixed Devanagari and other combining-mark text being truncated in assistant output(v2.1.88)
- Fixed rendering artifacts on main-screen terminals after layout shifts(v2.1.88)
- Fixed voice mode failing to request microphone permission on macOS Apple Silicon(v2.1.88)
- Fixed voice push-to-talk not activating for some modifier-combo bindings(v2.1.88)
- Fixed voice mode on Windows failing with "WebSocket upgrade rejected with HTTP 101"(v2.1.88)
- Fixed Shift+Enter submitting instead of inserting a newline on Windows Terminal Preview 1.25(v2.1.88)
- Fixed periodic UI jitter during streaming in iTerm2 when running inside tmux(v2.1.88)
- Fixed PowerShell tool incorrectly reporting failures when commands like `git push` wrote progress to stderr on Windows PowerShell 5.1(v2.1.88)
- Fixed SDK error result messages (`error_during_execution`, `error_max_turns`) to correctly set `is_error: true` with descriptive messages(v2.1.88)
- Fixed task notifications being lost when backgrounding a session with Ctrl+B(v2.1.88)
- Fixed PreToolUse/PostToolUse hooks not providing `file_path` as an absolute path for Write/Edit/Read tools(v2.1.88)
- Fixed messages in Cowork Dispatch not getting delivered(v2.1.87)
- Fixed --resume failing with "tool_use ids were found without tool_result blocks" on sessions created before v2.1.85.(v2.1.86)
- Fixed Write/Edit/Read failing on files outside the project root (e.g., ~/.claude/CLAUDE.md) when conditional skills or rules are configured.(v2.1.86)
- Fixed unnecessary config disk writes on every skill invocation that could cause performance issues and config corruption on Windows.(v2.1.86)
- Fixed potential out-of-memory crash when using /feedback on very long sessions with large transcript files.(v2.1.86)
- Fixed --bare mode dropping MCP tools in interactive sessions and silently discarding messages enqueued mid-turn.(v2.1.86)
- Fixed the c shortcut copying only ~20 characters of the OAuth login URL instead of the full URL.(v2.1.86)
- Fixed masked input (e.g., OAuth code paste) leaking the start of the token when wrapping across multiple lines on narrow terminals.(v2.1.86)
- Fixed official marketplace plugin scripts failing with "Permission denied" on macOS/Linux since v2.1.83.(v2.1.86)
- Fixed statusline showing another session's model when running multiple Claude Code instances and using /model in one of them.(v2.1.86)
- Fixed scroll not following new messages after wheel scroll or click-to-select at the bottom of a long conversation.(v2.1.86)
- Fixed /plugin uninstall dialog: pressing n now correctly uninstalls the plugin while preserving its data directory.(v2.1.86)
- Fixed a regression where pressing Enter after clicking could leave the transcript blank until the response arrived.(v2.1.86)
- Fixed ultrathink hint lingering after deleting the keyword.(v2.1.86)
- Fixed memory growth in long sessions from markdown/highlight render caches retaining full content strings.(v2.1.86)
- Fixed VSCode extension incorrectly showing "Not responding" during long-running operations.(v2.1.86)
- Fixed VSCode extension defaulting Max plan users to Sonnet after the OAuth token refreshes (8 hours after login).(v2.1.86)
- Fixed `/compact` failing with "context exceeded" when the conversation history is too large for the compact request itself.(v2.1.85)
- Fixed `/plugin enable` and `/plugin disable` failing when a plugin's install location differs from its declaration in settings.(v2.1.85)
- Fixed `--worktree` exiting with an error in non-git repositories before the `WorktreeCreate` hook could execute.(v2.1.85)
- Fixed `deniedMcpServers` setting failing to block claude.ai MCP servers.(v2.1.85)
- Fixed `switch_display` in the computer-use tool returning "not available in this session" on multi-monitor setups.(v2.1.85)
- Fixed crash when OpenTelemetry log, metric, or trace exporters are set to `none`.(v2.1.85)
- Fixed diff syntax highlighting not working in non-native builds.(v2.1.85)
- Fixed MCP step-up authorization failing when a refresh token exists; servers requesting elevated scopes now correctly trigger re-authorization.(v2.1.85)
- Fixed memory leak in remote sessions when a streaming response is interrupted.(v2.1.85)
- Fixed persistent ECONNRESET errors during edge connection churn by using a fresh TCP connection on retry.(v2.1.85)
- Fixed prompts getting stuck in the queue after certain slash commands, preventing retrieval with the up-arrow key.(v2.1.85)
- Fixed Python Agent SDK: `type:'sdk'` MCP servers passed via `--mcp-config` not being retained during startup.(v2.1.85)
- Fixed raw key sequences appearing in the prompt when running over SSH or in the VS Code integrated terminal.(v2.1.85)
- Fixed Remote Control session status remaining stuck on "Requires Action" after a permission is resolved.(v2.1.85)
- Fixed shift+enter and meta+enter being intercepted by typeahead suggestions instead of inserting newlines.(v2.1.85)
- Fixed stale content bleeding through when scrolling up during streaming.(v2.1.85)
- Fixed terminal remaining in enhanced keyboard mode after exit in supported terminals (Ghostty, Kitty, WezTerm), ensuring Ctrl+C and Ctrl+D work correctly.(v2.1.85)
- Fixed voice push-to-talk: holding the voice key no longer leaks characters into the text input, and transcripts now insert at the correct position.(v2.1.84)
- Fixed up/down arrow keys being unresponsive when a footer item is focused.(v2.1.84)
- Fixed `Ctrl+U` (kill-to-line-start) being a no-op at line boundaries in multiline input, so repeated `Ctrl+U` now clears across lines.(v2.1.84)
- Fixed null-unbinding a default chord binding (e.g. `"ctrl+x ctrl+k": null`) still entering chord-wait mode instead of freeing the prefix key.(v2.1.84)
- Fixed mouse events inserting literal "mouse" text into transcript search input.(v2.1.84)
- Fixed workflow subagents failing with API 400 when the outer session uses `--json-schema` and the subagent also specifies a schema.(v2.1.84)
- Fixed missing background color behind certain emoji in user message bubbles on some terminals.(v2.1.84)
- Fixed the "allow Claude to edit its own settings for this session" permission option not sticking for users with `Edit(.claude)` allow rules.(v2.1.84)
- Fixed a hang when generating attachment snippets for large edited files.(v2.1.84)
- Fixed MCP tool/resource cache leak on server reconnect.(v2.1.84)
- Fixed a startup performance issue where partial clone repositories (Scalar/GVFS) triggered mass blob downloads.(v2.1.84)
- Fixed native terminal cursor not tracking the text input caret, so IME composition (CJK input) now renders inline and screen readers can follow the input position.(v2.1.84)
- Fixed spurious "Not logged in" errors on macOS caused by transient keychain read failures.(v2.1.84)
- Fixed cold-start race where core tools could be deferred without their bypass active, causing Edit/Write to fail with InputValidationError on typed parameters.(v2.1.84)
- Fixed mouse tracking escape sequences leaking to the shell prompt after exiting the application.(v2.1.83)
- Resolved an issue causing Claude Code to hang on exit specifically on macOS.(v2.1.83)
- Fixed the screen flashing blank after being idle for a few seconds.(v2.1.83)
- Fixed a hang that occurred when diffing very large files with few common lines; diffs now time out gracefully after 5 seconds.(v2.1.83)
- Fixed a 1–8 second UI freeze on startup when voice input was enabled, caused by eager loading of the native audio module.(v2.1.83)
- Fixed a startup regression where Claude Code would wait approximately 3 seconds for the claude.ai MCP config fetch before proceeding.(v2.1.83)
- Fixed the `--mcp-config` CLI flag bypassing enforcement of `allowedMcpServers`/`deniedMcpServers` managed policies.(v2.1.83)
- Fixed claude.ai MCP connectors (Slack, Gmail, etc.) not being available when using single-turn `--print` mode.(v2.1.83)
- Fixed the `caffeinate` process not terminating correctly upon Claude Code exit, which prevented Mac systems from sleeping.(v2.1.83)
- Fixed bash mode not activating correctly when tab-accepting command suggestions prefixed with !.(v2.1.83)
- Fixed stale slash command selection showing the wrong highlighted command after navigating suggestions.(v2.1.83)
- Fixed the /config menu incorrectly showing both the search cursor and list selection simultaneously.(v2.1.83)
- Fixed background subagents becoming invisible after context compaction, preventing duplicate agents from spawning.(v2.1.83)
- Fixed background agent tasks getting stuck in a "running" state when git or API calls hung during cleanup.(v2.1.83)
- Fixed the --channels flag incorrectly showing "Channels are not currently available" on the first launch after an upgrade.(v2.1.83)
- Fixed uninstalled plugin hooks continuing to fire until the next session started.(v2.1.83)
- Fixed queued commands flickering during streaming responses.(v2.1.83)
- Fixed slash commands being sent to the model as plain text when submitted while a message was already processing.(v2.1.83)
- Fixed scrollback jumping to the top when collapsed read/search groups finished loading after scrolling offscreen.(v2.1.83)
- Fixed scrollback jumping to the top when the model started or stopped thinking.(v2.1.83)
- Fixed loss of SDK session history upon resume caused by hook progress/attachment messages forking the parentUuid chain.(v2.1.83)
- Fixed copy-on-select functionality failing when the mouse button was released outside the terminal window.(v2.1.83)
- Fixed ghost characters appearing in height-constrained lists when items overflowed their bounds.(v2.1.83)
- Fixed `Ctrl+B` interfering with readline backward-char functionality at an idle prompt; it now only fires when a foreground task can be backgrounded.(v2.1.83)
- Fixed tool result files never being cleaned up, ignoring the `cleanupPeriodDays` setting.(v2.1.83)
- Fixed the space key being swallowed for up to 3 seconds after releasing voice hold-to-talk.(v2.1.83)
- Fixed ALSA library errors corrupting the terminal UI when using voice mode on Linux systems lacking audio hardware (e.g., Docker, headless, WSL1).(v2.1.83)
- Fixed voice mode SoX detection issues on Termux/Android where spawning `which` is kernel-restricted.(v2.1.83)
- Fixed Remote Control sessions incorrectly showing as Idle in the web session list while actively running.(v2.1.83)
- Fixed footer navigation selecting an invisible Remote Control pill when in config-driven mode.(v2.1.83)
- Fixed a memory leak in remote sessions where tool use IDs accumulated indefinitely.(v2.1.83)
- [VSCode] Fixed session history not loading correctly when reopening a session via URL or after restarting the editor.(v2.1.83)
- Fixed multiple concurrent Claude Code sessions requiring repeated re-authentication when one session refreshed its OAuth token.(v2.1.81)
- Fixed voice mode silently swallowing retry failures and showing a misleading "check your network" message instead of the actual error.(v2.1.81)
- Fixed voice mode audio not recovering when the server silently drops the WebSocket connection.(v2.1.81)
- Fixed structured-outputs beta header causing 400 errors on proxy gateways by ensuring CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS correctly suppresses it.(v2.1.81)
- Fixed --channels bypass issue for Team/Enterprise organizations lacking other managed settings.(v2.1.81)
- Fixed a crash occurring specifically on Node.js 18 environments.(v2.1.81)
- Fixed unnecessary permission prompts appearing for Bash commands containing dashes within strings.(v2.1.81)
- Fixed plugin hooks blocking prompt submission when the plugin directory was deleted during an active session.(v2.1.81)
- Fixed a race condition where background agent task output could hang indefinitely if the task completed between polling intervals.(v2.1.81)
- Fixed resuming a session in a worktree now correctly switches the user back to that worktree.(v2.1.81)
- Fixed /btw command not including pasted text when used during an active response.(v2.1.81)
- Fixed a race condition where fast Cmd+Tab followed by paste could fail due to clipboard copy timing under tmux.(v2.1.81)
- Fixed terminal tab title not updating correctly with an auto-generated session description.(v2.1.81)
- Fixed invisible hook attachments inflating the message count when viewing transcripts.(v2.1.81)
- Fixed Remote Control sessions showing a generic title instead of deriving the title from the first prompt.(v2.1.81)
- Fixed /rename command not reliably syncing the title for Remote Control sessions.(v2.1.81)
- Fixed Remote Control /exit command not reliably archiving the session.(v2.1.81)
- Fixed Windows PATH inheritance issue for the Bash tool when using Git Bash within VSCode (a regression from v2.1.78).(v2.1.81)
- Fixed `--resume` dropping parallel tool results, ensuring all tool_use/tool_result pairs are restored instead of showing placeholders(v2.1.80)
- Fixed voice mode WebSocket failures caused by Cloudflare bot detection on non-browser TLS fingerprints(v2.1.80)
- Fixed 400 errors when using fine-grained tool streaming through API proxies, Bedrock, or Vertex(v2.1.80)
- Fixed `/remote-control` appearing for gateway and third-party provider deployments where it is non-functional(v2.1.80)
- Fixed `/sandbox` tab switching not responding to Tab or arrow keys(v2.1.80)
- Fixed managed settings (like `enabledPlugins`, `permissions.defaultMode`, policy-set env vars) not being applied at startup when `remote-settings.json` was cached(v2.1.80)
- Fixed the `claude -p` command hanging when executed as a subprocess without explicit stdin.(v2.1.79)
- Fixed Ctrl+C not functioning correctly when using `claude -p` (print) mode.(v2.1.79)
- Fixed the `/btw` command incorrectly returning the main agent's output instead of answering the side question during streaming.(v2.1.79)
- Fixed voice mode failing to activate correctly on startup when `voiceEnabled: true` was configured.(v2.1.79)
- Fixed incorrect left/right arrow navigation behavior within the `/permissions` menu.(v2.1.79)
- Fixed the `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` environment variable failing to prevent the terminal title from being set on startup.(v2.1.79)
- Fixed custom status lines appearing blank when workspace trust settings were blocking them.(v2.1.79)
- Fixed enterprise users being unable to retry requests after encountering rate limit (429) errors.(v2.1.79)
- Fixed `SessionEnd` hooks failing to fire when using interactive `/resume` to switch between sessions.(v2.1.79)
- Fixed the thinking pill displaying "Thinking" instead of the actual thought duration after a response finished in VS Code.(v2.1.79)
- Fixed the session diff button being missing when opening sessions from the left sidebar in VS Code.(v2.1.79)
- Fixed `git log HEAD` failing with "ambiguous argument" inside sandboxed Bash on Linux, and stub files polluting `git status` in the working directory(v2.1.78)
- Fixed `cc log` and `--resume` silently truncating conversation history on large sessions (>5 MB) that used subagents(v2.1.78)
- Fixed infinite loop when API errors triggered stop hooks that re-fed blocking errors to the model(v2.1.78)
- Fixed `deny: ["mcp__servername"]` permission rules not removing MCP server tools before sending to the model, allowing it to see and attempt blocked tools(v2.1.78)
- Fixed `sandbox.filesystem.allowWrite` not working with absolute paths (previously required `//` prefix)(v2.1.78)
- Fixed `/sandbox` Dependencies tab showing Linux prerequisites on macOS instead of macOS-specific info(v2.1.78)
- Fixed silent sandbox disable when `sandbox.enabled: true` is set but dependencies are missing; now shows a visible startup warning(v2.1.78)
- Fixed `.git`, `.claude`, and other protected directories being writable without a prompt in `bypassPermissions` mode(v2.1.78)
- Fixed ctrl+u in normal mode scrolling instead of readline kill-line (ctrl+u/ctrl+d half-page scroll moved to transcript mode only)(v2.1.78)
- Fixed voice mode modifier-combo push-to-talk keybindings (e.g. ctrl+k) requiring a hold instead of activating immediately(v2.1.78)
- Fixed voice mode not working on WSL2 with WSLg (Windows 11); WSL1/Win10 users now get a clear error(v2.1.78)
- Fixed `--worktree` flag not loading skills and hooks from the worktree directory(v2.1.78)
- Fixed `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` and `includeGitInstructions` setting not suppressing the git status section in the system prompt(v2.1.78)
- Fixed Bash tool not finding Homebrew and other PATH-dependent binaries when VS Code is launched from Dock/Spotlight(v2.1.78)
- Fixed washed-out Claude orange color in VS Code/Cursor/code-server terminals that don't advertise truecolor support(v2.1.78)
- Fixed `ANTHROPIC_BETAS` environment variable being silently ignored when using Haiku models(v2.1.78)
- Fixed queued prompts being concatenated without a newline separator(v2.1.78)
- Fixed a brief flash of the login screen when opening the sidebar while already authenticated in VSCode(v2.1.78)
- Fixed "API Error: Rate limit reached" when selecting Opus in VSCode; model dropdown no longer offers 1M context variant to subscribers whose plan tier is unknown(v2.1.78)
- Fixed the "Always Allow" setting for compound bash commands (e.g., cd src && npm test) incorrectly saving a single rule for the full string instead of per-subcommand, which caused dead rules and repeated prompts.(v2.1.77)
- Fixed the auto-updater accumulating tens of gigabytes of memory by starting overlapping binary downloads when the slash-command overlay repeatedly opened and closed.(v2.1.77)
- Fixed the --resume command silently truncating recent conversation history due to a race condition between memory-extraction writes and the main transcript.(v2.1.77)
- Fixed PreToolUse hooks returning "allow" bypassing deny permission rules, including enterprise managed settings.(v2.1.77)
- Fixed the Write tool silently converting line endings when overwriting CRLF files or creating files in CRLF directories.(v2.1.77)
- Fixed memory growth in long-running sessions caused by progress messages surviving compaction.(v2.1.77)
- Fixed cost and token usage not being tracked when the API falls back to non-streaming mode.(v2.1.77)
- Fixed CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS not stripping beta tool-schema fields, which caused proxy gateways to reject requests.(v2.1.77)
- Fixed the Bash tool reporting errors for successful commands when the system temp directory path contains spaces.(v2.1.77)
- Fixed paste operation being lost when typing immediately after pasting.(v2.1.77)
- Fixed Ctrl+D in the /feedback text input deleting forward instead of exiting the session on the second press.(v2.1.77)
- Fixed an API error occurring when dragging a 0-byte image file into the prompt.(v2.1.77)
- Fixed Claude Desktop sessions incorrectly using the terminal CLI's configured API key instead of OAuth.(v2.1.77)
- Fixed git-subdir plugins located at different subdirectories of the same monorepo commit colliding in the plugin cache.(v2.1.77)
- Fixed ordered list numbers not rendering correctly in the terminal UI.(v2.1.77)
- Fixed a race condition where stale-worktree cleanup could delete an agent worktree that was just resumed from a previous crash.(v2.1.77)
- Fixed input deadlock occurring when opening /mcp or similar dialogs while the agent is running.(v2.1.77)
- Fixed Backspace and Delete keys not functioning in vim NORMAL mode.(v2.1.77)
- Fixed the status line not updating when vim mode is toggled on or off.(v2.1.77)
- Fixed hyperlinks opening twice on Cmd+click in VS Code, Cursor, and other xterm.js-based terminals.(v2.1.77)
- Fixed background colors rendering as terminal-default inside tmux when using the default configuration.(v2.1.77)
- Fixed iTerm2 session crash when selecting text inside tmux over SSH.(v2.1.77)
- Fixed clipboard copy silently failing in tmux sessions; the copy toast now correctly indicates whether to paste with ⌘V or tmux prefix+].(v2.1.77)
- Fixed ←/→ keys accidentally switching tabs in settings, permissions, and sandbox dialogs while navigating lists.(v2.1.77)
- Fixed IDE integration not auto-connecting when Claude Code is launched inside tmux or screen.(v2.1.77)
- Fixed CJK characters visually bleeding into adjacent UI elements when clipped at the right edge.(v2.1.77)
- Fixed teammate panes not closing when the leader exits.(v2.1.77)
- Fixed iTerm2 auto mode not correctly detecting iTerm2 for native split-pane teammates.(v2.1.77)
- Fixed the Agent tool incorrectly accepting a resume parameter; users must now use SendMessage({to: agentId}) to continue a previously spawned agent.(v2.1.77)
- Fixed deferred tools losing their input schemas after conversation compaction, which caused array and number parameters to be rejected with type errors(v2.1.76)
- Fixed slash commands incorrectly showing "Unknown skill"(v2.1.76)
- Fixed plan mode incorrectly asking for re-approval after the plan was already accepted(v2.1.76)
- Fixed voice mode swallowing keypresses while a permission dialog or plan editor was open(v2.1.76)
- Fixed `/voice` command not working on Windows when installed via npm(v2.1.76)
- Fixed spurious "Context limit reached" error when invoking a skill with `model:` frontmatter on a 1M-context session(v2.1.76)
- Fixed "adaptive thinking is not supported on this model" error when using non-standard model strings(v2.1.76)
- Fixed `Bash(cmd:*)` permission rules not matching when a quoted argument contains #(v2.1.76)
- Fixed "don't ask again" in the Bash permission dialog showing the full raw command for pipes and compound commands(v2.1.76)
- Fixed auto-compaction retrying indefinitely after consecutive failures by implementing a circuit breaker that stops after 3 attempts(v2.1.76)
- Fixed MCP reconnect spinner persisting after successful reconnection(v2.1.76)
- Fixed LSP plugins not registering servers when the LSP Manager initialized before marketplaces were reconciled(v2.1.76)
- Fixed clipboard copying in tmux over SSH by attempting both direct terminal write and tmux clipboard integration(v2.1.76)
- Fixed `/export` showing only the filename instead of the full file path in the success message(v2.1.76)
- Fixed transcript not auto-scrolling to new messages after selecting text(v2.1.76)
- Fixed Escape key not working to exit the login method selection screen(v2.1.76)
- Fixed several Remote Control issues, including sessions silently dying when the server reaps an idle environment, rapid messages being queued one-at-a-time instead of batched, and stale work items causing redelivery after JWT refresh(v2.1.76)
- Fixed bridge sessions failing to recover after extended WebSocket disconnects(v2.1.76)
- Fixed slash commands not being found when typing the exact name of a soft-hidden command(v2.1.76)
- [VSCode] Fixed gitignore patterns containing commas silently excluding entire filetypes from the @-mention file picker(v2.1.76)
- Fixed memory leak where streaming API response buffers were not released when the generator was terminated early, causing unbounded RSS growth on the Node.js/npm code path(v2.1.74)
- Fixed managed policy ask rules being bypassed by user allow rules or skill allowed-tools(v2.1.74)
- Fixed full model IDs (e.g., claude-opus-4-5) being silently ignored in agent frontmatter model: field and --agents JSON config; agents now accept the same model values as --model(v2.1.74)
- Fixed MCP OAuth authentication hanging when the callback port is already in use(v2.1.74)
- Fixed MCP OAuth refresh never prompting for re-auth after the refresh token expires for OAuth servers that return errors with HTTP 200 (e.g. Slack)(v2.1.74)
- Fixed voice mode silently failing on the macOS native binary for users whose terminal had never been granted microphone permission; the binary now includes the audio-input entitlement so macOS prompts correctly(v2.1.74)
- Fixed SessionEnd hooks being killed after 1.5 s on exit regardless of hook.timeout; this is now configurable via CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS(v2.1.74)
- Fixed /plugin install failing inside the REPL for marketplace plugins with local sources(v2.1.74)
- Fixed marketplace update not syncing git submodules; plugin sources in submodules no longer break after update(v2.1.74)
- Fixed unknown slash commands with arguments silently dropping input; the command now shows your input as a warning(v2.1.74)
- Fixed Hebrew, Arabic, and other RTL text not rendering correctly in Windows Terminal, conhost, and VS Code integrated terminal(v2.1.74)
- Fixed LSP servers not working on Windows due to malformed file URIs(v2.1.74)
- [VSCode] Fixed delete button not working for Untitled sessions(v2.1.74)
- Fixed freezes and 100% CPU loops triggered by permission prompts for complex bash commands(v2.1.73)
- Fixed a deadlock that could freeze Claude Code when many skill files changed at once (e.g. during `git pull` in a repo with a large `.claude/skills/` directory)(v2.1.73)
- Fixed Bash tool output being lost when running multiple Claude Code sessions in the same project directory(v2.1.73)
- Fixed subagents with `model: opus`/`sonnet`/`haiku` being silently downgraded to older model versions on Bedrock, Vertex, and Microsoft Foundry(v2.1.73)
- Fixed background bash processes spawned by subagents not being cleaned up when the agent exits(v2.1.73)
- Fixed `/resume` showing the current session in the picker(v2.1.73)
- Fixed `/ide` crashing with `onInstall is not defined` when auto-installing the extension(v2.1.73)
- Fixed `/loop` not being available on Bedrock/Vertex/Foundry and when telemetry was disabled(v2.1.73)
- Fixed SessionStart hooks firing twice when resuming a session via `--resume` or `--continue`(v2.1.73)
- Fixed JSON-output hooks injecting no-op system-reminder messages into the model's context on every turn(v2.1.73)
- Fixed voice mode session corruption when a slow connection overlaps a new recording(v2.1.73)
- Fixed Linux sandbox failing to start with "ripgrep (rg) not found" on native builds(v2.1.73)
- Fixed Linux native modules not loading on Amazon Linux 2 and other glibc 2.26 systems(v2.1.73)
- Fixed "media_type: Field required" API error when receiving images via Remote Control(v2.1.73)
- Fixed `/heapdump` failing on Windows with `EEXIST` error when the Desktop folder already exists(v2.1.73)
- VSCode: Fixed HTTP 400 errors for users behind proxies or on Bedrock/Vertex with Claude 4.5 models(v2.1.73)
- Fixed slow exits when background tasks or hooks were slow to respond.(v2.1.72)
- Fixed agent task progress stuck on "Initializing…".(v2.1.72)
- Fixed skill hooks firing twice per event when a hooks-enabled skill is invoked by the model.(v2.1.72)
- Fixed several voice mode issues: occasional input lag, false "No speech detected" errors after releasing push-to-talk, and stale transcripts re-filling the prompt after submission.(v2.1.72)
- Fixed `--continue` not resuming from the most recent point after `--compact`.(v2.1.72)
- Fixed bash security parsing edge cases.(v2.1.72)
- Fixed several plugin issues: installation failing on Windows with `EEXIST` error in OneDrive folders, marketplace blocking user-scope installs when a project-scope install exists, `CLAUDE_CODE_PLUGIN_CACHE_DIR` creating literal `~` directories, and `plugin.json` with marketplace-only fields failing to load.(v2.1.72)
- Fixed feedback survey appearing too frequently in long sessions.(v2.1.72)
- Fixed `--effort` CLI flag being reset by unrelated settings writes on startup.(v2.1.72)
- Fixed backgrounded Ctrl+B queries losing their transcript or corrupting the new conversation after `/clear`.(v2.1.72)
- Fixed `/clear` killing background agent/bash tasks — only foreground tasks are now cleared.(v2.1.72)
- Fixed worktree isolation issues: Task tool resume not restoring cwd, and background task notifications missing `worktreePath` and `worktreeBranch`.(v2.1.72)
- Fixed `/model` not displaying results when run while Claude is working.(v2.1.72)
- Fixed digit keys selecting menu options instead of typing in plan mode permission prompt's text input.(v2.1.72)
- Fixed sandbox permission issues: certain file write operations incorrectly allowed without prompting, and output redirections to allowlisted directories (like `/tmp/claude/`) prompting unnecessarily.(v2.1.72)
- Fixed prompt cache invalidation in SDK `query()` calls, reducing input token costs up to 12x.(v2.1.72)
- Fixed Escape key becoming unresponsive after cancelling a query.(v2.1.72)
- Fixed double Ctrl+C not exiting when background agents or tasks are running.(v2.1.72)
- Fixed team agents to inherit the leader's model.(v2.1.72)
- Fixed "Always Allow" saving permission rules that never match again.(v2.1.72)
- Fixed several hooks issues: `transcript_path` pointing to the wrong directory for resumed/forked sessions, agent `prompt` being silently deleted from settings.json on every settings write, PostToolUse block reason displaying twice, async hooks not receiving stdin with bash `read -r`, and validation error message showing an example that fails validation.(v2.1.72)
- Fixed session crashes in Desktop/SDK when Read returned files containing U+2028/U+2029 characters.(v2.1.72)
- Fixed terminal title being cleared on exit even when `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` was set.(v2.1.72)
- Fixed several permission rule matching issues: wildcard rules not matching commands with heredocs, embedded newlines, or no arguments; `sandbox.excludedCommands` failing with env var prefixes; "always allow" suggesting overly broad prefixes for nested CLI tools; and deny rules not applying to all command forms.(v2.1.72)
- Fixed oversized and truncated images from Bash data-URL output.(v2.1.72)
- Fixed a crash when resuming sessions that contained Bedrock API errors.(v2.1.72)
- Fixed intermittent "expected boolean, received string" validation errors on Edit, Bash, and Grep tool inputs.(v2.1.72)
- Fixed multi-line session titles when forking from a conversation whose first message contained newlines.(v2.1.72)
- Fixed queued messages not showing attached images, and images being lost when pressing ↑ to edit a queued message.(v2.1.72)
- Fixed parallel tool calls where a failed Read/WebFetch/Glob would cancel its siblings — only Bash errors now cascade.(v2.1.72)
- VSCode: Fixed scroll speed in integrated terminals not matching native terminals.(v2.1.72)
- VSCode: Fixed Shift+Enter submitting input instead of inserting a newline for users with older keybindings.(v2.1.72)
- Fixed stdin freeze in long-running sessions where keystrokes stop being processed but the process stays alive(v2.1.71)
- Fixed a 5–8 second startup freeze for users with voice mode enabled, caused by CoreAudio initialization blocking the main thread after system wake(v2.1.71)
- Fixed startup UI freeze when many claude.ai proxy connectors refresh an expired OAuth token simultaneously(v2.1.71)
- Fixed forked conversations (/fork) sharing the same plan file, which caused plan edits in one fork to overwrite the other(v2.1.71)
- Fixed the Read tool putting oversized images into context when image processing failed, breaking subsequent turns in long image-heavy sessions(v2.1.71)
- Fixed false-positive permission prompts for compound bash commands containing heredoc commit messages(v2.1.71)
- Fixed plugin installations being lost when running multiple Claude Code instances(v2.1.71)
- Fixed claude.ai connectors failing to reconnect after OAuth token refresh(v2.1.71)
- Fixed claude.ai MCP connector startup notifications appearing for every org-configured connector instead of only previously connected ones(v2.1.71)
- Fixed background agent completion notifications missing the output file path, which made it difficult for parent agents to recover agent results after context compaction(v2.1.71)
- Fixed duplicate output in Bash tool error messages when commands exit with non-zero status(v2.1.71)
- Fixed Chrome extension auto-detection getting permanently stuck on "not installed" after running on a machine without local Chrome(v2.1.71)
- Fixed /plugin marketplace update failing with merge conflicts when the marketplace is pinned to a branch/tag ref(v2.1.71)
- Fixed /plugin marketplace add owner/repo@ref incorrectly parsing @ — previously only # worked as a ref separator(v2.1.71)
- Fixed duplicate entries in /permissions Workspace tab when the same directory is added with and without a trailing slash(v2.1.71)
- Fixed --print hanging forever when team agents are configured — the exit loop no longer waits on long-lived in_process_teammate tasks(v2.1.71)
- Fixed "❯ Tool loaded." appearing in the REPL after every ToolSearch call(v2.1.71)
- Fixed prompting for cd <cwd> && git ... on Windows when the model uses a mingw-style path(v2.1.71)
- Fixed API 400 errors when using ANTHROPIC_BASE_URL with a third-party gateway, ensuring tool search correctly detects proxy endpoints and disables tool_reference blocks(v2.1.70)
- Fixed API Error: 400 This model does not support the effort parameter when using custom Bedrock inference profiles or non-standard model identifiers(v2.1.70)
- Fixed empty model responses immediately after ToolSearch caused by server rendering tool schemas with system-prompt-style tags at the prompt tail(v2.1.70)
- Fixed prompt-cache bust occurring when an MCP server with instructions connects after the first turn(v2.1.70)
- Fixed Enter key inserting a newline instead of submitting when typing over a slow SSH connection(v2.1.70)
- Fixed clipboard corrupting non-ASCII text (CJK, emoji) on Windows/WSL by switching to PowerShell Set-Clipboard(v2.1.70)
- Fixed extra VS Code windows opening at startup on Windows when running from the VS Code integrated terminal(v2.1.70)
- Fixed voice mode failing on Windows native binary with "native audio module could not be loaded"(v2.1.70)
- Fixed push-to-talk not activating on session start when voiceEnabled: true was set in settings(v2.1.70)
- Fixed markdown links containing #NNN references incorrectly pointing to the current repository instead of the linked URL(v2.1.70)
- Fixed repeated "Model updated to Opus 4.6" notification when a project's .claude/settings.json had a legacy Opus model string pinned(v2.1.70)
- Fixed plugins showing as inaccurately installed in /plugin(v2.1.70)
- Fixed plugins showing "not found in marketplace" errors on fresh startup by auto-refreshing after marketplace installation(v2.1.70)
- Fixed /security-review command failing with unknown option merge-base on older git versions(v2.1.70)
- Fixed /color command lacking a way to reset to default; /color default, /color gray, /color reset, and /color none now restore the default color(v2.1.70)
- Fixed a performance regression in the AskUserQuestion preview dialog that re-ran markdown rendering on every keystroke in the notes input(v2.1.70)
- Fixed feature flags read during early startup never refreshing their disk cache, causing stale values to persist across sessions(v2.1.70)
- Fixed permissions.defaultMode settings values other than acceptEdits or plan being applied in Claude Code Remote environments (they are now ignored)(v2.1.70)
- Fixed skill listing being re-injected on every --resume, saving approximately 600 tokens per resume(v2.1.70)
- Fixed teleport marker not rendering in VS Code teleported sessions(v2.1.70)
Improvements in March 2026
- Improved PowerShell tool prompt with version-appropriate syntax guidance (5.1 vs 7+)(v2.1.88)
- Thinking summaries are no longer generated by default in interactive sessions; set `showThinkingSummaries: true` in settings to restore(v2.1.88)
- Auto mode denied commands now show a notification and appear in `/permissions` → Recent tab(v2.1.88)
- `/env` now applies to PowerShell tool commands (previously only affected Bash)(v2.1.88)
- `/usage` now hides redundant "Current week (Sonnet only)" bar for Pro and Enterprise plans(v2.1.88)
- Collapsed tool summary now shows "Listed N directories" for ls/tree/du instead of "Read N files"(v2.1.88)
- Image paste no longer inserts a trailing space(v2.1.88)
- Reduced startup event-loop stalls when many claude.ai MCP connectors are configured by extending macOS keychain cache from 5s to 30s.(v2.1.86)
- Reduced token overhead when mentioning files with @ by no longer JSON-escaping raw string content.(v2.1.86)
- Improved prompt cache hit rate for Bedrock, Vertex, and Foundry users by removing dynamic content from tool descriptions.(v2.1.86)
- Memory filenames in the "Saved N memories" notice now highlight on hover and open on click.(v2.1.86)
- Skill descriptions in the /skills listing are now capped at 250 characters to reduce context usage.(v2.1.86)
- Changed /skills menu to sort alphabetically for easier scanning.(v2.1.86)
- Auto mode now shows "unavailable for your plan" when disabled by plan restrictions (was "temporarily unavailable").(v2.1.86)
- Read tool now uses compact line-number format and deduplicates unchanged re-reads, reducing token usage.(v2.1.86)
- Added environment variables (`CLAUDE_CODE_MCP_SERVER_NAME` and `CLAUDE_CODE_MCP_SERVER_URL`) to MCP `headersHelper` scripts to allow one helper to serve multiple servers.(v2.1.85)
- MCP OAuth now follows RFC 9728 Protected Resource Metadata discovery for authorization server location.(v2.1.85)
- Tool parameters in OpenTelemetry `tool_result` events are now hidden unless `OTEL_LOG_TOOL_DETAILS=1` is set.(v2.1.85)
- Improved `@`-mention file autocomplete performance on large repositories.(v2.1.85)
- Improved PowerShell dangerous command detection.(v2.1.85)
- Improved scroll performance with large transcripts by replacing WASM yoga-layout with a pure TypeScript implementation.(v2.1.85)
- Reduced UI stutter when compaction triggers on large sessions.(v2.1.85)
- Added configuration via environment variables (`ANTHROPIC_DEFAULT_{OPUS,SONNET,HAIKU}_MODEL_SUPPORTS`, `_MODEL_NAME`, `_DESCRIPTION`) to override default model detection and customize the `/model` picker label.(v2.1.84)
- Added configuration via environment variable `CLAUDE_STREAM_IDLE_TIMEOUT_MS` to configure the streaming idle watchdog threshold.(v2.1.84)
- Capped MCP tool descriptions and server instructions at 2KB to prevent OpenAPI-generated servers from bloating context.(v2.1.84)
- Deduplicated MCP servers configured both locally and via claude.ai connectors; the local config now wins.(v2.1.84)
- Surfaced a notification after ~45 seconds for background bash tasks that appear stuck on an interactive prompt.(v2.1.84)
- Token counts ≥1M now display in a more readable format (e.g., "1.5m" instead of "1512.6k").(v2.1.84)
- Improved detection for dangerous removals of Windows drive roots (`C:`, `C:\Windows`, etc.).(v2.1.84)
- Improved interactive startup by ~30ms by running `setup()` in parallel with slash command and agent loading.(v2.1.84)
- Improved startup for `claude "prompt"` with MCP servers; the REPL now renders immediately instead of blocking until all servers connect.(v2.1.84)
- Improved Remote Control to show a specific reason when blocked instead of a generic "not yet enabled" message.(v2.1.84)
- Improved p90 prompt cache rate.(v2.1.84)
- Reduced scroll-to-top resets in long sessions by making the message window immune to compaction and grouping changes.(v2.1.84)
- Reduced terminal flickering when animated tool progress scrolls above the viewport.(v2.1.84)
- Changed issue/PR references to only become clickable links when written as `owner/repo#123`; bare `#123` is no longer auto-linked.(v2.1.84)
- Hidden slash commands unavailable for the current auth setup (e.g., `/voice`, `/mobile`).(v2.1.84)
- Added rate limit warning banner with usage percentage and reset time in VSCode.(v2.1.84)
- Made the stats screenshot (Ctrl+S in /stats) work in all builds and 16× faster.(v2.1.84)
- Enabled configuration of independent policy fragments via the new `managed-settings.d/` drop-in directory, which merges alphabetically with `managed-settings.json`.(v2.1.83)
- Added `CwdChanged` and `FileChanged` hook events to support reactive environment management (e.g., direnv).(v2.1.83)
- Added the `sandbox.failIfUnavailable` setting to force an error exit if the sandbox is enabled but fails to start, preventing unsandboxed execution.(v2.1.83)
- Added the `disableDeepLinkRegistration` setting to prevent registration of the `claude-cli://` protocol handler.(v2.1.83)
- Enabled stripping of Anthropic and cloud provider credentials from subprocess environments via `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1`.(v2.1.83)
- Rebound the keybinding for stopping all background agents from `Ctrl+F` to `Ctrl+X Ctrl+K` to prevent shadowing the readline forward-char command.(v2.1.83)
- Improved Bedrock SDK cold-start latency by overlapping profile fetching with other initialization tasks.(v2.1.83)
- Improved memory usage and startup latency for `--resume` operations on large sessions.(v2.1.83)
- Improved plugin startup by loading commands, skills, and agents from the disk cache instead of re-fetching them.(v2.1.83)
- Improved Remote Control session titles; AI-generated titles now appear within seconds of the first message.(v2.1.83)
- Improved `WebFetch` identification to use `Claude-User` so site operators can recognize and allowlist traffic via `robots.txt`.(v2.1.83)
- Reduced `WebFetch` peak memory usage when processing large web pages.(v2.1.83)
- Reduced the frequency of scrollback resets in long sessions from once per turn to once per approximately 50 messages.(v2.1.83)
- Achieved faster startup time for `claude -p` when using unauthenticated HTTP/SSE MCP servers (saving ~600ms).(v2.1.83)
- Ensured that bash ghost-text suggestions now immediately include just-submitted commands.(v2.1.83)
- Increased the non-streaming fallback token cap from 21k to 64k and increased the timeout from 120s to 300s (local) to reduce truncation of fallback requests.(v2.1.83)
- Implemented automatic restoration of interrupted input so users can edit and resubmit prompts before any response is generated.(v2.1.83)
- Enabled `/status` command to work while Claude is actively responding, instead of being queued until the turn finishes.(v2.1.83)
- Suppressed plugin MCP servers that duplicate an organization-managed connector, preventing a second connection from running.(v2.1.83)
- Ensured Linux respects `XDG_DATA_HOME` when registering the `claude-cli://` protocol handler.(v2.1.83)
- [VSCode] The spinner now turns red with "Not responding" if the backend has not responded after 60 seconds.(v2.1.83)
- Resuming a session that was in a worktree now switches back to that worktree.(v2.1.81)
- Improved MCP read/search tool calls to collapse output into a single "Queried {server}" line (expandable via Ctrl+O).(v2.1.81)
- Improved '!' bash mode discoverability by having Claude suggest it when an interactive command is needed.(v2.1.81)
- Improved plugin freshness by ensuring ref-tracked plugins re-clone on every load to pick up upstream changes.(v2.1.81)
- Improved Remote Control session titles to refresh automatically after your third message.(v2.1.81)
- Updated MCP OAuth to support Client ID Metadata Document (CIMD / SEP-991) for servers lacking Dynamic Client Registration.(v2.1.81)
- Changed plan mode to hide the "clear context" option by default (can be restored via configuration).(v2.1.81)
- Disabled line-by-line response streaming on Windows (including WSL in Windows Terminal) due to observed rendering issues.(v2.1.81)
- Improved responsiveness of `@` file autocomplete in large git repositories(v2.1.80)
- Improved `/effort` to display the resolved auto effort level, matching the status bar indicator(v2.1.80)
- Improved `/permissions` so that Tab and arrow keys now switch tabs from within a list(v2.1.80)
- Improved background tasks panel; the left arrow now closes the panel from the list view(v2.1.80)
- Simplified plugin install tips to use a single `/plugin install` command instead of a two-step flow(v2.1.80)
- Reduced memory usage on startup in large repositories (saving approximately 80 MB on 250k-file repos)(v2.1.80)
- Improved startup memory usage by approximately 18MB across all scenarios.(v2.1.79)
- Improved non-streaming API fallback by implementing a 2-minute per-attempt timeout to prevent sessions from hanging indefinitely.(v2.1.79)
- Updated `CLAUDE_CODE_PLUGIN_SEED_DIR` to support multiple seed directories separated by the platform's path delimiter (e.g., `:` on Unix, `;` on Windows).(v2.1.79)
- Terminal notifications (iTerm2/Kitty/Ghostty popups, progress bar) now reach the outer terminal when running inside tmux with `set -g allow-passthrough on`(v2.1.78)
- Improved memory usage and startup time when resuming large sessions(v2.1.78)
- Increased default maximum output token limits for Claude Opus 4.6 to 64k tokens, and the upper bound for Opus 4.6 and Sonnet 4.6 models to 128k tokens.(v2.1.77)
- Improved the /copy command to accept an optional index.(v2.1.77)
- Improved Esc key to abort in-flight non-streaming API requests.(v2.1.77)
- Improved claude plugin validate to check skill, agent, and command frontmatter plus hooks/hooks.json, catching YAML parse errors and schema violations.(v2.1.77)
- Implemented background bash tasks to be killed if output exceeds 5GB, preventing runaway processes from filling the disk.(v2.1.77)
- Improved headless mode plugin installation to compose correctly with CLAUDE_CODE_PLUGIN_SEED_DIR.(v2.1.77)
- Added a notice to show when apiKeyHelper takes longer than 10s, preventing it from blocking the main loop.(v2.1.77)
- Enabled SendMessage to auto-resume stopped agents in the background instead of returning an error.(v2.1.77)
- [VSCode] Improved plan preview tab titles to use the plan's heading instead of "Claude's Plan".(v2.1.77)
- [VSCode] When option+click does not trigger native selection on macOS, the footer now points to the macOptionClickForcesSelection setting.(v2.1.77)
- Achieved faster startup on macOS (~60ms) by reading keychain credentials in parallel with module loading.(v2.1.77)
- Achieved faster --resume on fork-heavy and very large sessions — up to 45% faster loading and ~100-150MB less peak memory.(v2.1.77)
- Improved `--worktree` startup performance by reading git refs directly and skipping redundant `git fetch` when the remote branch is already available locally(v2.1.76)
- Improved background agent behavior by preserving partial results in the conversation context when a background agent is killed(v2.1.76)
- Improved model fallback notifications to be always visible with human-friendly model names, instead of being hidden behind verbose mode(v2.1.76)
- Improved blockquote readability on dark terminal themes by using italic text with a left bar instead of dim styling(v2.1.76)
- Improved stale worktree cleanup by automatically cleaning up worktrees left behind after an interrupted parallel run(v2.1.76)
- Improved Remote Control session titles to be derived from the first prompt instead of showing "Interactive session"(v2.1.76)
- Improved `/voice` to show the dictation language on enable and warn when the `language` setting is not supported for voice input(v2.1.76)
- Updated `--plugin-dir` to only accept one path to support subcommands; users must now use repeated `--plugin-dir` for multiple directories(v2.1.76)
- Changed --plugin-dir so local dev copies now override installed marketplace plugins with the same name (unless that plugin is force-enabled by managed settings)(v2.1.74)
- [VSCode] Improved scroll wheel responsiveness in the integrated terminal with terminal-aware acceleration(v2.1.74)
- Improved IDE detection speed at startup(v2.1.73)
- Improved clipboard image pasting performance on macOS(v2.1.73)
- Improved voice mode to automatically retry transient connection failures during rapid push-to-talk re-press(v2.1.73)
- Improved the Remote Control spawn mode selection prompt with better context(v2.1.73)
- Deprecated `/output-style` command — use `/config` instead. Output style is now fixed at session start for better prompt caching(v2.1.73)
- Changed tool search to bypass the third-party proxy gate when the environment variable is set (replaces `CLAUDE_CODE_PROXY_SUPPORTS_TOOL_REFERENCE`, now removed).(v2.1.72)
- Improved `/config` — Escape now cancels changes, Enter saves and closes, Space toggles settings.(v2.1.72)
- Improved up-arrow history to show current session's messages first when running multiple concurrent sessions.(v2.1.72)
- Improved voice input transcription accuracy for repo names and common dev terms (regex, OAuth, JSON).(v2.1.72)
- Improved marketplace clone failure messages to show diagnostic info even when git produces no stderr.(v2.1.72)
- Improved `claude plugin validate` to explain that marketplace.json source paths are relative to the repo root when rejecting `../` paths.(v2.1.72)
- Improved bash command parsing by switching to a native module — faster initialization and no memory leak.(v2.1.72)
- Reduced false-positive bash permission prompts — tree-sitter parsing now handles `find -exec`, variable assignments, command substitutions, and many other patterns that previously triggered unnecessary prompts. Also fixed tree-sitter not loading in npm-installed versions.(v2.1.72)
- Reduced bundle size by ~510 KB.(v2.1.72)
- Changed CLAUDE.md HTML comments (`<!-- ... -->`) to be hidden from Claude when auto-injected. Comments remain visible when read with the Read tool.(v2.1.72)
- Simplified effort levels to low/medium/high (removed max) with new symbols (○ ◐ ●) and a brief notification instead of a persistent icon. Use `/effort auto` to reset to default.(v2.1.72)
- Improved CPU utilization in long sessions.(v2.1.72)
- Improved startup time by deferring native image processor loading to first use(v2.1.71)
- Improved bridge session reconnection to complete within seconds after laptop wake from sleep, instead of waiting up to 10 minutes(v2.1.71)
- Improved /plugin uninstall to disable project-scoped plugins in .claude/settings.local.json instead of modifying .claude/settings.json, so changes don't affect teammates(v2.1.71)
- Improved plugin-provided MCP server deduplication — servers that duplicate a manually-configured server are now skipped(v2.1.71)
- Updated /debug to toggle debug logging on mid-session, since debug logs are no longer written by default(v2.1.71)
- Removed startup notification noise for unauthenticated org-registered claude.ai connectors(v2.1.71)
- Improved error message when microphone captures silence to distinguish it from "no speech detected"(v2.1.70)
- Improved compaction to preserve images in the summarizer request, allowing prompt cache reuse for faster and cheaper compaction(v2.1.70)
- Improved /rename command to work while Claude is processing, instead of being silently queued(v2.1.70)
- Reduced prompt input re-renders during turns by approximately 74%(v2.1.70)
- Reduced startup memory usage by approximately 426KB for users without custom CA certificates(v2.1.70)
- Reduced Remote Control /poll rate to once per 10 minutes while connected (down from 1–2s), cutting server load approximately 300x (reconnection is unaffected)(v2.1.70)
All Releases in March 2026
v2.1.884 features30 fixesThis release introduces significant stability improvements for long sessions, fixing numerous memory leaks, rendering issues, and tool execution bugs across various operating systems and environments. Key new capabilities include flicker-free rendering options and a new `PermissionDenied` hook for better auto-mode control. Users will notice fixes for issues related to large file editing, prompt history corruption, and improved behavior in PowerShell environments.
v2.1.871 fixThis release focuses on a critical fix for message delivery within the Cowork Dispatch system. Users should now see reliable message transmission in that module.
v2.1.862 features16 fixesThis release focuses heavily on stability and efficiency, fixing numerous bugs related to session handling, file operations, and UI responsiveness across various platforms. Key improvements include reduced token overhead for file mentions and better performance during startup when many connectors are configured.
v2.1.856 features17 fixesThis release introduces significant enhancements to hook execution, allowing conditional running based on permission rules and enabling headless integrations via PreToolUse hooks. Several critical bugs related to session compaction, plugin management, and OpenTelemetry logging have been resolved. Performance improvements were also made, particularly around scrolling large transcripts and file autocomplete.
v2.1.849 features14 fixesThis release introduces several new configuration options via environment variables for advanced model pinning and streaming timeouts, alongside the opt-in preview of the PowerShell tool for Windows. Key fixes address issues with voice input, terminal key responsiveness, and startup performance, while general improvements enhance readability for large token counts and streamline MCP server configuration.
v2.1.835 features32 fixesThis release introduces significant enhancements for environment management, including new hook events and policy configuration options, alongside a highly requested transcript search feature. Users will also benefit from improved startup performance, better handling of large file diffs, and fixes for several stability issues across macOS and Linux, particularly concerning voice mode and remote sessions.
v2.1.812 features18 fixesThis release introduces a new --bare flag for scripted calls and enables channel servers to relay tool approval prompts directly to your phone. Several critical bugs were fixed, including issues with OAuth token refreshing across concurrent sessions, voice mode error handling, and various race conditions affecting background tasks and clipboard operations. Performance and UX have also been improved, particularly around plugin updates and Remote Control session management.
v2.1.805 features6 fixesThis release introduces several new configuration and integration features, including inline plugin definitions and support for overriding model effort via frontmatter. Key fixes address issues with session restoration after parallel tool calls and resolve WebSocket failures related to TLS fingerprinting. Performance improvements include reduced startup memory usage for large repositories.
v2.1.794 features11 fixesThis release introduces new authentication options for API billing and a `/remote-control` feature in VS Code to bridge sessions to the web interface. Several critical bugs have been resolved, including fixes for subprocess hanging, Ctrl+C in print mode, and issues with voice activation and session hook firing. Performance improvements include reduced startup memory usage and better handling of non-streaming API fallbacks.
v2.1.785 features19 fixesThis release introduces several new developer capabilities, including a `StopFailure` hook and persistent plugin state via the `${CLAUDE_PLUGIN_DATA}` variable. Users will benefit from line-by-line response streaming and significant fixes addressing issues with sandboxing, tool permissions, and conversation history truncation. Performance has also been improved for resuming large sessions.
v2.1.774 features29 fixesThis release significantly increases the maximum output token limits for Opus and Sonnet models, reaching up to 128k tokens for some configurations. Numerous critical bugs were fixed, including issues related to compound command permissions, memory leaks during long sessions, and various terminal/IDE integration problems. Performance improvements include faster startup on macOS and quicker session resume times.
v2.1.767 features20 fixesThis release introduces significant new capabilities, including MCP elicitation support for structured mid-task input and new developer hooks for response interception. Numerous bugs have been resolved across areas like slash commands, voice mode, and session management, alongside performance improvements for `--worktree` startup and better handling of background agents.
v2.1.75v2.1.742 features13 fixesThis release introduces actionable suggestions via the /context command to help optimize memory and context usage, alongside a new setting to customize auto-memory storage location. Several critical bugs were resolved, including fixes for memory leaks, issues with MCP OAuth refresh tokens, and improved rendering for RTL text across various terminals.
v2.1.735 features16 fixesThis release introduces the ability to map model picker entries to custom provider model IDs using the new `modelOverrides` setting. Several critical bugs related to agent deadlocks, permission prompt freezes, and incorrect model version selection have been resolved. Additionally, the Up arrow interaction after interrupting Claude has been improved for a smoother conversation rewind experience.
v2.1.7210 features32 fixesThis release introduces several new capabilities, including direct file writing from `/copy` and an enhanced `/plan` command that accepts descriptions. Significant stability improvements were made, fixing numerous bugs related to voice input, plugin installation, session resumption, and permission handling across the system. Users will also benefit from performance gains due to improved bash parsing and reduced bundle size.
v2.1.714 features18 fixesThis release introduces powerful new scheduling capabilities with the /loop command and cron tools for recurring prompts. Numerous bugs have been resolved, particularly around session stability, startup freezes related to voice mode and OAuth refresh, and issues with forked conversations and plugin management. Performance has also seen improvements, including faster startup by deferring image processor loading.
v2.1.703 features20 fixesThis release focuses heavily on stability and correctness across various environments, fixing numerous bugs related to API calls, UI interactions, and platform-specific issues on Windows and VS Code. Key new additions include enhanced session management within VS Code via a new activity bar icon and a dedicated markdown view for reviewing plans.