Claude Code changelog changedchangelog
Nearest release: v2.1.251, published 3 hours before this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Recorded here
Lines+74added
Lines−0removed
From line
6
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits70to this page, all time
The whole hunk
from line 6, old and new numbered
/
This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.
from line 6
66
77Run `claude --version` to check your installed version.
88
9<Update label="2.1.251" description="August 28, 2026">
10 * Added `PreModelSwitch` and `PostModelSwitch` hook events (block, confirm, or annotate a model switch); `SessionStart` resume hooks now receive session staleness and the estimated re-cache cost
11 * Added live streaming of a foreground subagent's tool calls and results to Remote Control clients (background subagents, the default, still show status only)
12 * Added a Spend limit bar to `/usage` and a `rate_limits.spend_limit` status line field for developers behind a Claude apps gateway with spend limits
13 * Added a per-session prompt-cache line to `/cost` (hit ratio, misses, tokens re-cached, warm/cold) and a matching `prompt_cache` object for status line scripts
14 * Added `attach`, `logs`, `stop`, `respawn`, and `rm` to `claude --help`; the `--resume` message for a running background session now names the exact `claude attach <id>` command
15 * Fixed file tools (Read, Write, Edit) following a symlink swapped inside the working directory after the permission check, which could read or write outside the approved location
16 * Fixed plugin commands declared in a marketplace entry being able to point outside the plugin directory; such paths are now rejected with a path-traversal error
17 * Fixed project settings being able to enable detailed beta tracing or raw API body logging, and a lower-scope beta tracing endpoint bypassing an OTLP collector pinned by managed settings or a host app
18 * Fixed the Workflow tool reading (and quoting in errors) a `scriptPath` outside what the session may read before the permission check ran
19 * Fixed Grep and Glob not applying `Read(...)` deny rules to files reached through a symlinked search path
20 * Fixed conversations getting stuck on "text content blocks must be non-empty" errors after a turn where the model produced only thinking
21 * Fixed the first launch on a fresh install starting in default mode instead of auto mode for accounts whose startup default is auto mode
22 * Fixed Opus 5 requests failing with "effort … is not supported when thinking is disabled" when effort was xhigh/max and thinking was turned off; effort is now sent as `high` in that case
23 * Fixed replying to a message Claude Desktop delivered from another session: `SendMessage` to that session id now delivers through Claude Desktop instead of failing with "not reachable"
24 * Fixed TUI lag with many parallel subagents: per-second progress ticks now replace their predecessor instead of piling up in the transcript
25 * Fixed agent teams: a teammate's final answer not reaching the team lead — it now arrives in the idle notification instead of a content-free "available" notice
26 * Fixed background subagents being unable to reply to a message from an unnamed sibling or parent agent (`from` was the agent type, which is not an address)
27 * Fixed managed-settings `disableAutoMode` arriving mid-session not moving an already-running auto-mode session back to default mode
28 * Fixed a "switch to Opus 1M for 5x more context" tip that appeared even when the current Opus model already has a 1M context window
29 * Fixed Claude apps gateway sessions treating a stored Anthropic profile (e.g. a Console sign-in) as active: listing it in `/status` and retrying gateway 401s with it, though requests never use it
30 * Fixed cloud sessions telling Claude the model had changed when the host was only setting the session's initial model
31 * Fixed Remote Control reporting a failure when an organization's policy disables it; it now shows a single quiet notice instead
32 * Fixed `/mcp reconnect` on Remote Control showing a generic withheld-detail error instead of the real remedy when a server was disabled in another session
33 * Fixed `--input-format stream-json`: client-injected assistant tool calls sent without a message id were merged into the first one and their results lost, including when resuming older sessions
34 * Fixed session transcripts being silently overwritten when a directory change relocated a session onto an existing same-ID transcript
35 * Fixed background sessions and their subagents being unable to edit files inside a git worktree they created with `git worktree add`
36 * Fixed background sessions occasionally starting without any plugin skills (and staying that way) when another Claude Code process was refreshing the plugin marketplace at the same moment
37 * Fixed selecting text in an opened background session inside tmux over SSH: it now copies to the tmux buffer like a foreground session instead of falling back to OSC 52
38 * Fixed SDK and cloud sessions hanging indefinitely when an SDK MCP server's handshake acknowledgment was lost; the wait now times out after 70 seconds and marks only that server failed
39 * Fixed self-hosted runner leaving a stuck session's Bash tool processes running after the session was force-stopped
40 * Fixed `/usage-credits` for Team and Enterprise members whose admin set the org's usage-credit limit to \$0: it now offers to ask the admin instead of saying a cap was reached
41 * Fixed `--worktree --tmux` with a merge-request number on a gitlab.com origin trying a doomed GitHub-style fetch first instead of fetching the GitLab ref directly
42 * Fixed Ctrl+G failing with "Emacs quit unexpectedly" in background sessions for editors that open `/dev/tty`, such as `emacs -nw` and `micro`
43 * Fixed an `additionalDirectories` entry containing a null byte crashing startup, or breaking `/add-dir` and later settings updates when it came from an SDK host, IDE, or hook; it is now skipped
44 * Fixed the MCP server menu's copy shortcut: it now says how the sign-in URL was copied instead of always claiming success
45 * Fixed italic text (such as the session recap line) rendering as highlighted blocks in GNU screen and in tmux sessions using a `screen` terminal type
46 * Fixed `claude mcp add --header` and `claude mcp add-json` help text naming the wrong transports
47 * Fixed `claude ultrareview` and `/ultrareview` waiting the full 30 minutes when the cloud session fails to start; they now stop early and report the reason
48 * Fixed Bash permission checks auto-approving commands that assign an arithmetic expression to an integer shell variable (e.g. `OPTIND=1/0`, `RANDOM=2+2`); these now prompt for approval
49 * Fixed backgrounded sessions (`←`, `/background`, `--bg`) losing a Vertex/Bedrock gateway (`ANTHROPIC_*_BASE_URL` + `CLAUDE_CODE_SKIP_*_AUTH`) exported in the shell, so every request failed
50 * Fixed `claude --bg --model fable` on Max plans stopping to ask for usage credits while the interactive session on the same account still had Fable allowance
51 * Fixed the one-time "make auto mode your default" offer appearing in unattended sessions (e.g. agent-team teammate panes), where a stray keypress could accept it unread
52 * Fixed the managed-settings approval prompt re-appearing after signing in again to the same Claude apps gateway when the settings are unchanged
53 * Fixed disabled `/bug` and `/share` reporting that `/feedback` was disabled; tips, `/help`, and refusal messages no longer suggest `/feedback` when an org policy or env var turns it off
54 * Fixed cloud session creation advising GitHub setup after a transient GitHub connection failure — the message now says to retry instead
55 * Improved CPU usage during turns in interactive sessions by cutting redundant UI re-renders
56 * Improved install size: the native binary is about 5 MB smaller
57 * Improved cloud sessions: when the session's network proxy drops a connection during a Bash command, the tool result now names the host and reason instead of only "connection reset"
58 * Improved `/schedule` to explain that MCP servers configured in Claude Code can't be attached to cloud routines, instead of a bare "No MCP connectors" message
59 * Improved framing of messages from your own subagents: Claude is told the sender is a worker inside this session, not an unrelated Claude session
60 * Improved the prompt placeholder to read "Message @name…" while viewing a background subagent or fork transcript opened from the subagent panel or `/tasks`
61 * Improved sanitization of MCP server names in error messages, menus, and command results
62 * Improved Amazon Bedrock session start under `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` (e.g. Claude Desktop): a session given a Bedrock model ID or ARN no longer waits for inference-profile discovery
63 * Improved the managed settings approval dialog to list only the settings that changed since you last approved them
64 * Improved retry when the model's tool call is malformed: the broken output is now dropped from the retry context, including on Bedrock, Vertex, and Foundry
65 * Changed `/radio` to be available on Bedrock, Vertex AI, Foundry, and Claude Platform on AWS, and when telemetry is disabled
66 * Changed Claude in Chrome so browser actions always go through Claude Code's permission checks, including in sessions with telemetry disabled, which previously used the Chrome extension's own prompts
67 * Changed `CLAUDE_CODE_SUBAGENT_MODEL` to set the default subagent model rather than override everything: an agent definition's `model:` and an explicit per-spawn model now take precedence over it
68 * Changed the default commit trailer to `Co-Authored-By: Claude Code` when the active model isn't a recognized Claude model (e.g. third-party models behind a custom `ANTHROPIC_BASE_URL`)
69 * Changed the default model for seat-based Enterprise subscriptions to Opus 5, matching other premium plans
70 * Changed `/effort` to save your default effort level per model, so each model keeps its own setting when you switch
71 * Changed analytics to no longer turn off before sign-in solely because managed settings force gateway login (or cannot be read); they stay off once signed in to the gateway or via `DISABLE_TELEMETRY`
72 * Changed the footer PR badge on Bedrock, Vertex, and Foundry, and when telemetry is off, to call the GitHub API directly (via `gh auth token`, `GH_TOKEN`, or `GITHUB_TOKEN`) instead of `gh pr view`
73 * Changed how Bash command output files are created and read back when commands run in the sandbox, so a sandboxed command cannot redirect or replace them
74 * Changed plugin/LSP install suggestions and the auto-mode default offer to wait until you've sent or cleared what you're typing, so the Enter that sends your prompt can't answer them
75 * Changed server-managed settings that terminate sandbox TLS, route sandbox traffic through your own proxy, inject credentials, or weaken sandbox isolation to require approval before they apply
76 * Changed `ANTHROPIC_CUSTOM_HEADERS` from managed or project settings to require approval when it sets a credential, org/tenant, routing, or API-behavior header (e.g. `Authorization`, `Host`)
77 * Changed project-level `.claude/settings.json` `env` to no longer set `CLAUDE_CONFIG_DIR`, `CLAUDE_CODE_TMPDIR`, or `TMPDIR`/`TMP`/`TEMP`; set them in your shell, user, or managed settings instead
78 * Removed syntax highlighting for six rarely used languages (1c, gml, isbl, mathematica, maxima, sqf); the binary is 2.5 MB smaller
79 * \[VSCode] Fixed the sign-in screen's "Bedrock, Foundry, or Vertex" button opening the docs at the top of the page instead of the third-party provider setup section
80 * \[VSCode] Changed the Remote Control banner to a footer pill (shown while Remote Control is on or has failed) that opens the session on claude.ai/code; turn it on or off with `/remote-control`
81</Update>
82
983<Update label="2.1.250" description="August 28, 2026">
1084 * Bug fixes and reliability improvements
1185</Update>
from line 2058
19842058 * Fixed a regression where a custom API gateway could receive the user's Anthropic OAuth credential instead of the gateway's own token
19852059 * Fixed subagent (Agent tool) frontmatter MCP servers ignoring `--strict-mcp-config`, `--bare`, remote mode, enterprise managed MCP config, and managed-settings MCP server allow/deny policies
19862060 * `--strict-mcp-config` no longer strips inline `mcpServers` from explicitly-passed agent definitions (`--agents` / SDK `agents`), and blocked subagent MCP servers now surface a visible warning
1987 * Fixed the Windows PowerShell installer reporting "Installation complete!" when installation actually failed
1988 * Fixed `claude update` installing the latest version instead of the configured release channel's version for npm installations
1989 * Fixed excessive memory usage (multiple GB) when resuming a session by transcript file path on machines with many stored sessions
1990 * Fixed `claude agents` and `claude --bg` running on a stale daemon started before binary-takeover support, even after upgrading
1991 * Fixed a hang where the CLI could fail to exit when stdin was closed without EOF in stream-json mode, leaving a stale session marker behind
1992 * Fixed malformed `file://` links in Claude's responses not being clickable in the terminal
1993 * Fixed `claude --help` rendering unwrapped output on terminals narrower than 92 columns
1994 * Fixed MCP tool progress notifications not rendering in the collapsed tool view
1995 * Fixed `Agent` tool with `subagent_type: 'claude'` running in an undocumented temporary worktree, which could silently discard outputs written to gitignored paths
1996 * `/bg` while Claude is responding now continues the response in the background session instead of dropping it
1997 * Fixed `/btw` keyboard shortcuts becoming unresponsive in background sessions while a task is running
1998 * Fixed background sessions writing temp files to `$CLAUDE_JOB_DIR` triggering a "sensitive file" permission prompt
1999 * Fixed recovering a background agent whose working directory was deleted showing a truncated stack trace instead of a clear error message
2000 * Fixed `EnterWorktree` not being available immediately in background sessions (previously required `ToolSearch` first)
2001 * Fixed `cmd+k` in iTerm2/Terminal.app not repainting attached background sessions
2002 * Fixed the IME candidate window appearing at the bottom of the screen instead of next to the input caret in attached background sessions on Windows
2003 * Fixed background-color bleed when attaching to a background agent from 256-color-only terminals after the agent had rendered file diffs
2004 * Fixed `/copy` and copy-on-select silently failing to update the system clipboard when attached to a background session inside tmux
2005 * Fixed opening `claude agents` with Remote Control enabled leaving zombie session entries on the Code tab after exiting
2006 * Fixed `/rename` in background sessions not updating the session banner immediately
2007 * Fixed Windows update rollback: if a Windows update fails, Claude Code now restores the original executable by copy and tells you how to recover
2008 * \[VSCode] Fixed Claude Code processes not shutting down cleanly when VS Code closed on Windows, causing false "unclean exit" reports and orphaned MCP servers
2009 * `/model` now saves your selection as the default for new sessions (matching the IDE). Press `s` in the picker to switch models for the current session only.
2010 * If you customized the `modelPicker:setAsDefault` keybinding, rename it to `modelPicker:thisSessionOnly` in keybindings.json (the `d` action was replaced by `s`)
2011</Update>
2012
2013<Update label="2.1.152" description="May 27, 2026">
2014 * `/code-review --fix` now applies review findings to your working tree after the review, surfacing reuse, simplification, and efficiency suggestions; `/simplify` now invokes `/code-review --fix`
2015 * Skills and slash commands can now set `disallowed-tools` in frontmatter to remove tools from the model while the skill is active
2016 * Added `/reload-skills` command to re-scan skill directories without restarting the session
2017 * `SessionStart` hooks can now return `reloadSkills: true` to re-scan skill directories, making skills installed by the hook available in the same session
2018 * `SessionStart` hooks can now set the session title via `hookSpecificOutput.sessionTitle` on startup and resume
2019 * Added a `MessageDisplay` hook event that lets hooks transform or hide assistant message text as it is displayed
2020 * Added `pluginSuggestionMarketplaces` managed setting: admins can allowlist org marketplaces whose plugins may be suggested via context-aware tips
2021 * `claude plugin marketplace remove` now accepts `--scope user|project|local` for symmetry with `marketplace add`, `install`, and `uninstall`
2022 * Claude Code now switches to your configured `--fallback-model` for the rest of the session when the primary model is not found, instead of failing every request
2023 * Auto mode no longer requires opt-in consent
2024 * Vim mode: `/` in NORMAL mode now opens reverse history search (like Ctrl+R), matching bash/zsh vi-mode
2025 * The `/usage` breakdown now includes large session files; files are scanned with a streaming read so memory usage stays flat
2026 * Thinking summaries in the collapsed group now stay readable for at least 3 seconds, render as markdown, and cap at 10 lines (`Ctrl+O` shows the full thinking)
2027 * In fullscreen mode, the "Thinking for Ns" indicator now counts up live while the model is thinking, and keeps its value if you interrupt mid-thought
2028 * Simplified the Workflow tool's inline progress display — live agent counts now show only in the persistent workflow status row below the prompt
2029 * The post-response timer now shows "Waiting for N background agents/workflows to finish" when backgrounded agents or workflows are still running, and reports the cumulative time once their results are processed
2030 * Added the session entrypoint as an OpenTelemetry metric attribute (`app.entrypoint`, opt-in via `OTEL_METRICS_INCLUDE_ENTRYPOINT=true`)
2031 * Fixed terminal styling degrading in very long sessions by recycling the renderer's style pool
2032 * Fixed the sandbox-enabled warning not appearing in condensed startup mode — it now shows in every layout
2033 * Fixed the loading spinner showing "still thinking"/"almost done thinking" while a tool is running, and reset the thinking status to "thinking" after each tool
2034 * Fixed focus mode showing a spurious "N messages hidden" count on turns with no hidden activity
2035 * Fixed clicking a link inside an expanded tool result collapsing the section instead of opening the link
2036 * Fixed markdown table cell borders inheriting the color of inline code, wrapped continuation lines losing their style, and empty header cells showing a label in the narrow-terminal stacked layout
2037 * Fixed plugin MCP servers with the same command but different environment variables being incorrectly deduplicated
2038 * Fixed `/doctor` reporting "marketplace not found" or "plugin not found" for stale `enabledPlugins` entries referencing removed marketplaces or dropped plugins
2039 * Fixed plugins that track a git branch silently no longer receiving updates after the plugin registry was rebuilt
2040 * Fixed remote MCP servers failing to connect in Claude Code Remote sessions when the egress proxy is enabled
2041 * Fixed the effort-change confirmation dialog appearing when the conversation has no messages or when switching between effort levels that resolve to the same underlying value
2042 * Fixed the Agent tool description referencing an agent list that is never delivered when running with `--bare` or with attachments disabled
2043 * Fixed a background worker crash in `claude agents` when accepting a stale permission prompt after a subagent was cancelled
2044 * Fixed `cache_creation_input_tokens` reporting as 0 in transcript and result usage when the API reports cache writes only via the nested `cache_creation` breakdown
2045 * Fixed the PushNotification tool incorrectly reporting "Mobile push not sent (Remote Control inactive)" in SDK-hosted sessions when Remote Control is enabled
2046 * Fixed sessions getting stuck after a model or login switch left stale thinking-block signatures in history; now stripped proactively with a retry safety-net
2047</Update>
2048
2049<Update label="2.1.150" description="May 23, 2026">
2050 * Internal infrastructure improvements (no user-facing changes)
2051</Update>
2052
2053<Update label="2.1.149" description="May 22, 2026">
2054 * `/usage` now shows a per-category breakdown of what's driving your limits usage — skills, subagents, plugins, and per-MCP-server cost
2055 * `/diff` detail view can now be scrolled with the keyboard (arrows, `j`/`k`, `PgUp`/`PgDn`, `Space`, `Home`/`End`)
2056 * Markdown output now renders GFM task list checkboxes (`- [ ] todo` / `- [x] done`) instead of plain bullets
2057 * Enterprise: added the `allowAllClaudeAiMcps` managed setting to load claude.ai cloud MCP connectors alongside `managed-mcp.json`
2058 * Fixed a PowerShell permission bypass: built-in `cd` functions (`cd..`, `cd\`, `cd~`, `X:`) changed the working directory undetected, letting a later command read outside the workspace
2059 * Fixed the sandbox write allowlist in git worktrees covering the entire main repository root instead of only the shared `.git` directory (with `hooks/` and `config` denied)
2060 * Fixed PowerShell prefix/wildcard allow rules (e.g. `PowerShell(dotnet.exe build *)`) not pre-approving native executables and scripts
2061 * Fixed a permission-analysis gap where the parser trusted stale variable-tracking values for `PWD`/`OLDPWD`/`DIRSTACK` across `cd`/`pushd`/`popd`
2062 * Fixed `find` in the Bash tool exhausting the macOS system file/vnode table and crashing the host on large directory trees
2063 * Fixed the managed-settings approval dialog leaving the terminal frozen after accepting at startup
2064 * Fixed `/ultraplan` and remote session creation failing with "Could not capture uncommitted changes" when the working tree has no real changes
2065 * Fixed `otelHeadersHelper` failing silently when the script path contains spaces; helper failures are now reported in `/doctor` and the debug log
2066 * Fixed the thinking spinner staying amber across tool calls and onto fresh thinking bursts
2067 * Fixed collapsed Bash output reporting the wrong hidden-line count for outputs with many short lines
2068 * Fixed slash-command argument-hint clipping trailing typed characters when the hint overflows the input box
2069 * Fixed argument-hint and progressive arg suggestions not appearing after Tab-completing a skill whose frontmatter `name:` differs from its directory basename
2070 * Fixed the status bar showing the user's baseline `/effort` setting instead of the effort level applied by skill/agent `effort:` frontmatter
2071 * Fixed Ctrl+O transcript view freezing at the moment it was opened instead of tailing new messages
2072 * Fixed editing a recalled prompt-history entry losing the edit when navigating further up/down with arrow keys
2073 * Fixed `/config` exit summary reporting phantom changes to auto-compact and theme when toggling unrelated settings
2074 * Fixed `/insights` crashing when cached session-meta files are missing optional fields
2075 * Fixed malformed PowerShell and History tool calls with missing input being misclassified as reads in transcript collapsing
2076 * Fixed renaming a Remote Control session from claude.ai or the Claude mobile app not updating the local session name for `claude --resume`
2077 * Fixed a race where a just-submitted prompt could appear twice in the up-arrow history
2078 * Fixed tapping the "Jump to bottom" pill in fullscreen mode not dismissing it immediately
2079 * Improved `/feedback` reports to include the conversation that happened before context compaction, making issues from earlier in long sessions easier to triage
2080</Update>
2081
2082<Update label="2.1.148" description="May 22, 2026">
2083 * Fixed the Bash tool returning exit code 127 on every command for some users (a regression introduced in 2.1.147)
2084</Update>
2085
2086<Update label="2.1.147" description="May 21, 202
2061 * Fixed
No line in this hunk matches that.