Claude Code Changelog

AUTO-SYNC

Updated daily at 06:00 KST · Last sync: 2026-11-06 01:27 UTC · Source · Repo

436
Total Versions
262
With New Commands
—
Latest Release
Badge NEW Added IMP Improved FIX Fixed DEL Removed
Version Date Commands / Flags Key Features
v2.1.3182026-11-04--continueFIX /logoutFIX /remote-controlFIX /design revokeFIX /designFIX /mcpFIX /ideIMP /permissionsIMP Ctrl+CIMP /claude-api managed-agents-onboardIMP /claude-apiIMP --release-idle-session-min
  • Added a record of your answer when Claude Code asks to turn on the mods it writes in a session
  • Added assume_role on mantle upstreams of the Claude apps gateway, for a role in another AWS account and for per-developer AWS cost attribution
  • Added an effort option to a mod's $.model.fork, so a quick side job can run at low whatever effort the session uses; the result reports the effort sent
  • Added the date a stored claude.ai sign-in ends to claude auth status (loginExpiresAt) and to claude -p JSON results (credential_expires_at)
  • Added a one-line stderr warning to claude -p text output, starting 10 days before a stored claude.ai sign-in ends
  • Fixed --continue sometimes losing the earlier conversation after a malformed tool call's retries ran out (regression in 2.1.314)
  • Fixed /logout, claude auth logout and claude mcp remove reporting success, and changes to trust, consent or MCP settings being dropped with no word, when the config file could not be updated on a shared network home directory
  • Fixed /remote-control showing a session as available after a failed connection
  • Fixed /design revoke reporting success when the request failed with a 404
  • Fixed /mcp in cloud sessions counting tools the model can't use; a server's row now shows how many of its tools are available
  • Changed Claude Code to no longer install or update the IDE extension when started in an IDE terminal; use /ide from an outside terminal or your editor's extensions view
  • Changed the /permissions rule details, built-in rules and delete confirmation views to use the standard dialog; pressing Ctrl+C twice there now goes back or cancels instead of quitting
  • Changed /claude-api managed-agents-onboard to give a new agent's built-in tools, and a quickstart template's MCP tools, the auto permission policy ("Judge risky actions") by default, matching the Claude Console; say "run without asking" to opt out
  • Gateway: Added a log warning when the Google access token from a federation (external_account) credentials file is about to expire
  • Gateway: Improved the log hints about listen.trusted_proxies: they now say to list only a proxy that adds the connecting address to X-Forwarded-For itself
  • Gateway: Improved the warning when AWS CountTokens fails on Amazon Bedrock: it says Claude Code, not the gateway, counts after the 501, and points at IAM only when AWS denies access
  • Self-hosted runner: Added a startup warning when --release-idle-session-min is the last argument with no value (still ignored) or has a value of only spaces (still read as 0)
v2.1.3172026-11-03/scheduleNEW /loopFIX --setting-sourcesFIX /team-onboardingFIX /artifactsFIX /remote-controlFIX Ctrl+CFIX /feedbackFIX /design-syncIMP --chrome --debugIMP --resumeIMP /usageFIX
  • Added a warning to /schedule when a new cloud scheduled task gets connectors you did not ask for, with how to remove them
  • Added a check that asks before a web or shell tool call sends your account email address to the network
  • Added onFailure: "block" for Agent SDK hook callbacks, so a callback that fails blocks the action instead of letting it run
  • Added a notice in Claude Desktop's Code tab when your organization's remote managed settings haven't loaded for the session, and another once they do
  • Added a notice when auto mode's check has no answer for a subagent's tool call, which used to leave nothing in the main view
  • Added anthropic.plan, anthropic.seat_type, anthropic.provider and anthropic.custom_base_url to OTel metrics, events and spans
  • Added a cost report to the Claude apps gateway admin API, GET /v1/organizations/analytics/cost, for reading past spend over a date range in total, per developer, per day or per IdP group
  • Added a daily record of each developer's IdP groups on Claude apps gateways with admin: set, kept for admin.identity_retention_days, which the cost report groups by
  • Added CLAUDE_CODE_DISABLE_NESTED_SESSION_ID: set it to 1 on a self-hosted runner to have claude -p run inside a session use that session's ID and transcript, as in earlier versions
  • Fixed self-paced /loop wakeups sometimes not being scheduled when Claude left a field out of its request
  • Fixed /schedule leaving a cloud scheduled task's next run time and link out of its results after creating or updating it
  • Fixed old transcripts not being cleaned up on machines where some runs skip cleanup, such as runs using --setting-sources
  • Fixed Claude deleting your most recently updated /team-onboarding guide when asked to delete one without naming which
  • Fixed Claude saying a /team-onboarding guide was deleted when the server refused the delete
  • Fixed /artifacts and the Artifact tool's shared list showing no shared artifacts when you have 200 or more of your own
  • Fixed /remote-control answering "Unknown command" instead of saying that Remote Control is turned off by the disableRemoteControl setting
  • Fixed Ctrl+C stopping all running background agents when pressed to clear typed text at the prompt
  • Fixed /feedback showing "Enter to confirm" while a report is being sent
  • Improved /design-sync to say up front when your design system has moved to Claude, and stop before building instead of failing at upload
  • Improved the "Resume this session with" hint shown at exit to repeat the flags you launched with (for example --chrome --debug) ahead of --resume
  • Gateway: Fixed the status line and /usage showing a developer's own spend limit as 100% used after their group's pooled budget ran out
v2.1.3162026-10-30--restrictedFIX --settingsFIX /permissionsFIX /auto-mode-setupFIX /model <id>FIX /modelFIX /clearFIX /resumeFIX /code-reviewIMP /diffIMP /ultrareviewIMP /githubIMP /btwFIX
  • Added CLAUDE_CODE_DISABLE_ULTRATHINK, which turns the ultrathink keyword off
  • Added pooled group budgets to the Claude apps gateway: one monthly budget that a group's members share, on top of each member's own limit, set with pooled_budget on the spend limits admin API
  • Added CLAUDE_CODE_DISABLE_LOOPED_CROSS_CERT_DROP to keep system cross-certificates that certify each other in a loop, for servers whose private CA needs one
  • Added CLAUDE_CODE_SUBAGENT_EFFORT to set the effort level subagents run at when nothing else names one, instead of inheriting the session's
  • Added managed.policy_mode: layered to the Claude apps gateway: every policy that matches a developer applies, each merged over the ones listed below it, not only the first
  • Added guardrail.input_tagging on Claude apps gateway Bedrock upstreams, which wraps prompts in the input tags that an Amazon Bedrock guardrail's prompt attacks filter needs; all_messages_and_system also tags the system prompt
  • Fixed --restricted sessions uploading files from outside the working directories when a Read allow rule covered them
  • Fixed a managed autoMode.allow list without "$defaults" getting the built-in exceptions back from a host app's --settings, a first rule added in /permissions, or /auto-mode-setup
  • Fixed /model <id> not warning when the model isn't recognized by this version and auto-compact will assume a 200K context window
  • Fixed a rare case where resuming a conversation did not restore its plan, when /clear or /resume had been run while part of that conversation was still being saved
  • Self-hosted runner: Fixed a message sent while Claude was working being answered after a Stop, once the session's process had been replaced
  • Self-hosted runner: Fixed an MCP server's on/off switch sometimes being lost when a session moved to a new machine
  • Improved /code-review started from the Code tab in Claude Desktop or on the web: cloud and claude remote-control sessions now show the findings card, not a plain-text list
  • Improved /diff on large repositories: each refresh usually runs one fewer full-repository git command, and refreshes are spaced out when git is slow
  • Improved the messages shown when /ultrareview, a cloud session or a cloud agent finds no GitHub remote: they now say to create a repository at https://github.com/new, and /ultrareview no longer suggests a gh command that gh rejects
  • [VSCode] Fixed saved /btw side-question history being deleted too early while a settings file has errors
v2.1.3142026-10-30/compactFIX --plugin-dirFIX --plugin-urlFIX /goalFIX /resumeFIX /btwFIX --continueFIX --setting-sourcesFIX /permissionsIMP /upgradeFIX --resumeIMP ctrl+oFIX Ctrl+OFIX /renameFIX /configIMP Ctrl+RIMP /design-syncIMP /security-reviewIMP /contextIMP /claude-apiIMP /ultrareviewIMP Ctrl+FFIX Ctrl+DFIX
  • Added permissions.blockWritesOutsideWorkingDirectories: Write, Edit and NotebookEdit refuse paths outside the working directories in every permission mode
  • Added an optional groups list to Claude apps gateway upstreams: only developers in the listed IdP groups are sent to that upstream, on failover too
  • Added guardrail_trace to Claude apps gateway Bedrock upstreams, to log which Amazon Bedrock guardrail filter fired on a request, without the matched text
  • Added idle compaction to VS Code and Claude Desktop's Code tab: a 200K+ token conversation left idle is summarized, and the summary is used on your next message if the prompt cache has expired
  • Fixed Bedrock sessions with many images failing every turn and /compact with "400 Input is too long." instead of removing older images and compacting
  • Fixed model switching being refused on machines with managed plugin settings when one of your own --plugin-dir or --plugin-url plugins had a broken manifest or failed to download
  • Fixed "Continue automatically at usage limit" continuing more than three times without a prompt from you when a task restarted itself between waits (a /goal check-in, a background or scheduled task)
  • Fixed the /resume picker showing the text of CLAUDE.md or CLAUDE.local.md as a session's title when the session only ran slash commands
  • Fixed /btw answering from the main conversation when asked from a subagent's open transcript
  • Fixed sandbox protections not applying to a worktree entered by claude -p --resume or --continue
  • Fixed a settings file excluded with --setting-sources still supplying some settings, such as auto mode rules and saved permission consents
  • Fixed auto mode reporting a call as blocked, and listing it in /permissions, when its safety check gave no verdict
  • Fixed /upgrade opening the browser and starting a new login for plans billed through the App Store or Google Play; it now says where to change the plan
  • Fixed --resume, and rewinding past a switch to another model after a refusal, moving a session on a model name Claude Code doesn't recognize to a different model
  • Fixed Remote Control clients showing a stray "Compacted (ctrl+o to see full summary)" row after /compact
  • Fixed a blank line appearing above some ⎿ rows in the transcript view (Ctrl+O)
  • Fixed Esc on a command's panel, such as /btw, also interrupting the subagent whose transcript is open
  • Fixed the session name from /rename disappearing while Claude asks for permission or a plan decision, so side-by-side sessions stay identifiable
  • Fixed the tip and idle reminder about push notifications appearing when the push settings in /config are hidden or your organization has turned off Remote Control
  • Self-hosted runner: Fixed an idle session moving to another runner instead of pausing when the runner's request to pause it lost its connection before Anthropic answered
  • Improved prompt history: Ctrl+R now matches text inside collapsed [Pasted text] pills
  • Improved the /design-sync upload prompt to show the folder, the project and the files it will upload or delete
  • Improved /permissions review tab, now called Recently blocked: the footer says what Esc will do with marked rows
  • Improved auto mode's blocked calls: messages name the command, say Claude may retry and auto mode checks again, and point to /permissions to review
  • Improved /config in agent view to say how to stop agent view opening by default
  • Improved session auto-titles: a session that starts with a skill or a prompt-based command such as /security-review now gets a title from it instead of staying untitled
  • Improved --resume speed and memory use on damaged transcripts
  • Improved /context speed in sessions with ten thousand or more MCP tools
  • Self-hosted runner: Improved the error shown when a session's branch isn't on the git remote: it now covers a never-pushed branch, says how to fix each case, and no longer suggests retrying
  • Updated the /claude-api skill: its Datadog setup for API tracing now sends the dd-llmobs-enabled: true header, as the Console does, and its ant install instructions drop the outdated macOS xattr step
  • Updated the bundled dataviz skill to advise printing y-axis tick labels in full under 10,000, and horizontal ones in full under a million where they fit
  • Updated the bundled dataviz skill to answer donut and pie chart requests with ranked bars or a segmented bar that prints its values
  • Changed /ultrareview to check workspace trust before it runs git, as claude ultrareview does
  • Changed /permissions Recently blocked to refuse approving a call you can't read in full, including one the terminal is too short to show
  • [VSCode] Fixed Cmd+F / Ctrl+F not opening the find widget in the plan preview tab
  • [VSCode] Fixed the voice dictation shortcut (Ctrl+D) doing nothing under non-Latin keyboard layouts such as Russian, Greek or Hebrew
v2.1.3122026-10-27/modelFIX /effortFIX Ctrl+CFIX Ctrl+DFIX /verifyFIX /helpFIX
  • Added oidc.user_id_claim to the Claude apps gateway, to identify people by an id_token claim other than sub, such as Microsoft Entra ID's oid
  • Added click to send: in fullscreen, clicking the "to send now" hint under a queued message sends it right away, as its key does
  • Fixed the /model and /effort cache warning saying the re-read waits for your next message; a change made while Claude is working can trigger it sooner
  • Fixed agent view restoring input text on the next launch after it was cleared with Ctrl+C just before exiting
  • Fixed agent view reopening in shell mode after exiting with Ctrl+D from an empty ! input
  • Fixed /verify showing a long description meant for Claude in /help and the / command menu instead of a short one
  • [VSCode] Fixed sessions ending on a bare exit code when your organization's settings couldn't be loaded or were refused at startup; the tab now says why and offers Retry or Sign in again
  • [VSCode] Changed usage limit resets to show a clock time ("Resets at 3:10 PM") and to say "5-hour limit"
  • [Cloud sessions] Added an effort level to the model picker when you create or edit a routine that runs in the cloud
  • [Cloud sessions] Added a Bash editor with colors, line numbers and a Copy button to the setup script box in cloud environment settings
  • [Cloud sessions] Improved the step shown when Claude adds a repository to a cloud session: opening it now shows a short table of what happened instead of raw JSON
  • [Cloud sessions] Fixed resending an unchanged message after a failed send in a cloud session sometimes running it twice
v2.1.3112026-10-26--hold-idle-fileNEW --max-hold-minNEW /mcpFIX /effortFIX /ideFIX --resumeFIX --continueFIX /resumeFIX --session-idFIX /clearFIX /branchFIX /reviewFIX /code-reviewIMP --plugin-dirFIX /usageFIX /rewindFIX /teleportIMP /permissionsIMP Ctrl+DIMP --output-format jsonIMP
  • Added --hold-idle-file and --max-hold-min to self-hosted-runner, to keep an idle session while your host reports processes it left running
  • Added a tip for the Explanatory output style, shown when you ask Claude for explanations
  • Fixed claude mcp add, claude mcp remove and /mcp naming the current folder instead of the project entry in ~/.claude.json that holds a local-scope server when run below a repository root
  • Fixed /effort not warning about a prompt cache miss in plan mode when the plan model differs from the session model
  • Fixed /ide saying the VS Code extension was installed before the install finished or when it failed
  • Fixed agent teams sessions showing an empty task list when coming back with --resume, --continue, /resume or --session-id, including after /clear or a crash, and /branch writing to the original session's list
  • Fixed pasting text that mentions an image file, such as ! open /tmp/shot.png or /review look at /tmp/shot.png, attaching the image and dropping its path from the prompt
  • Fixed a finished /code-review, or another skill that runs in a sub-agent, running a second time when a cloud or background session restarts
  • Fixed /ide saying it had installed the JetBrains plugin when nothing was installed
  • Fixed /mcp showing a remote server as failed after "Clear authentication" when the server works without sign-in
  • Fixed /mcp showing "authenticated" for a remote server that Claude Code sends no credentials to
  • Fixed a --plugin-dir folder of plugins loading as one plugin when an empty .mcp.json was at its top
  • Fixed /usage never showing large prompt-cache misses under "What's contributing to your limits usage?"
  • Fixed the /rewind confirmation saying the conversation "will be forked" when the later messages are removed from the conversation
  • Fixed the /rewind warning that wrongly said manual and Bash edits are never affected by a code restore
  • Linux: Fixed sandboxed Bash commands failing with bwrap: Can't create file when a --plugin-dir folder was also an added directory and permissions.blockReadsOutsideWorkingDirectories was on
  • Self-hosted runner: Fixed a session failing to start when a rate limit (HTTP 429, or a git wrapper that exits 75) blocks an added read-only repository; it now starts without that repository
  • Improved /teleport and claude --teleport to warn when a compacted cloud session loads from its last compaction, so the messages it summarized aren't in the local copy
  • Improved screen reader mode: deleting a rule in /permissions says "Deleted allow rule …" right away
  • Changed Ctrl+D in agent view to match the prompt: on an empty input, pressing it twice exits
  • Changed --output-format json and stream-json output to write DEL, C1 control and Unicode format characters inside strings as \uXXXX escapes; parsed values are unchanged
  • Changed /code-review to tell Claude to put the effort level first and use max only when asked
  • [VSCode] Added syntax coloring to code blocks in Claude's replies, in light, dark and high contrast dark themes
  • [VSCode] Added a "Running UserPromptSubmit hooks" spinner status and screen reader announcement for slow UserPromptSubmit hooks
  • [VSCode] Fixed custom skills and custom slash commands sent from the VS Code or JetBrains panel leaving out the open file or selected lines that ordinary messages include (anthropics/claude-code#102799)
  • [VSCode] Fixed the extension host freezing while the login shell ran its start-up files to read PATH on macOS and Linux
  • [VSCode] Fixed clicking an image in a tool result, or closing its preview, also opening the result's text in an editor tab
  • [VSCode] Fixed voice dictation continuing to record after a message was sent with the Send button; sending now stops dictation first, as pressing Enter already did
v2.1.3102025-11-24/sandboxIMP
  • Added the Monitor tool and plugin monitors on Bedrock, Vertex, and Foundry, and when telemetry or nonessential traffic is disabled; long foreground sleeps are now blocked there too
  • Windows: Fixed PreToolUse and PermissionRequest hooks letting a tool call through when Git Bash is missing and the hook's command is only quoted strings, such as a quoted path
  • Linux: Improved /sandbox and the sandbox startup warning to name Ubuntu's AppArmor restriction on user namespaces, and how to lift it, when it keeps bubblewrap from starting the sandbox
  • [VSCode] Fixed pressing Enter on the plan review card's "Send feedback and keep planning" button approving the plan instead of sending your comments back
  • [VSCode] Fixed the panel showing "Something went wrong" after "Switch branch & continue" on a cloud session opened from Session history's Web tab
  • [Cloud sessions] Added Claude Code cloud sessions and Remote Control permissions to Enterprise custom roles, so Owners can control access to each by role
  • [Cloud sessions] Added a Choose file button to load a cloud environment's setup script from a file
  • [Cloud sessions] Fixed failed saves and archives in the cloud environment edit dialog showing no error inside the dialog
  • [Cloud sessions] Fixed failed routine API token actions showing only a toast; the error now appears in the routine edit dialog
v2.1.3092026-10-22--mcp-configFIX ctrl+eFIX ctrl+oFIX /procFIX --toolsFIX /renameFIX --resumeFIX /rewindIMP /code-review --fixFIX /code-reviewFIX /privacy-settingsFIX /feedbackFIX --add-dirFIX /verifyFIX /claude-apiIMP --startup-timeout-min --trust-workspaceIMP /goalFIX Ctrl+JFIX ctrl+jFIX
  • Fixed sandboxed commands and auto-accepted edits being able to modify the MCP config file passed with --mcp-config
  • Fixed ctrl+enter (send now) only queuing a message when pressed before the response had started, and restarting a prompt's hooks while leaving the message queued when pressed while those hooks were running
  • Fixed ctrl+o not showing messages from other agents and sessions that are still waiting to be delivered; they now appear in full under the transcript, marked as waiting
  • Fixed Read reporting "File does not exist" for PDF page ranges in Linux sandboxes that share the parent's /proc
  • Fixed split-pane agent teammates not inheriting the tool deny and --tools rules given on the leader's command line
  • Fixed sessions renamed with /rename appearing to other sessions under a generated name after a VS Code window reload or a non-interactive --resume
  • Fixed the /rewind list showing "No code changes" for a turn that changed checkpointed files through /code-review --fix, a subagent or a shell command
  • Fixed /privacy-settings showing an out-of-date "Help improve our AI models" value; it now also says when the setting can't be fetched
  • Fixed oversized /feedback reports failing instead of being resent without the transcript
  • Fixed a skill in an --add-dir folder being unreachable when another skill already held its name; it is now offered as <folder>:<name>
  • Fixed /verify and /code-review not finding a nested package's own skill when its files were changed from the shell
  • Fixed the /claude-api skill saying that ant beta:worker poll --on-work passes trace context to the command
  • Fixed the /claude-api skill's C# tracing setup missing spans from the cloud platform clients
  • Fixed the /claude-api skill saying that API spans for requests to Claude Platform on AWS can't join the caller's trace
  • Linux: Fixed sandbox write denies lifting when a background command outlived the session
  • Windows: Fixed PowerShell permission checks auto-approving some Set-Location or cd commands that target the current directory and carry extra arguments; these now prompt for approval
  • macOS: Fixed the "Install Command Line Developer Tools" dialog opening each time Claude Code starts on a Mac without Xcode or the Command Line Tools
  • Self-hosted runner: Fixed --startup-timeout-min stopping a session whose first prompt, such as /code-review, was still working in a subagent; a frozen process is still stopped
  • Improved the /claude-api skill to offer API tracing alongside SDK tracing when asked to add OpenTelemetry
  • Improved the /claude-api skill to check the live docs before saying a feature is unsupported
  • Self-hosted runner: Improved sessions that move to a new runner: Claude now sees the tool call that was interrupted, marked as outcome unknown
  • Updated the bundled dataviz skill to accept APCA as a text-contrast measure (keeping WCAG 2 ratios where AA conformance is required), add an apca(text, background) function to its palette validator scripts, and say whether a label inside a colored chart fill should be white or near-black
  • Updated the /claude-api skill: service account keys and Workload Identity Federation tokens can now manage OpenTelemetry destinations
  • Changed sed -i to get the standard Bash prompt and run as written, not a simulated file-edit preview; like other Bash edits, it is no longer restored by /rewind
  • Changed claude ultrareview to require workspace trust: it asks on a terminal, else refuses; scripts pass --trust-workspace, which takes no value (put a PR number or base branch before it), or set CLAUDE_CODE_DISABLE_ULTRAREVIEW_TRUST_CHECK=1
  • Changed the /claude-api skill to build Managed Agents subagent teams on multiagent_20261001 with dynamic workflows on by default, instead of coordinator
  • [VSCode] Added a log warning that says what to do when dictation or the extension's own requests fail certificate verification, such as behind a TLS-inspecting proxy
  • [VSCode] Fixed the Claude panel staying blank after the editor cached an incomplete copy of its files; it now recovers by itself, or says what went wrong and how to fix it
  • [VSCode] Fixed Session history filling up with empty "Untitled" sessions each time you start a new session without sending a message
  • [VSCode] Fixed long slash-command messages such as /goal filling the chat panel; they now fold behind Show more like other prompts (anthropics/claude-code#97469)
  • [VSCode] Fixed Ctrl+J in the chat input always inserting a newline: it is now left to VS Code and the OS when "ctrl+j" is set to null in the Chat context of ~/.claude/keybindings.json
v2.1.3082026-10-22—
  • Bug fixes and reliability improvements
v2.1.3072026-10-21/claude-api api-versionNEW /claude-apiNEW /autocompactFIX /clearFIX /permissionsFIX /helpFIX --use-anthropic-git-proxy --settingsIMP --checkout-hook-timeout-min
  • Added /claude-api api-version to move Claude API code to API version 2026-10-21
  • Added the claude_code.safety_event OpenTelemetry event for each tool call a permission rule, auto mode, a safety check, a hook or the sandbox stopped, prompted or sent back
  • Fixed /autocompact in cloud sessions going back to the default window after the session restarted
  • Fixed a conversation cleared with /clear sometimes coming back when a cloud or self-hosted runner session restarted
  • Fixed /permissions > Recently denied not showing the denied shell command, and auto mode's local classifier ignoring an approval from there when it checks a retried command; approving a row now names the command, not its description
  • Fixed /help and the / command menu showing long model-facing descriptions for bundled skills such as /claude-api instead of their short descriptions
  • Self-hosted runner: Fixed sessions with --use-anthropic-git-proxy committing a .claude/settings.local.json left in the clone by an earlier session
  • Self-hosted runner: Fixed archiving or requeueing a session, or stopping the runner, during its checkout hook leaving the hook's processes running and the runner's slot held
  • Changed the axScreenReader setting and CLAUDE_AX_SCREEN_READER in a settings env block to apply only from user, managed or --settings settings (since 2.1.305)
  • Self-hosted runner: Changed checkout hooks to be stopped after 30 minutes by default, failing the session's setup; if yours needs longer, raise --checkout-hook-timeout-min or set it to 0
  • Self-hosted runner: Changed the certificate file built for Anthropic-managed git to filter its trusted certificates as the CLI does; a [runner:warn] line gives the number left out
  • [VSCode] Added a notice on the microphone button when voice dictation stops by itself (15 seconds without recognized speech, or the 2-minute limit), saying why and that the text so far is kept
  • [VSCode] Fixed a long prompt expanded with Show more covering the whole chat panel: a pinned prompt is now capped at 40% of the panel and scrolls
  • [VSCode] Fixed part of a list item or table cell with LaTeX math pasting as a new list or table in rich text editors
  • [VSCode] Fixed dictation failing behind a TLS-inspecting proxy when NODE_EXTRA_CA_CERTS is set only in ~/.claude/settings.json; it now also follows CLAUDE_CODE_CERT_STORE
  • [VSCode] Changed the "still open somewhere else" notice to also cover a Claude process left over from an extension restart, which usually ends on its own within about 10 minutes
v2.1.3062026-10-21—
  • Fixed claude -p inside cloud sessions reporting "Not logged in" when started without the session's environment variables
  • Fixed an API error being replaced by "prompt is too long", and an unneeded compaction, in sessions with many MCP tools
v2.1.3052026-10-20--toolsFIX /effortFIX /autocompactFIX /resumeFIX /usageIMP Ctrl+RFIX /doctorIMP /artifactsIMP
  • Added sandbox.allowNestedUserNamespaces so sandboxed commands on Linux can create user namespaces (Chromium, rootless podman); this lets them get around the sandbox's file protections
  • Added CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS so unattended retry mode (CLAUDE_CODE_RETRY_WATCHDOG) notices a usage limit that was lifted before its reset
  • Fixed every request failing on Vertex, Bedrock and other providers when the endpoint or a gateway rejects tool search, and behind gateways with ToolSearch disallowed or left out of --tools (a 2.1.304 regression): Claude Code now retries without it
  • Fixed /effort and /autocompact settings not applying when the model name differed from a modelOverrides value by letter case or a [1m] tag
  • Fixed Remote Control leaving empty "(session)" entries in /resume after switching conversations with /resume
  • Fixed /usage rows being cut off in narrow terminals
  • Fixed screen reader mode: search boxes now say "Search:" instead of a symbol VoiceOver read as "telephone recorder", and highlighted prompt text, such as Ctrl+R search matches and "ultrathink", no longer has spaces inside words
  • Self-hosted runner: Fixed a start script that shares only its stdout with the runner or orchestrator failing with Resource temporarily unavailable when TERM is set (a 2.1.300 regression)
  • Self-hosted runner: Fixed repository access failing since 2.1.296 when a git credential helper or askpass program reads its settings through GIT_CONFIG
  • Self-hosted runner: Fixed the orchestrator reporting a spawn-runner hook as timed out when a runner it started in the background kept its output open
  • Improved /usage: each warning is now a one-line fix that names its source, and f applies the fixes; the same fixes appear in VS Code and /doctor
  • Remote Control: Improved the spawn-mode messages: pressing w now says the new mode is saved for the folder, and a later claude remote-control start that uses the saved mode says where it came from
  • Changed the /artifacts delete confirmation to take 1 or Enter to keep, 2 to delete, and Esc to cancel; y and n no longer answer it
  • [VSCode] Added a "Running start-up hooks" spinner status, with a screen reader announcement, while SessionStart or Setup hooks run
  • [VSCode] Fixed the spinner cutting off "Compacting..." when your spinnerVerbs setting replaces the built-in verbs with short ones
v2.1.3042026-10-19/auto-mode-setupNEW /claude-api managed-agents-secureNEW /claude-apiNEW Ctrl+ONEW /configFIX /VolumesFIX /mediaFIX /mntFIX --max-turnsFIX /logoutFIX /privacy-settingsFIX --toolsFIX --resumeFIX --debugFIX --json-schemaFIX --disable-slash-commandsFIX --system-prompt-snapshotFIX /effort statusFIX /effort ultracodeFIX /effortFIX /loopFIX --autocompactFIX Ctrl+CFIX /usageIMP /artifactsIMP /reload-skillsIMP /fastDEL /tasksIMP
  • Added a transcript line when a plugin that runs first skips one of your mod's hooks, naming the event and the plugin
  • Added decider: "person" to a mod's tool.check answer: only the permission dialog or a host's callback can approve the ask, and it is refused with the mod's reason where nobody can be asked
  • Added e.isReadOnly to a mod's tool.check event, set when the tool call is read-only
  • Added /auto-mode-setup: a guided setup that reads your project and recent sessions to teach auto mode about your environment, now also available on Bedrock, Vertex, Foundry, Claude apps gateway and telemetry-disabled sessions
  • Added /claude-api managed-agents-secure, which compares a Managed Agents agent's settings with Anthropic's published security guide, without changing anything
  • Added the names of the tools called earlier to the compaction summary in the transcript view (Ctrl+O)
  • Added a warning on Pro and Max plans when resuming an inactive conversation would use a noticeable share of your 5-hour usage limit: resume anyway, or start a new conversation and Claude can look up the previous one if you refer to it
  • Fixed the organization policy not refreshing until the hourly check after approving an ANTHROPIC_API_KEY at startup or switching "Use custom API key" in /config
  • Fixed rm -r of a mounted drive or a folder at its top level (/Volumes, /media, WSL's /mnt/c) not getting the safety prompt that rm -rf /Applications gets
  • Fixed a plugin keeping a headless run going past --max-turns, Stop, or ended input by spawning subagents or re-running a finished one
  • Fixed OpenTelemetry settings delivered through server-managed settings being ignored for the whole session after signing in during first-run setup or the first start after /logout
  • Fixed /privacy-settings offering choices that may not apply to you after a network or server error
  • Fixed claude --help text for --tools, --resume, --debug, --json-schema, --disable-slash-commands, --system-prompt-snapshot and claude update to match actual behavior
  • Fixed /effort status, /effort ultracode and the prompt's effort indicator showing a guessed effort level when CLAUDE_CODE_EFFORT_LEVEL is auto or unset and no level is sent
  • Fixed self-paced /loop wakeups scheduled at the 1-hour maximum firing just after the 1-hour prompt cache expired, so those wakeups no longer re-read the conversation uncached
  • Fixed CLAUDE_CODE_AUTO_COMPACT_WINDOW=200k silently setting a 100K window: the variable now accepts k and M suffixes like --autocompact, and warns when a value is out of range or ignored
  • Fixed Ctrl+C in the agents view clearing a text selection without copying it when pressed before the mouse button was released
  • Improved /usage to say when a rate limit on usage data ends instead of "try again in a moment"
  • Self-hosted runner: Improved the error shown when the git host answers "not found" for a session's repository: it now names the repository and whom to ask
  • Windows: Improved git command start-up with a standard Git for Windows install by running its git.exe directly instead of through its cmd launcher
  • Changed the /artifacts delete confirmation to show numbered choices: 1 or Enter keeps the artifact, 2 deletes it, and y, n and Esc still work
  • Changed compaction to send Claude the skill list again afterwards; /reload-skills now sends only new or changed skills
  • Updated the /claude-api skill to use the ant CLI on Claude Platform on AWS instead of falling back to the SDK or curl
  • Removed the "(research preview)" label from the /fast dialog title on Opus 5.5
  • [VSCode] Added mod drawing in the chat panel for sessions on Amazon Bedrock, Google Vertex AI and Microsoft Foundry, behind an LLM gateway, or with telemetry turned off
  • [VSCode] Fixed one cause of sessions failing to start with "Subprocess initialization did not complete within 60000ms": time a SessionStart command hook spends running no longer counts toward the limit, up to 10 minutes in total
  • [VSCode] Changed background sub-agents to show as one status line under their Agent card instead of streaming every step into the chat; the full transcript stays in /tasks
v2.1.3032026-10-18—
  • Bug fixes and reliability improvements
v2.1.3022026-12-14/configNEW /design-syncNEW /design-loginNEW /autocompactFIX /effortFIX /mcpFIX /design consentFIX /design revokeFIX /designFIX /pluginFIX --plugin-dirFIX --permission-mode autoIMP /feedbackIMP
  • Added CLAUDE_CODE_AUTO_MODE_MODEL to choose the model the client-side auto mode classifier uses; it does not change the model for server-side auto mode
  • Added an Idle compaction row to /config for turning idle compaction off or back on; the notices shown after an idle compaction now say how to turn it off
  • Added a notice to /design-sync and /design-login that standalone Claude Design (claude.ai/design) closes by December 14, 2026
  • Fixed /autocompact and /effort saving to the wrong model when a gateway names Opus 4 or 4.1 with a prefix, such as anthropic/claude-opus-4-1
  • Fixed Claude in the desktop app pointing you to claude.ai settings or /mcp to authorize or reconnect an MCP server where that option isn't available
  • Fixed /design consent and /design revoke suggesting /design-login when they fail in a cloud session, where it isn't available; the message now points to claude.ai/design/settings
  • Fixed claude plugin details <name>@builtin suggesting claude plugin list, which never shows built-in plugins, when the plugin isn't found; it now points to /plugin
  • Self-hosted runner: Fixed git fetches failing with "bad object refs/heads" in sessions that reuse a checkout stored in git's reftable format
  • Windows: Fixed every file write being refused or asked about for projects on exFAT or FAT32 drives, including in sessions started with --plugin-dir
  • Changed claude -p and Agent SDK sessions with no permission mode to start in default mode on third-party providers, with telemetry off or on a fresh install; --permission-mode auto keeps auto
  • Changed the message shown when your organization's policy turns off /feedback: it now points to GitHub issues instead of an organization admin
  • [VSCode] Fixed text after an unclosed code block in a list showing as plain text while a reply streams, then turning into code
  • [VSCode] Fixed MCP server sign-in from the panel opening a broken authorization page when the server URL contains a query string
  • [VSCode] Fixed the @browser banner saying "Browser connected" when no browser with the Claude extension can be reached
  • [Cloud sessions] Added a banner on a routine's page that says why its last run didn't start, such as your organization reaching its limit on concurrent cloud sessions
  • [Cloud sessions] Fixed "Rewind to here" failing on every message except the newest in cloud sessions; self-hosted runners need Claude Code v2.1.246 or later
  • [Cloud sessions] Fixed the pull request status bar in cloud sessions flipping a pull request with merge conflicts back to ready while GitHub rechecked it
v2.1.3012026-10-15Shift+ENEW /loginFIX /claude-apiFIX /rewindFIX ctrl+oFIX /clearFIX /diffFIX /compact
  • Added CLAUDE_CODE_RETRY_WATCHDOG_MAX_USAGE_LIMIT_WAIT_MS so unattended retry mode (CLAUDE_CODE_RETRY_WATCHDOG) ends a request at a usage limit that resets too far away instead of waiting
  • Added OpenTelemetry tracing guidance to the claude-api skill, including setting up trace destinations with the ant CLI
  • Added the % motion to vim mode: jump to the matching bracket, alone or with d/c/y
  • Added rows to a mod's Input: a text field of several lines in the terminal, where Enter submits and Shift+Enter or a backslash before Enter starts a new line
  • Added classifier_verdict and permission_mode to OpenTelemetry tool_decision events, so auto mode classifier decisions can be told apart from permission rules
  • Added classifier_category to OpenTelemetry tool_decision events, naming the built-in rule a classifier block matched, when OTEL_LOG_TOOL_DETAILS=1
  • Fixed a misleading "Please run /login" error when a full disk keeps the login from being refreshed; the error now names the disk and says to delete files
  • Fixed the /claude-api skill saying CMEK external-key endpoints aren't available on Claude Platform on AWS
  • Fixed skills no longer being listed to the model after using /rewind
  • Fixed the compaction row in a resumed session offering ctrl+o for history that is not loaded; it now says where the earlier messages are saved, and also shows in fullscreen
  • Fixed the "new task? /clear to save tokens" hint coming back right after you interrupt a response
  • Fixed /diff not noticing a conflicted cherry-pick or revert in reftable repositories when one of its git checks timed out or failed
  • Fullscreen mode: Fixed /compact and auto-compact briefly freezing the UI while the visible transcript is rebuilt
  • Self-hosted runner: Fixed sessions started from Slack being unable to find or attach a repository when managed settings restrict MCP servers; use deniedMcpServers to keep those tools off
  • Self-hosted runner: Fixed sessions being reported as having a deleted source branch, and not retried, when an unrelated setup or session failure quoted git's missing-ref wording
  • Self-hosted runner: Fixed the log promising a retry of a failed or declined session release for a session that is ending; repeated failures now show a count
v2.1.3002026-10-14/advisorNEW --advisorNEW /autocompactFIX --restrictedFIX /tasksFIX /loginFIX ctrl+oFIX /branchFIX --worktreeFIX --tmuxFIX Ctrl+JFIX /healthz /sandboxIMP --sandboxDEL --no-sandboxDEL Shift+dFIX Ctrl+AFIX
  • Added virtualText to a mod's prompt decorations: text drawn in the prompt box that never enters the draft or the submitted prompt
  • Added cache_creation_5m_tokens and cache_creation_1h_tokens to the OpenTelemetry api_request event, splitting cache writes by lifetime
  • Added $.ui.view({ agentId }) for mods: shows an agent's transcript in the main view when you ask, and $.ui.view({}) goes back
  • Added a dir prop on a mod's Text for right-to-left text: on Windows and in VS Code's terminal its rows read in that direction and sit flush right
  • Added /advisor on Claude Platform on AWS; no advisor runs until you pick one with /advisor, advisorModel or --advisor, and CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1 turns it off
  • Added OpenTelemetry GenAI semantic-convention attributes to trace spans, such as gen_ai.provider.name, gen_ai.conversation.id, gen_ai.tool.name and error.type
  • Added support for rewriting a workflow agent's prompt and model in the agent.spawn mod hook, which could only refuse workflow agents before
  • Added the prompt.change mod hook, raised when the prompt box's text changes without a typed edit: a recalled history entry, a clear, an undo, or a plugin's fill
  • Fixed /autocompact warning about high token usage when you choose a smaller auto-compact window
  • Fixed claude --help naming a removed tool in its description of --restricted
  • Fixed subagents you had typed messages to disappearing from /tasks shortly after finishing, leaving no way back to the conversation
  • Fixed a login refused by forceLoginOrgUUID leaving the refused organization's token stored, or live after /login
  • Fixed the Artifact tool's verbose and ctrl+o line reading Artifact("(unprintable path)") while a call's input arrives; its row now shows "Waiting…" and "Running…" as Bash's does
  • Fixed /branch dropping messages, and claude purge skipping subfolder projects, when they contain a Unicode line or paragraph separator (U+2028, U+2029)
  • Fixed plugin WorktreeCreate and WorktreeRemove hooks not running when Claude Code starts with --worktree (not yet with --tmux)
  • Fixed --worktree sessions sometimes starting from the wrong commit when a tag or branch was named like a commit ID, and their starting git status naming a branch other than the new worktree's
  • Fixed the branch showing as ".invalid" and --worktree failing to reopen a worktree in repositories using git's reftable ref storage
  • Fixed claude remote-control servers giving up on renewing their connection after a brief sign-in error, such as a locked keychain; they now retry, and warn when you need to run claude /login
  • Fixed --worktree failing in a worktree of a bare repository when origin's default branch can't be fetched; the fallback base is now the current checkout's HEAD, not the main repository's
  • Fixed a mod's prompt.edit hook not being raised for a newline entered with the chat:newline keybinding (Ctrl+J, or a rebound Enter)
  • Self-hosted runner: Fixed the runner and orchestrator freezing (no polls, /healthz or SIGTERM shutdown) while nobody reads their output; logs keep the latest 256 KiB and count drops (not on Windows)
  • Changed the /sandbox mode options to read "Sandbox commands" instead of "Sandbox BashTool"
  • Removed the --sandbox and --no-sandbox flags from claude remote-control, which had no effect; passing either now exits with an error. Set sandbox.enabled in settings to sandbox sessions
  • [VSCode] Added the claudeCode.attachSelection setting to stop text selected in the editor from being added to your messages
  • [VSCode] Fixed Shift+dragging a file onto the prompt on Windows inserting an unreadable /c:/… path instead of a mention relative to the working directory
  • [VSCode] Fixed Shift+dragging a file from the Explorer or an editor tab onto the prompt inserting nothing in WSL, SSH and Dev Container windows
  • [VSCode] Fixed Ctrl+Alt+F toggling Focus view instead of opening Find in the Explorer, other tree views, or the Debug Console on Windows and Linux
v2.1.2992026-07-28--shutdown-drain-secNEW /effortNEW /fastNEW /modelNEW --safe-modeNEW --disallow-toolsNEW /pluginNEW /usageNEW --max-turnsFIX --max-budget-usdFIX --plugin-dirFIX --debugFIX --debug-fileFIX /statusFIX /btwIMP /mntFIX /sandboxFIX /clearFIX /reload-pluginsFIX --bareFIX /stopFIX /configFIX --input-format stream-jsonFIX --exec-pathFIX --mcp-configFIX --channelsFIX --bgFIX --backgroundFIX --worktreeFIX /typesFIX Shift+JFIX --retire-at Ctrl+CIMP /reload-skillsIMP /ultrareviewIMP
  • Added CLAUDE_CODE_DISABLE_FILE_MENTIONS environment variable: Claude gets the paths of @ file mentions to read with its file tools, not the files' contents
  • Added idle compaction in the terminal: a 200K+ token conversation left idle for about 54 minutes is compacted before its one-hour prompt cache expires, so your next message doesn't reprocess it all
  • Added CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS to change idle compaction's 200K-token minimum; "idleCompaction": false in settings.json turns it off. Both need v2.1.290 or later
  • Added $.prompt.media so a prompt.submit hook of a mod installed by managed settings can read the bytes of an image or document attached to the prompt
  • Added $.session.identity() for mods installed by managed settings: how the session is signed in, and its organization and email when managed forceLoginOrgUUID lists that organization
  • Added size, weight, mono and tabular to a mod's Text and named spacing steps (xs to xl) to its Box; bold is deprecated in favor of weight
  • Added --shutdown-drain-sec to claude self-hosted-runner orchestrator: on SIGTERM it stops polling and gives the poll in flight and running spawn hooks up to that many seconds to finish
  • Added the skill's frontmatter, source, plugin name and file path to what a mod's skill.prompt hook receives
  • Added /effort and /fast in agent view to set what new sessions start with; a bare /model, /effort or /fast there now opens a picker
  • Added a "safe mode" line to the agents view peek panel for background sessions started with --safe-mode
  • Added a one-time note when plan mode won't ask before most edits or commands because bypass permissions is available
  • Added --disallow-tools and a disallowed_tools case field to claude plugin eval to keep specific built-in tools, such as Agent, out of eval runs
  • Added a note in /plugin and claude plugin validate naming a mod's hooks that are skipped where an organization manages Claude Code
  • Added /usage warnings for max effort, workflows, always-on context and large tool results
  • Fixed a mod that submits a prompt at the end of every turn keeping a headless run going past --max-turns, --max-budget-usd, an interrupt, or the end of the host's conversation
  • Fixed a sandboxed shell command being able to write into a --plugin-dir folder, whose code Claude Code reloads and runs outside the sandbox
  • Fixed memory growth under heavy debug logging (--debug, --debug-file), and a hang on exit when the debug log is on a disk or network mount that stops accepting writes
  • Fixed claude mcp list, claude doctor and /status reporting an empty .mcp.json as invalid
  • Fixed /btw jumping the transcript to the bottom when asked while scrolled up in fullscreen
  • Fixed sandboxed commands failing on WSL2 with bwrap: Can't mkdir /mnt/c/Program Files/ClaudeCode when the sandbox can write to the Windows drive
  • Fixed /sandbox reporting success when its setting could not be saved because the project folder is not writable; it now says nothing changed and why
  • Fixed the fullscreen "Update installed" notice being hidden behind the idle "/clear to save tokens" hint; it now shows beside the hint
  • Fixed /usage, the approaching-limit warning (terminal and VS Code) and the status line sometimes showing more than 100% used (anthropics/claude-code#92238)
  • Fixed /reload-plugins not loading a plugin installed from another terminal a moment earlier
  • Fixed bare mode notices in background sessions telling you to restart without --bare, which keeps the mode; they now name /stop and claude --resume, as safe mode ones do
  • Fixed /config push notification toggles sending your account the previous setting instead of the one you just chose
  • Fixed queued prompts sent as content blocks over --input-format stream-json running together without a line break when merged into one turn
  • Fixed self-hosted runner sessions shutting down MCP servers added through an --exec-path wrapper's own --mcp-config when connectors change mid-session
  • Fixed --bare sessions leaving out an MCP server named constructor or prototype that --channels asked for
  • Fixed resuming a conversation from before /clear reattaching to the Remote Control session of the conversation after it
  • Fixed background sessions started with --safe-mode silently leaving safe mode when the session was woken or restarted
  • Fixed /btw side questions in non-interactive sessions not being cancelled when the session ends, and running a second time when the same request arrived again mid-run
  • Fixed claude mcp add <name> -- <command> --background being started as a background session
  • Fixed a prompt or reply of --bg or --background to a background session being taken for the flag, which could start new sessions over and over instead of delivering it
  • Fixed --worktree sessions leaving a folder behind in .git/worktrees in repositories using git's reftable ref storage
  • Fixed claude plugin validate rejecting a mod's $.state references when plugin.json has no types key and the contract is at ./types/index.d.ts
  • Self-hosted runner: Fixed sessions that wrote output before their first turn being left with no release timer, ignoring --retire-at and delaying shutdown
  • Improved /reload-skills to say it re-sends the full skill list to Claude, which is how to get skills back after compaction
  • Changed /btw side questions in non-interactive sessions to return a timeout error when still unanswered after 11 minutes
  • Changed the errors shown when /ultrareview can't upload a repository to stop suggesting git add ., which could stage or commit untracked files such as .env
v2.1.2962026-10-09--agentsNEW /pluginNEW --teleportFIX /diffFIX --capacityFIX Shift+JFIX /clearFIX /mcpFIX /code-reviewFIX ctrl+oIMP --debugIMP /costIMP --max-budget-usdIMP /repoFIX
  • Added a code key to the Claude apps gateway's managed.policies[]: the same settings as cli, also applied in Claude Desktop's Code tab; beside desktop, it turns on Claude Desktop's gateway mode
  • Added autoCompactWindow to subagent frontmatter and --agents definitions, so a subagent can auto-compact earlier than the main conversation's window
  • Added CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL to run every workflow agent on one model while other subagents keep theirs
  • Added CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS environment variable to set a longer maximum delay for the backoff when retrying an overloaded (529) request
  • Added a note in /plugin on a plugin whose hooks are left out because another enabled plugin has the same name
  • Added an allow_large option to the Read tool so Claude can read a text file past the usual size limits in one call when it needs the whole file and the context has room
  • Fixed --teleport opening an empty conversation when the session's history could not be read
  • Fixed toasts and notifications waiting unseen for as long as the /diff panel or dialog was open
  • Fixed a self-hosted runner session's git fetch, pull and push failing while another session of the same repository starts on a runner with --capacity above 1
  • Fixed a late-loading plugin's SessionStart hook output reaching the new conversation after /clear in headless sessions
  • Fixed Claude calling cloud sessions non-interactive and suggesting /mcp or claude mcp when an MCP server needs authentication
  • Fixed /code-review ending on a raw JSON array in cloud sessions, the Agent SDK and IDE integrations; the findings now print as a numbered list
  • Windows: Fixed PowerShell commands longer than about 1 KB always asking for permission, so allow rules and read-only detection now apply up to 32 KB
  • Windows: Fixed stdio MCP servers being force-killed at shutdown; stdin now closes first and the process tree is killed only if the server is still running after 300 ms
  • Windows: Fixed claude plugin install failing for GitHub owner/repo plugin sources on machines with no GitHub SSH key; the clone is now retried over HTTPS
  • Windows: Fixed rm -rf /c/Users/<name> in Git Bash not asking in bypass permissions mode
  • Improved transcript toggle (ctrl+o) responsiveness in code-heavy conversations by caching syntax-highlighted code blocks
  • Improved --debug output to name unrecognized frontmatter fields in custom agent files, with a hint for likely typos
  • Improved --debug output for hooks: command hooks on tool calls, prompts, SessionStart and Stop now log their command, plugin, outcome and duration when they finish, so a slow hook is identifiable
  • Updated /cost, the status line, --max-budget-usd and the SDK's cost figures to price Sonnet 5.5 cache reads at $0.10 per million tokens (was $0.20)
  • Updated the bundled dataviz skill: lighter violet for the seventh series in light mode, softer primary text in dark mode, and compact y-axis labels like 1K
  • [VSCode] Fixed chat links written as a full Windows path, such as C:\repo\file.ts or file:///C:/repo/file.ts, not opening the file on Windows
v2.1.2952026-07-28/copyNEW /loginNEW --strictNEW /pluginFIX /configFIX /tuiFIX /modelFIX /usageFIX --toolsFIX --restrictedFIX /loopIMP /advisorFIX ctrl+cFIX /reload-pluginsFIX /fastFIX /output-styleFIX /resumeFIX /branchFIX --plugin-dirFIX /ultrareviewFIX /rewindFIX /contextIMP Ctrl+CIMP Ctrl+SFIX Shift+TFIX Alt+SFIX Ctrl+TFIX
  • Added onFailure: "block" for command and HTTP hooks: a hook that can't start, times out, or exits with an unexpected code blocks the action instead of letting it through
  • Added Program Status Protocol (OSC 7501) support: terminals that implement it can show whether Claude Code is working, waiting on you, or done
  • Added quoted text to the /copy picker, so a drafted message copies without its > markers
  • Added a warning to claude plugin install, enable, disable and marketplace add when the settings file they write to does not load
  • Added a line on stderr, when it is a terminal, that says what a claude -p run is waiting for when it stays open after its last turn
  • Added support for timeouts.upstream_ttfb_ms on the Claude apps gateway's Bedrock, Vertex, Foundry and other cloud upstreams: a value you set now limits how long a stream may take to start there, after which it fails over or gets a 502
  • Added a "Backgrounding cancelled" message when you stop the turn while ← is waiting for the current tool to finish
  • Added an optional models list to every Claude apps gateway upstream: only the listed models are sent there, on failover too, and one * in an entry is a wildcard
  • Added support for forceLoginMethod: "gateway" and forceLoginGatewayUrl in your own user settings on machines with no managed settings, so /login opens on that Claude apps gateway
  • Added advice to claude plugin validate when a plugin's README has no install line: it prints the line to paste and never changes the exit code, even with --strict
  • Added upstream_request_id to the Claude apps gateway's inference audit event: the request ID from Amazon Bedrock, the Anthropic API or another upstream, for support cases
  • Fixed /plugin's Errors tab removing a marketplace that failed to load, and uninstalling its plugins, on Enter without asking first
  • Fixed PushNotification saying a push was not sent in claude remote-control sessions right after a phone message, without the /config toggle, or when started from inside Claude Code
  • Fixed /tui exiting without a message, or with a raw system error, when Claude Code could not be started again
  • Fixed Fable models listed in availableModels not appearing in the /model picker for sessions signed in to a Claude apps gateway; such a model now shows its built-in row in place of a modelPicker row added for the same model
  • Fixed CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC hiding the Claude apps gateway spend limit in /usage and the status line. The spend limit request goes to the gateway the session is signed in to
  • Fixed --tools and --restricted not applying to built-in tools that register after launch, and deprecated tool names reaching tools outside the caller's tool set
  • Fixed Esc not stopping a self-paced /loop that was moved to the background with ←; cancelling a pending wakeup now shows a notice
  • Fixed a background session's /loop stopping without notice when its next wakeup came due while the session's process was down; the session now says so and Claude is told
  • Fixed the /advisor dialog showing a checkmark on a saved advisor model that is no longer available; it now opens on "No advisor"
  • Fixed the terminal freezing, with ctrl+c ignored, when a response ran to tens of thousands of lines
  • Fixed a mod's hot reload missing a save made while /reload-plugins or session start was reading the mod's files
  • Fixed /model, /fast and /output-style saving their setting without asking a plugin's config.set hook
  • Fixed variables a SessionStart hook writes to CLAUDE_ENV_FILE not reaching the Bash tool after an in-app /resume or /branch
  • Fixed generated type files being written into a --plugin-dir plugin's folder in -p and SDK sessions; they are now written only where a mod is being developed
  • Fixed /model saying a Max effort pick was saved as your default for new sessions; Max applies to the current session only
  • Fixed temporary files left under ~/.claude/seed-admin by an interrupted /ultrareview upload never being removed by the retention cleanup
  • Fixed the prompt sent after a /rewind being lost, and the removed turns coming back, when the session was moved to the background or resumed after being killed
  • Fixed changing the auto-update channel in /config saving before a plugin's config.set hook was asked
  • Improved token counts behind a Claude apps gateway on Amazon Bedrock, which /context and large file reads use: the gateway now gets them from AWS's CountTokens API instead of a one-token model request. Grant bedrock:CountTokens to use it
  • Changed Ctrl+C at the idle prompt of an attached background session to leave a pending /loop wakeup alone, so pressing it twice detaches and the loop keeps running; press Esc to stop it
  • [VSCode] Fixed Ctrl+Shift+Tab, Cmd+Shift+Tab and Alt+Shift+Tab in the chat input also switching the permission mode, and Ctrl+Tab accepting the suggested prompt
v2.1.2942026-10-08—
  • Fixed prompt and agent hooks written as instructions (such as "Block commands that...") allowing what they should block
  • Improved how prompt hooks on Stop and SubagentStop written as instructions (such as "Carry on if the build is broken") are judged, so Claude is less likely to stop early
v2.1.2932026-10-07/modelFIX /tuiFIX --chromeFIX --no-chromeFIX --toolsFIX --agentFIX /clearFIX /ultrareviewFIX --settingsFIX /feedbackFIX Ctrl+OFIX Ctrl+ZFIX /loopIMP
  • Added Claude Haiku 5.5 (claude-haiku-5-5), now the default Haiku model on the Anthropic API — 1M context, $0.10/$0.50 per Mtok ($0.50/$2.50 for prompts over 100K)
  • Added agentType to the subagentStatusLine payload, so scripts can tell custom subagent types apart
  • Added isDeferred to $.tool.register for mods: false lists the tool's schema in the prompt from the start instead of behind tool search
  • Fixed /model effort ←/→ wrapping past the highest or lowest level, which could accidentally save Low as a model's default effort
  • Fixed /tui disconnecting Claude in Chrome in a session started with --chrome, and ignoring --no-chrome
  • Fixed Claude being told to continue or message subagents with SendMessage in sessions, including resumed ones, where a host, a permission rule or a --tools list removed that tool
  • Fixed subagents and --agent sessions being told a built-in tool was disabled for the whole session when only their own tool list left it out
  • Fixed a claude.ai-synced skill's edited description sometimes not reaching the model until a new conversation or /clear
  • Fixed the /ultrareview upload on Linux wrongly refusing some repositories, such as one inside another checkout, over a settings file that "could not be parsed" while a sandboxed command was running
  • Fixed the /ultrareview upload's refusal over split-index files advising a git command that could leave git unable to read its index
  • Fixed claude agents offering bypass permissions that background sessions then ignored when consent was saved only in .claude/settings.local.json or a --settings file; it now asks for consent first, and a session that ignores bypass shows a short notice that stays
  • Fixed /feedback returning to the drafts list after Ctrl+O or Ctrl+Z while a report was sending, leaving the send impossible to cancel
  • Windows: Fixed stopping a status line, hook, or shell command sometimes terminating an unrelated process that had been given the same process ID
  • Reverted the 2.1.290 fix for cloud sessions staying asleep after a container restart lost a pending /loop wakeup or scheduled task; Claude is no longer told, and the session stays asleep
  • Self-hosted runner: Changed the orchestrator to sleep 4 to 6 seconds between polls instead of a constant 5, so several replicas for one environment stop polling at the same moment
  • [Claude Tag] Fixed Claude in Slack saying a workspace isn't set up in Enterprise Grid channels shared across workspaces when Slack labels a message with a workspace that isn't connected
  • [Claude Tag] Fixed Claude in Slack stopping mid-task in a channel when an admin changed the channel's connectors, plugins, skills or rules; the change now applies once Claude finishes
  • [Claude Tag] Fixed asking Claude in Slack to run a thread's routine now with extra notes starting a separate run that couldn't post back; the run now continues in that thread
v2.1.2922026-07-28--marketplace <source>NEW --marketplaceNEW /ultrareviewFIX /resumeFIX /branchFIX /clearFIX /loopFIX /bugFIX /shareFIX /feedback <text>FIX /feedbackFIX Ctrl+OFIX Ctrl+ZFIX /remote-envFIX /add-dirFIX Shift+EFIX Ctrl+LFIX /cdFIX /nameFIX /themeFIX /configFIX ctrl+oIMP Ctrl+CIMP /focusIMP
  • Added --marketplace <source> to claude plugin install: adds the marketplace if needed, under the same policy checks as claude plugin marketplace add, then installs the plugin from it
  • Added an effort parameter to the Agent tool, so Claude runs a sub-agent at the effort level you ask for
  • Added CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS environment variable to set a longer base delay for the backoff when retrying an overloaded (529) request
  • Added prompt.autocomplete, an event a mod hooks to add its own rows to the prompt box's autocomplete list
  • Added prompt caching to $.model.complete for mods: prompt and system take blocks of text, and cache: true on a block caches the request up to it
  • Added workflow agents to the agent.spawn mod hook, with their run and index, so a mod can refuse them
  • Fixed sandboxed commands being able to read the staged file copies of /ultrareview uploads under ~/.claude/seed-admin
  • Fixed plan mode not being restored when resuming a session from the claude --resume session picker or with /resume
  • Fixed saved scheduled tasks created after /resume, /branch or /clear never firing, and saved tasks ignoring later creates and deletes after two writes to the tasks file milliseconds apart
  • Fixed a background session's /loop silently stopping when the session's process restarted (for example after a crash), because its pending wakeup was lost
  • Fixed /bug, /share and /feedback <text> starting over after Ctrl+O or Ctrl+Z while a report was being sent, and closing as cancelled after it had been sent
  • Fixed /remote-env replacing your saved default environment when you pressed Enter right away: the list now opens on your default, and no row has a check mark when no default is in effect
  • Fixed /add-dir path box letting Shift+Enter or a paste add a line break, and treating fast-typed "tab", "up" or "down" as those keys
  • Fixed fullscreen mode sending a full-screen clear on every window resize and Ctrl+L when iTerm2 is detected, which may be what filled iTerm2's scrollback with stale pages
  • Fixed "instruction file not loaded" lines going stale or missing after /cd or a permission change, and added a transcript line when a nested one isn't loaded
  • Fixed a compaction summary that repeated /name letting Claude invoke a skill that is reserved for the user
  • Fixed /theme, the /config Theme menu and the first-run theme step saving a theme before a plugin's config.set hook was asked
  • Improved rendering speed of long bulleted or numbered replies: they stream, resize and re-open in the transcript (ctrl+o) much faster
  • Improved Ctrl+C draft recovery: a cleared prompt now stays reachable with Up after a slash command or a sent message
  • Improved the /focus tip: it now invites you to try focus view mid-turn and shows how to switch back
  • [Cloud sessions] Fixed routine runs occasionally staying listed as running for hours after they had finished
  • [Cloud sessions] Fixed editing or duplicating a routine turning off its push notifications when the routine had no saved notification setting
  • [Cloud sessions] Fixed SVG, HEIC, TIFF and other less common image files failing to attach; they now attach as regular files
v2.1.2912026-10-06—
  • Fixed a regression in 2.1.290 where cloud sessions could drop answers to permission prompts
  • Fixed a regression in 2.1.288 where the last messages of a session could be lost when quitting
v2.1.2902026-10-05--jsonNEW /claude-apiNEW /statusNEW /rewindFIX /loopIMP /backgroundFIX --json-schemaFIX /ultrareviewIMP /permissionsFIX --restrictedFIX Ctrl+XIMP ctrl+oFIX Ctrl+FFIX /teleportFIX /clearFIX --channelsFIX /chromeIMP /sandboxFIX --continueFIX --resume <session-id>FIX --allow-dangerously-skip-permissionsFIX /loginIMP --include-partial-messagesFIX Ctrl+KIMP /pluginIMP --chromeIMP /artifactsIMP /code-reviewIMP /modelIMP /effortIMP /renameIMP --hostnameIMP
  • Added serverToolUses to the result of a mod's turn.step hook: the tool calls the API ran itself (the advisor), each with its id, name, input, start and end
  • Added agentId to the tool.check event of plugin hooks, so a hook can tell a subagent's permission check from the main session's
  • Added ceiling to the question and verdict a mod's tool.check hook reads, naming the approval an organization requires for a tool
  • Added ThemeKey and Color types to the plugin hooks typings, so an editor lists the theme colors a mod's drawing can name
  • Added to claude plugin validate: each hook a mod registers at a gating site is listed with whether it has a .catch (gatingHooks under --json)
  • Added a Deny button to the Claude apps gateway's sign-in approval page: it ends the pending sign-in, so the waiting terminal stops within seconds
  • Added claude attach <name> and claude logs <name>: part of a session name works in place of the id
  • Added /claude-api managed-agents-onboard <url> to set up the Managed Agents pattern a page describes as ant apply files
  • Added /claude-api managed-agents-onboard <quickstart-name> to build a Console quickstart template, such as deep-researcher, with the ant CLI
  • Added a warning when a managed settings file is a link to a file outside the managed settings folder
  • Added a /status and doctor warning when managed settings ignore user-configured sandbox allowRead paths or allowed domains
  • Fixed /rewind not listing a prompt sent while Claude was still working
  • Fixed scheduled tasks (/loop with an interval, reminders) silently not coming back on resume once the conversation was compacted; covers compactions made from this version on
  • Fixed scheduled tasks set in the foreground never firing after a ← or /background hand-off, and recurring ones firing an extra run on every resume, respawn or fork
  • Fixed headless --json-schema runs exiting non-zero with is_error: true on a success result when the connection dropped after the structured output was already delivered
  • Fixed /ultrareview dropping uncommitted changes without a warning on Windows when git stash create failed, and refusing them after a git add -N file was deleted or moved
  • Self-hosted runner: Fixed a crafted, very long line of a session's error output freezing the runner for several seconds
  • Fixed /ultrareview failing to upload uncommitted changes when core.safecrlf=true is set in git's configuration
  • Fixed Claude Code hanging until killed when a /permissions tab was clicked while searching in fullscreen mode
  • Fixed an @-mention under the read block or --restricted being able to read a file outside the working directories through a link changed mid-read
  • Fixed agent view losing a background session's /loop run count, countdown and live status line after the session enters a worktree that it creates
  • Fixed repeated Ctrl+X in the agents view deleting the whole next section after the bottom session of a section was deleted
  • Fixed a slowdown when expanding the transcript (ctrl+o) or resizing over large tool output that contains non-ASCII characters such as arrows, dashes or box-drawing
  • Fixed Esc after an n: or Ctrl+F search in the agents view moving focus to a section header, where Ctrl+X twice would delete every session in the section
  • Fixed /ultrareview uploading uncommitted changes unfiltered for files under a git filter driver named unset or unspecified; the upload now stops and asks you to rename the driver
  • Fixed claude --teleport and /teleport deleting the files in a folder that had replaced a tracked file of the same name when you chose to stash: the stash is now refused, and says why
  • Fixed agent view's /loop run count freezing and its countdown disappearing after /clear; the count now restarts with the new conversation
  • Fixed --channels permission relay: a reply ID that repeats within a session is now ignored instead of approving a different prompt
  • Fixed /chrome "Reconnect extension" not restoring browser tools after a failed Chrome connection, and added an explanation when it can't (anthropics/claude-code#98135)
  • Fixed /ultrareview of a local branch silently leaving uncommitted work out of the upload in a repository that keeps its branches outside .git (git 2.54+); it now refuses with an explanation
  • Fixed cloud sessions staying asleep after a container restart lost a pending /loop wakeup or scheduled task; Claude is now told and can schedule it again
  • Fixed a freeze before the first request and in the /sandbox Config tab on Linux and WSL when a sandbox read rule such as ~/**/.env covers a large folder
  • Fixed plan mode not being restored when resuming a session with --continue or --resume <session-id> in the terminal
  • Fixed the rewind menu (Esc Esc / /rewind) freezing for hundreds of milliseconds per keypress when the conversation contains a very large pasted stack trace or source file
  • Fixed --restricted (and CLAUDE_CODE_RESTRICTED=1) sessions opening the cross-session messaging socket
  • Fixed background workers honoring --allow-dangerously-skip-permissions on respawn without the bypass-permissions disclaimer having been accepted
  • Fixed macOS /login reporting success when the keychain refused the new login and kept an old one it could not remove
  • Fixed SDK hosts using --include-partial-messages seeing a reply stay open after the turn ended when its stream was cut, interrupted or fell back to non-streaming
  • Fixed /loop and other recurring session-only scheduled tasks running an extra time after a sandboxed Bash command on Linux or after .claude/scheduled_tasks.json was deleted
  • Improved permission prompts from background agents to show the Ctrl+X Ctrl+K shortcut that stops all background agents
  • Improved the reply to /plugin in the desktop app's Code tab: it now says where to install and manage plugins there
  • Improved the error shown when a cloud session is started without a claude.ai sign-in: it now names claude auth login and /login and no longer blames API-key authentication
  • Improved the error shown when a git config file stops the /ultrareview upload: it is about half as long and says what kind of file is the problem
  • Improved the errors shown when the /ultrareview upload refuses a checkout: each known cause now has its own message, with a way to fix it
  • Changed Claude in Chrome so that a project's settings files can no longer turn it on; use --chrome, /chrome or your user settings
  • Changed /artifacts: opening an artifact in your browser now closes the list
  • Changed the errors shown when the /ultrareview upload fails at a git step: they name the step and what to try, and no longer repeat git's own error text
  • Changed /code-review at medium effort to also report cleanup and CLAUDE.md conventions findings on models without tuned review settings, including Opus 5.5 and Sonnet 5.5
  • Changed background sessions waiting on a scheduled wakeup (/loop): they are now left running through updates and low memory, where being restarted or shut down could silently lose the wakeup
  • Changed /model, /effort and /rename sent from claude agents to a busy background session to apply right away, without a confirmation, instead of when the turn ends
  • Changed the built-in gh api in cloud sessions: a host other than github.com set in GH_HOST or GH_REPO is now refused (use --hostname or a full URL), and stderr notes requests to other hosts
v2.1.2892026-10-03--plugin-dirFIX --jsonFIX
  • [VSCode] Reverted a 2.1.288 change to claude auth status that may have made sign-outs more frequent
  • Fixed plugin list, plugin eval and plugin update showing a stale copy of a plugin installed from a local folder marketplace, and hot reload for a symlinked --plugin-dir
  • Added agent.spawn for teammates, one agent id across plugin hook events, and idle and waiting states in $.agent.list()
  • Fixed claude plugin validate failing an Anthropic marketplace's own plugin and listing a clean plugin.json in --json
v2.1.2882026-10-02Ctrl+CNEW --max-findings defaultNEW /code-reviewNEW --max-findingsNEW Ctrl+FNEW Shift+TNEW --resumeFIX --plugin-dirFIX /pluginFIX /compactFIX /loginFIX /tuiFIX ctrl+eFIX --bareFIX /themeFIX /permissionsFIX /usage-creditsIMP --paginateIMP /autocompactIMP Ctrl+NFIX
  • Added $.ui.selection() for mods: returns the text you last selected in fullscreen mode and, when the selection lies within one transcript row, that row
  • Added a built-in gh api to cloud sessions whose image has no GitHub CLI, and fixed the built-in sending control characters from file names, jq filters or GitHub errors to the terminal
  • Added recovery for a prompt cleared with Ctrl+C: pressing Up on the empty prompt brings the draft back, including pasted text and images
  • Added a re-authenticate prompt when an MCP server asks for more OAuth scope during a tool call
  • Added --max-findings <n>|all to /code-review to report more or fewer findings than the usual limit; the choice is reused until you pass --max-findings default
  • Added Ctrl+F to find a session by name and Alt+↑/↓ to jump between groups in the agents view; both, and rename, can be rebound in keybindings.json
  • Added a screen reader mode announcement of the new permission mode when you approve a plan, including with Shift+Tab
  • Fixed --resume sometimes dropping files and other context that a compaction had just restored
  • Fixed a resumed session sometimes not saving the last response of a turn, so that the next --resume showed the prompt unanswered
  • Fixed plugins loaded with --plugin-dir not showing "Configure options" in /plugin
  • Fixed Edit and Retry in Cowork cloud sessions refusing a message sent before /compact even though its history was still saved
  • Fixed /login reporting "Login successful" when credentials could not be saved to secure storage; it now shows the failure, and offers a retry when the new login didn't take effect (anthropics/claude-code#73861)
  • Fixed the keyboard not working on Windows after Claude Code restarts itself (first sign-in to a Claude apps gateway, provider setup, /tui)
  • Fixed the "What should Claude do instead?" hint showing on the Interrupted row after sending queued messages with ctrl+enter
  • Fixed /login in a --bare session running a sign-in the session never reads, which could replace your saved login; it now says which credentials work
  • Fixed the terminal cursor not following the typed text in the fullscreen transcript viewer's search and in /theme's custom color search
  • Fixed /permissions in screen reader mode: typing a rule's number now picks it instead of opening the search box
  • Improved the /usage-credits message shown to Team and Enterprise members whose organization has turned off usage credit requests
  • Self-hosted runner: Improved the built-in gh api: a refused gh command now prints its gh api equivalent, --paginate follows every page of a repository's lists, and a nested claude no longer removes it
  • Changed the agents view n: filter (and Ctrl+F search) so Enter opens the session whose name matches best instead of the top row
  • Changed /autocompact to save the auto-compact window per model, so each model keeps its own setting when you switch
  • [VSCode] Fixed a claude.ai connector staying on "Needs authentication" after you authorize it: the MCP servers dialog now offers Check connection
  • [VSCode] Fixed the opt-in New Conversation shortcut (Cmd/Ctrl+N) starting a conversation in every visible Claude view instead of only the one you are in
  • [VSCode] Fixed the chat view resuming the next saved session after you archive the one it shows; it now starts a new conversation instead
  • [Cloud sessions] Fixed the Cloud sessions switch in Claude Code admin settings staying locked off while an unrelated security setting was loading or had failed to load
  • [Cloud sessions] Fixed pressing Stop while a self-hosted runner was still starting not cancelling the queued message, which could then run once the runner was up
  • [Claude Tag] Fixed Claude Tag admin settings offering a "Remove this scope" option, which always failed, on channels whose settings were created automatically
v2.1.2872025-11-25/pluginNEW /modelFIX /advisorFIX /resumeFIX /permissionsFIX /rewindFIX /mcpFIX /configIMP --include-partial-messagesFIX /ultrareviewFIX --output-format stream-jsonFIX /feedbackFIX /bugFIX --plugin-urlFIX /desktopFIX /memoryIMP /skillIMP /stopIMP /usageFIX /contextFIX
  • Added Claude Mods: plugins may now modify deeper behavior
  • Added You should know, a built-in mod where a side agent watches your back and flags things you or Claude might miss. Turn it on with /plugin enable cc-plugin-you-should-know@builtin (for first-party sessions with telemetry on)
  • Added an n:<text> filter to the agents view that matches session names and tasks; a filter now shows matches in collapsed sections and Enter opens the first match
  • Added prompt_text to the OpenTelemetry user_prompt event, a copy of prompt for backends that nest dotted keys; drop or mask it wherever you drop or mask prompt (anthropics/claude-code#70763)
  • Added URL prompts from MCP servers on the 2025-11-25 protocol, for example to sign in. If a server no longer connects after this update, add "bareElicitationCapability": true to its MCP config entry
  • Windows: Added a startup warning when denying the Bash tool also turns off the PowerShell tool, so Claude has no shell tool
  • Self-hosted runner: Added a built-in gh api (REST only) for sessions that use Anthropic-managed git on macOS and Linux machines where the GitHub CLI is not installed
  • Fixed Bedrock and Vertex startup model checks ignoring an enforced availableModels list, which could collapse /model to one Opus row
  • Fixed picking Fable in /model on a claude.ai login saving the current version's id, so your saved default now follows the newest Fable like Opus and Sonnet do
  • Fixed switching between Opus 5.5 and Sonnet 5.5 (/model, opusplan) rewriting earlier MCP tool announcements, which could drop earlier extended thinking
  • Fixed /advisor pairing checks: Sonnet 5.5 can now advise Opus 4.7 and 4.8, and advisors the API would refuse are flagged up front instead of being silently dropped
  • Fixed screen reader mode leaving the cursor away from the typed text in search boxes (such as /resume and /permissions) and sign-in code fields
  • Fixed screen reader mode refusing Enter with nothing typed on /rewind's summarize options, whose added context is optional
  • Fixed screen reader mode listing arrow keys that do nothing in /permissions and /mcp, and saying "Select with numbers" in empty menus or while a search box has the keys
  • Fixed screen reader mode leaving out the top lines of a second approval prompt, a changed /config row or the rejected-plan line when the previous screen was taller than the terminal window
  • Fixed --include-partial-messages sending a cut-short reply's message_stop late or never, so apps could show the reply as still in progress
  • Fixed /ultrareview giving advice about .git/info/attributes when the upload stops on a committed .gitattributes it cannot read, such as one saved as UTF-16
  • Fixed the running-tool dot and three spinners still moving with the "Reduce motion" setting on, and /rewind's confirm screen updating its "ago" time while you type a note
  • Fixed /ultrareview upload refusals advising you to copy a variable named by a repository's settings file into your own user settings
  • Fixed --output-format stream-json and the SDK not streaming the turns of a context: fork skill run by typing /<skill> as the prompt, as they do for the Skill tool's fork
  • Fixed /feedback and /bug: the pre-filled GitHub issue no longer includes your recent error messages, and the confirmation screen now lists them as part of the report
  • Fixed a plugin reload that overlapped the startup --plugin-url download corrupting the session's cached copy of the plugin archive
  • Fixed /desktop quoting partial output when opening Claude Desktop timed out or printed too much output; the error now names the cause
  • macOS: Fixed Remote Control sessions started with claude remote-control stopping mid-turn when the Mac went to idle sleep
  • Windows: Fixed interactive claude hanging or crashing with "Raw mode is not supported" when its input is piped or redirected; it now says why and exits (use -p for piped input)
  • Improved /config: settings that cycle show ‹ › and step both ways with ←/→, narrow terminals stack each value under its label, and PgUp/PgDn page the list
  • Improved /memory: the left and right arrow keys now flip its on/off settings, such as Auto-memory
  • Improved /skill names typed mid-message: Claude is now told they are skills, including disable-model-invocation ones
  • Changed replies from claude agents to arrive as queued messages; slash commands other than /stop sent while a turn is running now run when it ends
  • [VSCode] Fixed a user's own /usage or /context command opening the extension's dialog instead of running when picked from the command menu
v2.1.2862026-09-30--continueFIX /loginFIX --fallback-modelFIX /statusFIX /feedbackFIX /usageFIX /compactFIX /clearFIX /rewindFIX /pluginFIX ctrl+eIMP Ctrl+GIMP /hooksIMP /protocolIMP --bareIMP /artifactsIMP /mcpIMP /skillsIMP /exitIMP /ultrareviewDEL
  • Added a count such as "2 of 5" to the permission prompt when several permission requests stack up
  • Added mouse support for the "N more" rows of lists in fullscreen mode: click one to jump to that end of the list, with hover and pressed states
  • Fixed claude --resume and --continue sometimes losing every turn after a batch of parallel tool calls when the earlier session crashed or was killed
  • Fixed macOS sessions still showing "Not logged in" or "Login expired" after /login succeeds in another Claude Code window when a leftover ~/.claude/.credentials.json exists
  • Fixed refusal and --fallback-model retries failing when the fallback model can't run fast; they now run at standard speed, with a one-time notice in interactive sessions
  • Fixed /status listing an Anthropic profile beside an API key as if both were in effect; the profile is now marked as not in use
  • Fixed the session transcript in the zip that /feedback saves to disk containing invalid JSON lines after secret redaction
  • Fixed /usage not crediting an MCP server for a tool call made while that server was still connecting or had only just connected, such as right after a restart
  • Fixed /compact, /clear, and /rewind typed while viewing a background agent's or teammate's transcript silently acting on the main conversation: a dialog now names the target and asks first
  • Fixed /plugin's Discover tab showing a marketplace name unquoted in its "Checking … for new plugins" line when its rows already show that name in quotes
  • Improved send now (ctrl+enter) in a subagent's view: it now moves the subagent's running command to the background so your message is read right away
  • Improved the external editor (Ctrl+G): editors that take a line number now open on the line your cursor is on in the prompt
  • Improved /hooks: the closing line of a hook's detail screen now says "this hook" instead of "it"
  • Improved the protocol page a Claude apps gateway serves at /protocol: it now says not to reject unknown input and matches what Claude Code sends today
  • Changed --bare to connect only the MCP servers named on the command line, send the model no system reminders, and start no background tasks; under --bare, a shell command that reaches its timeout now stops instead of moving to the background
  • Changed the send-now key (ctrl+enter) to move a skill's own shell command to the background instead of ending it
  • Changed list screens (/artifacts, /mcp, /skills, /hooks and others) to always line up each row's details in one column after the names
  • Changed /hooks to open on one list of your configured hooks grouped by event, so viewing a hook takes one Enter instead of three
  • Changed /exit's Remove worktree to run after Claude Code stops the servers and shells it started there, which on Windows could keep the folder from being deleted
  • Removed the browser link from /ultrareview and claude ultrareview output
  • Windows: Fixed claude --bg and the agents view refusing a folder that claude already trusts when its trust record was saved with different letter case
  • [VSCode] Added bookmarks: save Claude's responses and keep them in view in a Bookmarks side panel
  • [VSCode] Added the questions Claude asks and your answers to the conversation: after you answer a question card, a Questions row shows each question with your picks
  • [VSCode] Added option previews to question cards in the chat panel: the highlighted choice's mockup or snippet shows beside or under the options
  • [VSCode] Added rows under a message that open to the terminal output, browser tab, browser instructions and selected code sent with it
  • [VSCode] Fixed a second copy of a conversation opening in a tab when it was already open in the side bar; the side bar now switches to it
v2.1.2852026-09-29--continueNEW --resume <id>NEW --desktopNEW --resumeNEW --values-stdinNEW /pluginNEW --configNEW /teleportFIX /chromeFIX --chromeFIX /remote-envFIX ctrl+oIMP /autofix-prFIX /scheduleFIX /artifactsFIX --add-dirFIX /costFIX /ultrareviewIMP Ctrl+GFIX --max-turnsFIX /claude-apiIMP /clearFIX /compactFIX /btwIMP /resumeIMP --mcp-configIMP /autocompact 200kIMP /autocompactIMP /memoryIMP --permission-modeIMP /tasksIMP --separate-git-dirIMP --filterIMP /configIMP /renameFIX
  • Added CLAUDE_CODE_DISABLE_WEB_FETCH environment variable to turn off the WebFetch tool
  • Added claude --desktop to open the Claude desktop app on the current directory, or on a session with --continue / --resume <id>
  • Added claude plugin configure <plugin> to show a plugin's options and which are unset, or save new values read from stdin with --values-stdin
  • Added <server>.<key>=<value> to claude plugin install --config, so a bundled .mcpb MCP server's own settings can be set at install time and it starts without visiting /plugin → Configure
  • Added allowedProviders managed setting to limit which API providers a machine may use (Anthropic API, a custom endpoint, Bedrock, Mantle, Vertex AI, Foundry, Claude Platform on AWS, or a Cloud gateway)
  • Added CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES environment variable to cap re-sends of a non-streaming fallback request that timed out
  • Fixed SSH passphrase and new-host prompts from worktree and /teleport fetches taking over the terminal; these fetches now fail fast instead of asking
  • Fixed claude remote-control --help saying --[no-]chrome defaults to the machine's /chrome setting; spawned sessions keep Claude in Chrome off unless --chrome is passed
  • Fixed cloud session creation and /remote-env reading only the newest 20 of an account's environments
  • Fixed installing a plugin with claude plugin install or /plugin putting it into an installed plugin's cache or data folder when their ids differ only in ., -, @ or (macOS, Windows) capitals; the install is now refused
  • Fixed the fullscreen ctrl+o transcript freezing briefly when opened on turns with hundreds of file reads or searches; tool calls still running when the transcript opens now show their results when they finish
  • Fixed /autofix-pr and /schedule saying the Claude GitHub App is not installed on a repository whose install status had not been checked yet
  • Fixed dismissing a row (x) in /artifacts unlinking its file from the artifact, so publishing the same file again created a new artifact instead of updating it
  • Fixed an Artifact allow rule ("don't ask again") letting the Artifact tool publish a file outside the working directories without asking; add the file's folder with --add-dir for the rule to cover it
  • Fixed /cost and SDK modelUsage reporting a turn under the wrong model when the server answered a refusal with a different fallback model than the client expected
  • Fixed a misleading "core.worktree is set" error from /ultrareview when the project folder briefly could not be read
  • Fixed /ultrareview on macOS and Linux failing to upload the working tree from a git worktree whose per-worktree config sets core.longpaths
  • Fixed /ultrareview uploads including uncommitted changes to credential files whose name has a colon before the extension, such as server:8443.key
  • Fixed /ultrareview uploads on macOS and Linux running slowly on some unusual file names, and their credential-file check missing file or folder names with many backup or editor marks
  • Fixed vim mode: after editing in the external editor (Ctrl+G), x or r in NORMAL mode no longer breaks a pasted-text placeholder at the end of the prompt
  • Fixed plugins silently skipping a bundled .mcpb MCP server that still needs configuration: /plugin, the install message and claude plugin install now say so and point to Configure
  • WSL: Fixed /ultrareview refusing to upload a checkout on a Linux volume when a changed file's name has a colon or ends in a dot or space
  • Fixed CLAUDE_CODE_RESUME_INTERRUPTED_TURN re-running a turn that had ended at --max-turns
  • Windows: Fixed /ultrareview uploading a linked worktree of a repository rooted at your home folder in some cases
  • Fixed the /claude-api eval runner scaffold and report builder writing through a symlink or hard link planted at an output file
  • Fixed the /claude-api eval runner scaffold counting responses cut off at max_tokens in the score averages; they are now marked truncated and counted separately
  • Fixed a brief freeze (up to a second) partway through long sessions outside fullscreen mode, which came back after /clear or /compact
  • Improved Remote Control: a /btw side question asked of a session hosted by an app such as Claude Desktop now sees the turn in progress, not only the last finished one
  • Improved /resume and claude --resume on a session that is running in the background: they now open that session instead of refusing, and a prompt given with claude --resume <id> "prompt" is sent to it as its next turn
  • Improved responsiveness when leaving the ctrl+o transcript view in long sessions when fullscreen rendering is off
  • Changed MCP tools so a tool that sets its own _meta['anthropic/alwaysLoad'] to false stays deferred when its --mcp-config, Agent SDK or plugin server is set to alwaysLoad
  • Changed Code Review's pull request reviews and /ultrareview to run when disableWorkflows is on, unless the machine running the review has it set by its own administrator (MDM or the managed-settings file)
  • Changed sessions behind a custom ANTHROPIC_BASE_URL to use the 1M context window of models that have one (Opus 4.7+, Sonnet 5+, Fable); run /autocompact 200k if your gateway stops at 200K
  • Changed /memory so that Auto-memory can no longer be turned on from a background session or from a session one of Claude Code's own tools started; turning it off there still works
  • Changed claude -p and Python Agent SDK sessions on third-party providers or with telemetry off to start in auto mode when no permission mode is configured, like interactive sessions; --permission-mode still overrides it
  • Changed /ultrareview on macOS and Linux to leave symbolic refs out when uploading a local checkout; a checkout whose current branch is a symbolic ref is now refused with an explanation
  • Windows: Changed project and local settings env to no longer set ALLUSERSPROFILE, SystemDrive, or the CommonProgramFiles variables; set them in user or managed settings instead
  • Changed /tasks to fold background work Claude Code runs for itself under one "System tasks" row; press Enter on it to show those tasks
  • Changed /ultrareview on macOS and Linux to require git 2.31 or newer to upload a local repository; checkouts made with --separate-git-dir are now refused instead of being uploaded with an older method
  • Changed /ultrareview uploads on macOS and Linux to send a partial clone as a working-tree snapshot on git 2.31 or newer, instead of falling back or refusing when git's version looked too old
  • Changed /ultrareview uploads on macOS and Linux to refuse, instead of fetching, a partial clone missing some of its working tree's files on older git versions; a clone made without --filter uploads
  • Changed /claude-api so it can no longer be run from Remote Control clients
  • Changed /config chrome=true to direct you to the /config panel instead of enabling Claude in Chrome by default; /config chrome=false still turns it off when it was on
  • [VSCode] Added a note under a restored tab's last message when a window reload interrupted it and no reply will follow
  • [VSCode] Added a plugin options form to Manage plugins: installing a plugin that has options asks for the unset ones, and a gear on its row changes them later
  • [VSCode] Added an on-demand diagnostics tool so Claude in the panel can read the Problems panel's current errors and warnings at any time, not only right after it edits a file
  • [VSCode] Fixed pressing Enter after typing a slash command running an unrelated menu item picked by fuzzy match, or doing nothing
  • [VSCode] Fixed the editor tab keeping an old name after a session was renamed with /rename, by a SessionStart hook, or on claude.ai
v2.1.2842026-09-28/usageNEW /effortNEW /rate-limit-optionsNEW /helpNEW /mcpNEW /extra-usageFIX /pluginIMP Ctrl+UFIX /configIMP /modelFIX /keybindingsFIX /upgradeFIX /usage-creditsFIX /loopFIX /ultrareviewFIX /claude-apiIMP /tasksIMP /copyIMP /hooksIMP --allowedToolsIMP /recapIMP /artifactsIMP /netIMP --add-dirIMP /feedbackFIX /settingsFIX
  • Added Claude Sonnet 5.5 (claude-sonnet-5-5), now the default Sonnet model on the Anthropic API — 1M context, $2/$10 per Mtok with $0.20/Mtok cache reads
  • Added a "Yes, but ask again next time" answer to auto mode's prompt before a read outside the working directories, so you can allow that one read and still be asked about later ones
  • Added dollar amounts to the Claude apps gateway spend limit in /usage and the status line (for example "$271.40 / $500.00 spent this month") when the gateway runs this version or later; the status line's rate_limits.spend_limit also gains used_usd, limit_usd and period
  • Added effortSlider:decreaseEffort, increaseEffort and toggleUltracode keybinding actions, so the /effort slider's arrow and Tab keys can be rebound in keybindings.json
  • Added /rate-limit-options to /help and the command menu for claude.ai subscribers, so the usage-limit notices that mention it point to a command you can find
  • Added /mcp reconnect all in the interactive terminal to retry every MCP server that failed to connect or needs authentication at once
  • Added Claude apps gateway startup warnings when a managed policy's availableModels is empty, or leaves out the model Claude Code starts on without setting model or enforceAvailableModels
  • Added auth: { google: {} } for Claude apps gateway telemetry.forward_to destinations, so telemetry can be exported straight to Google Cloud's OTLP endpoint using the gateway's Google Cloud credentials
  • Added certificate client authentication (private_key_jwt) between the Claude apps gateway and its identity provider, for identity providers that issue certificate credentials instead of client secrets
  • Fixed repeated calls to the plan-usage endpoint after it rate-limits or rejects your login: /usage, /extra-usage and IDE usage views now back off instead of re-asking
  • Fixed the /plugin configure screen: boolean options are now a true/false choice instead of free text, number options refuse invalid input, and ←/→ change an options field instead of switching tabs
  • Fixed ↓ in shell mode selecting a hidden background-tasks pill, which stopped Backspace and Ctrl+U from editing the prompt
  • Fixed tab bars in dialogs such as /config and /plugin breaking the title and tab labels mid-word in a narrow terminal; a tab that doesn't fit now moves to the next line whole
  • Fixed the /model picker showing "+1 model" below the list after scrolling to the last model; the count now covers only the models below the visible rows
  • Fixed /keybindings writing Backspace and Delete bindings for a footer action that does nothing into the generated keybindings.json
  • Fixed usage-limit warnings suggesting /upgrade to users already on the highest Max plan; the warnings and /upgrade itself now point at /usage-credits when it is available
  • Fixed /loop status updates in self-paced mode often not being shown because Claude wrote them only in its reasoning; Claude now writes each update, and the outcome when the loop stops, as visible text
  • Fixed /ultrareview failing to upload the working tree when started from a git worktree that the Claude desktop app created on macOS or Linux
  • Improved /claude-api: hillclimb no longer spends rounds on prompt rewordings too small for the eval to measure, and an extra page you ask for beside report.html is built as one local file that loads nothing from the network
  • Improved lists such as /tasks, /copy and /hooks: the details after each name now line up in one column when they fit, and otherwise sit at the right edge
  • Changed Ultracode into its own toggle in /effort (Tab, or /effort ultracode [on|off]): it no longer forces xhigh effort and stays on at any effort level
  • Changed the non-interactive first turn to still wait up to 2s for connecting MCP servers named by --allowedTools or an mcp_tool hook, even when CLAUDE_CODE_MCP_STARTUP_WAIT_MS is 0
  • Changed /recap to decline with a short notice when it arrives relayed from a chat thread (your own included) or from a routine or webhook; typed in the terminal, the Claude apps, Remote Control, -p or an SDK host, it runs as before
  • Changed /artifacts to show its filter tabs beside the title with one-word labels (All, Mine, Shared), using the same tab bar as /config and /plugin
  • Changed artifact publishing to refuse a file on a network share (a \\host\share path or a /net automount) unless it is on a mapped network drive added with --add-dir
  • [VSCode] Added an optional time above each prompt and response, with a date line where the day changes (Claude Code: Show Message Timestamps setting, off by default)
  • [VSCode] Added plugin load errors and notes to the Manage plugins rows, with a popup to disable, uninstall or copy the error
  • [VSCode] Added an Ultracode on/off switch under the Effort slider, replacing the slider's Ultracode stop; the model pill shows "· Ultracode" at any effort level
  • [VSCode] Fixed typing /model and Enter printing usage text into the chat instead of opening the model selector
  • [VSCode] Fixed /feedback on Vertex, Bedrock and Foundry being refused after you pressed Send; the report is now saved on this computer, as the terminal does
  • [VSCode] Fixed a user's own /mcp, /config or /settings command being shadowed by the extension's dialog
v2.1.2832026-09-25/doctor prompt-auditNEW /checkup prompt-auditNEW /doctorNEW /checkupNEW --plugin-dirNEW /mcpIMP /usageFIX /modelIMP /contextFIX /remote-controlFIX Shift+EFIX /tasksIMP /helpIMP /hooksIMP /copyIMP /chromeIMP /memoryIMP /ideIMP /release-notesIMP /rewindIMP /diffIMP /remote-envIMP /pluginIMP /skillsIMP /artifactsIMP /ultrareviewIMP --system-promptIMP --append-system-promptIMP /workflowsIMP --configure-git
  • Added x-claude-code-prompt-id to the gateway hint headers so LLM gateways can group the requests that serve one user prompt; opt in with CLAUDE_CODE_GATEWAY_HINT_HEADERS=1
  • Added availableModelsMatch managed setting: with "exact", an availableModels entry allows only the model version it names, so new releases stay blocked until listed
  • Added deniedModels managed setting to block specific models, even when availableModels allows them
  • Added MCP tool, WebFetch and WebSearch outputs to the tool.output OpenTelemetry span event when OTEL_LOG_TOOL_CONTENT=1
  • Added /doctor prompt-audit (also /checkup prompt-audit) to audit your CLAUDE.md files, skills, agents and commands for prompting patterns written for older models
  • Added click-to-expand for truncated messages from your other sessions in fullscreen mode
  • Added path to --plugin-dir load-failure entries in the stream-json system/init plugin_errors, naming the directory that did not load
  • Added an opt-in load_test_mode block to the Claude apps gateway config: requests are built and signed but not sent upstream, and clients get a canned reply, so a deployment can be load tested
  • Added a mantle upstream provider to the Claude apps gateway for Amazon Bedrock's Mantle endpoint
  • Fixed MCP sign-in for a server with no valid URL failing with an opaque SDK error; /mcp no longer offers Authenticate for such servers
  • Fixed the weekly Fable limit not appearing in /usage and the VS Code usage meters when telemetry is disabled
  • Fixed /model accepting Sonnet 4.6 or Sonnet 5 with [1m] when the id carried a date or -v1:0 suffix, in the cases where the plain id was refused
  • Fixed /model picker showing a hardcoded Haiku version and price when ANTHROPIC_DEFAULT_HAIKU_MODEL pins a different model
  • Fixed /context not counting MCP server instructions: they now appear as their own row and count toward the total
  • Fixed the /remote-control menu cutting its QR-code hint mid-word in narrow terminals
  • Fixed vim mode . dropping a Shift+Enter newline, leaving the cursor inside an accented letter, and repeating an older change after 3J or Visual-mode J on the last line
  • Windows: Fixed the PowerShell tool letting cmd /c rd, rmdir, del or erase delete drive roots, the home folder and other folders that Remove-Item refuses
  • Improved the /mcp tool list: it shows more tools at once, scrolls with the page keys and mouse, and marks tools your organization blocked with a warning icon
  • Improved /tasks: rows show a status icon, the name and whole facts, the title and key hints stay on screen with many tasks, and the list gains paging keys, the mouse wheel and clicks
  • Improved lists in /help, /hooks, /copy, /chrome, /memory, /ide, /release-notes, /rewind, /diff, /remote-env, /plugin and other pickers with page keys, mouse wheel and clicks
  • Improved lists beside a search box, such as /skills and /artifacts, to draw their pointer dim while the search box has the keys, so only one pointer is highlighted
  • Changed the /ultrareview launch dialog to say that reviewing a local branch may upload uncommitted changes to tracked files
  • Changed the /model picker's Opus row and the Default model's name to drop "(1M context)" where Opus already has a 1M context window; the window is unchanged
  • Changed --system-prompt and --append-system-prompt to accept their text and -file forms together; the file's text comes first
  • Changed /rewind and /diff lists to move on the same keybinding actions as every other list (select:*); messageSelector:*/diff:* rebinds still work
  • Changed the /workflows run list to size itself like other lists: half the terminal inline, and it keeps its title on screen when the prompt shows below
  • Self-hosted runner: Changed lifecycle hooks' git to skip a repository's Git LFS pre-push hook, ignore a writable system core.hooksPath, and not sign commits without --configure-git
v2.1.2822026-09-24/statusNEW --chromeNEW /readyzNEW /feedbackNEW --continueFIX --resumeFIX /modelFIX /renameFIX /artifactsIMP --toolsFIX /NetworkFIX --allowedToolsFIX --add-dirFIX ctrl+eFIX ctrl+xFIX ctrl+sFIX --debugFIX /install-github-appFIX /bugFIX /shareFIX /skillsFIX /mcpFIX /tasksFIX --settingsIMP /effortIMP
  • Added a maxProseWidth setting that caps the width of Claude's prose in wide terminals while tables and code blocks keep the full width
  • Added a startup notice, and /status and claude doctor entries, listing telemetry variables in a project's settings files that were ignored or that turned telemetry off
  • Added the allowClaudeInChromeWithManagedMcp managed setting to let claude --chrome run alongside an exclusive managed-mcp.json; the error shown when Chrome is blocked now names it
  • Added store.readiness_grace_seconds to the Claude apps gateway so /readyz can stay ready through a short Postgres outage such as a database failover
  • Added a scrollbar to the /feedback drafts list in fullscreen mode; it appears while the mouse is over the list
  • Fixed more cases of continued or resumed sessions (--continue, --resume) re-sending earlier messages in a changed form, which could make the API drop Claude's earlier reasoning
  • Fixed earlier extended thinking being dropped when /model, /rename, /artifacts or another immediate slash command was used while Claude was working
  • Fixed continued or resumed conversations losing earlier extended thinking when relaunched with a --tools list that leaves out a built-in tool offered earlier in the conversation
  • Fixed /model with a full Fable model id stopping at an API error instead of opening the usage-credits prompt when the plan needs usage credits that aren't turned on yet
  • Fixed CLAUDE.md and rules being read at startup through a repository symlink reaching macOS's /Network via .. or a /.vol-style kernel path, or a rules link to macOS's /home being listed
  • Fixed Bash permission rules with a mid-pattern :* being skipped in settings files while --allowedTools honored them; they now work from every source, with a startup warning on how they match
  • Fixed repository, user and --add-dir skills, commands and skills-directory plugin manifests pre-approving their own tools via allowed-tools under managed allowManagedPermissionRulesOnly
  • Vertex AI: Fixed web search not being offered for models Claude Code doesn't recognize yet, such as newly released ones
  • Fixed the send-now hint showing ctrl+enter on terminals that send it as a newline (Windows Terminal before 1.25); it now shows ctrl+x ctrl+s there
  • Fixed claude remote-control --debug failing with "Unknown argument: --debug", although Remote Control's own eligibility error says to run with --debug
  • Fixed /install-github-app saying "cancelled" and then still pushing the branch and saving the API key secret; leaving now stops the remaining steps and reports what was already done
  • Fixed /feedback, /bug and /share on Bedrock, Vertex and other third-party providers still saving the report file after you cancelled during the save
  • Fixed a key typed right after / in /skills moving the skill list instead of reaching the search box
  • Fixed the terminal cursor jumping from the /skills search box to the skill list while typing, which could hide the caret and put IME input in the wrong place
  • Fixed lists with a scrollbar, such as /skills and /mcp, being two columns narrower outside fullscreen mode, where the scrollbar can never appear
  • Fixed a doubled · separator in the /tasks dialog footer when the stop-all-agents shortcut is unbound in keybindings.json
  • Improved /artifacts: titles line up in one column, details are dropped whole instead of cut mid-word, and the list supports PgUp/PgDn, Home/End, the mouse wheel and clicks
  • Updated the claude-api skill: pre-output refusal billing now links to the How refusals are billed docs, mid-stream refusals bill at normal rates, and pre-output refusals count against rate limits
  • Updated the claude-api skill to recommend ant apply for keeping Managed Agents resources as version-controlled files
  • Changed sandbox.excludedCommands to ignore project and local settings entries when managed settings or --settings set allowUnsandboxedCommands: false, or managed allowManagedDomainsOnly: true
  • Changed the ultracode visuals in /effort and the prompt input to plain styling (no ripple, border flourish or keyword glimmer) and removed the dynamic-workflows spinner tip
  • [VSCode] Fixed long replies falling behind the stream: the panel no longer re-parses the whole reply on every update
  • [VSCode] Fixed the dictation mic button covering the message input's scrollbar when the input is tall enough to scroll
  • [VSCode] Fixed Remote Control sessions started on this computer not opening from their Web entry in the session list; they now open the local conversation unless it's running elsewhere
  • [VSCode] Fixed an editor tab's sign-in screen hanging silently after the extension host restarts; it now shows the "stopped responding" notice too
v2.1.2812026-07-28/loginNEW /insightsNEW /skillsNEW /mcpNEW /pluginNEW /workflowsNEW --max-turnsFIX --input-format stream-jsonFIX --dangerously-skip-permissionsIMP --setting-sourcesFIX /bgFIX --worktree --tmuxFIX --add-dirFIX /loopFIX --channelsFIX --plugin-dirFIX --scopeFIX /permissionsIMP /configIMP Alt+TFIX /contextIMP /modelFIX /feedbackIMP /bugFIX /shareFIX /ideFIX /setup-bedrockFIX /setup-vertexFIX /renameFIX Shift+TFIX /memoryFIX /hooksIMP /exportFIX /copyFIX /themeFIX /teleportFIX Ctrl+CIMP Ctrl+DIMP /effortFIX /install-github-appIMP /heapdumpFIX /remote-controlIMP --agentsIMP /batchIMP /deep-researchIMP /usageIMP /helpDEL /sandboxIMP /desktopIMP /diffIMP ctrl+eIMP ctrl+xIMP ctrl+sIMP --system-promptIMP --append-system-promptIMP --system-prompt-fileIMP --append-system-prompt-fileIMP /artifactsIMP /tasksIMP /ultrareviewIMP /agentsDEL
  • Added Claude apps gateway support for newer Claude Desktop keys in desktop policy blocks, including blockReadsOutsideWorkingDirectories and disableBypassPermissionsMode
  • Added assume_role on Claude apps gateway Bedrock upstreams: the gateway calls Bedrock as an IAM role it assumes through STS, in another AWS account if needed, optionally one session per developer
  • Added guardrail: {id, version} on Claude apps gateway Bedrock upstreams to apply an Amazon Bedrock guardrail to every request sent through them (set it on all Bedrock upstreams or none)
  • Added telemetry.resource_attributes to the Claude apps gateway config, to put fixed labels on the telemetry of Claude Desktop and /login sessions
  • Added "attribution": false in settings.json to hide all commit and PR attribution; older CLI versions skip a settings file that holds it, so keep the object form in files shared across versions
  • Added MCP URL-mode elicitation on 2026-07-28 protocol connections, so servers can ask Claude Code to open a browser-based flow; no waiting dialog is left on screen when the server has no way to confirm completion
  • Added MCP server checks to claude plugin validate: it reports .mcp.json entries that would be silently dropped at load, undeclared ${user_config.*} references, and insecure URLs
  • Added an auto mode recommendation to /insights that estimates how many permission prompts auto mode could have handled in your recent sessions
  • Added a scrollbar to the /skills, /mcp and /plugin Installed lists in fullscreen mode, like the one /workflows now has: it appears while the mouse is over the list and can be clicked or dragged
  • Fixed a turn that could retry indefinitely, ignoring --max-turns, when the model alternated unparseable tool calls and output-limit truncation
  • Fixed --input-format stream-json sessions (Agent SDK, VS Code extension) and scheduled cloud sessions failing every turn with an error when an earlier assistant message had plain-string content
  • Fixed a recursive rm whose target is only command-substitution output, such as rm -rf "$(pwd)", running unprompted in auto and --dangerously-skip-permissions mode; it now asks even with a Bash allow rule, unless run with CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT=1
  • Fixed --setting-sources (and SDK settingSources) not being forwarded to spawned sessions: teammates, /bg, claude agents sessions and --worktree --tmux now start with the parent's restriction
  • Fixed CLAUDE.md and rules files from an --add-dir directory inside the working directory being sent to the model twice in headless and SDK sessions
  • Fixed scheduled tasks and /loop wakeups being fired again every second when their delivery failed, which could make Claude Code exit at the end of a turn
  • Fixed the "Not logged in · Run /login" footer and missing claude.ai connectors persisting in a session after logging in from another Claude Code process
  • Fixed --channels plugin entries being checked against the installed plugin's marketplace alone; the installed plugin's name must now match the entry as well
  • Fixed --plugin-dir on a folder of plugins that also has a .claude-plugin/marketplace.json loading one empty plugin instead of the plugins in it
  • Fixed claude plugin update failing for project-scoped plugins when --scope is omitted — it now resolves the scope the plugin is installed at instead of assuming user
  • Fixed the /plugin Errors tab showing no confirmation after its last error is resolved
  • Fixed /plugin starting a second uninstall or update of the same plugin when Enter was pressed again while the first was still running
  • Fixed a y held while /plugin checks a marketplace source adding the marketplace the instant the "Add marketplace?" question appears, before it can be read
  • Fixed 1 answering Yes in /permissions' delete and remove-directory confirms while the pointer is on No, which let a held 1 remove one workspace directory after another
  • Fixed Alt+T and /config offering to turn thinking off on models that can't; thinking now stays on there, with a one-line reason in place of the switch
  • Fixed /context total leaving out messages added since the last response; it now matches its categories and can read higher than the status line
  • Fixed /model showing the raw API error JSON and request ID when the API refuses the picked model; it now shows the server's message and says the model was not changed
  • Fixed /feedback, /bug and /share still sending your report after you cancelled it while it was being sent
  • Fixed /feedback, /bug and /share failing every send with "Couldn't send feedback" after a Remote Control Stop arrived while the dialog was open
  • Fixed /ide showing "No available IDEs detected" while also listing a running IDE
  • Fixed the terminal being left in a broken state (crash or garbled input) when /setup-bedrock or /setup-vertex restarts Claude Code to apply new settings
  • Fixed /config exiting when respectGitignore or copyFullResponse in ~/.claude.json holds null
  • Fixed the session name from /rename disappearing while Claude asks a multiple-choice question, so side-by-side sessions stay identifiable
  • Fixed pressing Shift+Tab twice quickly landing on the wrong permission mode
  • Fixed Ctrl+C or Ctrl+D pressed twice quitting Claude Code instead of closing the dialog in the remaining dialogs and pickers, such as /memory, /hooks, /mcp (including a server's sign-in screen), /export, /copy, /theme, and /teleport's uncommitted-changes and login prompts (where Esc also quit)
  • Fixed keys that arrive in one burst of input (e.g. over Remote Control), such as an arrow key followed by Enter, x or s, acting on the previous selection: a stale effort level in /effort and the model picker, and the previously highlighted row in /skills, the background task rows under the prompt, MCP server prompts and /install-github-app
  • Fixed /install-github-app updating the workflow after "Skip workflow update" was chosen, running setup twice on a repeated Enter, and ↑ on the repository step blocking a typed repository name when no repository was detected
  • Fixed PgUp and PgDn doing nothing in a dialog's list (for example /skills) in fullscreen mode
  • Fixed /heapdump summary saying most memory is native when it is in the JS heap snapshot
  • Fixed /workflows moving the pointer to a different run, and x stopping it, when a new run started while the list was open
  • Fixed the selected tab in tabbed dialogs (/config, /plugin, /permissions) showing no highlight while the tab bar has focus when color is off (NO_COLOR)
  • Fixed the mouse wheel over the /plugin Installed list scrolling the pane behind it instead of the list
  • Fixed long list rows, such as in the /remote-control menu, wrapping onto a second line in narrow terminals; they're now cut with …
  • Fixed /hooks and /mcp detail views printing a long value over the row below it in narrow terminals
  • Fixed lists such as a skill's state options in /plugin not being answerable by typing a number in screen-reader mode
  • Windows: Fixed Bash commands that write to $TMPDIR/… failing with "Permission denied"
  • Windows: Fixed a race in which Claude Code sessions updating at the same moment could delete each other's claude.exe backup, which could leave no claude.exe behind
  • Improved --agents to accept the path to a JSON file (with -p) as well as inline JSON, and to allow an empty prompt
  • Improved /batch to run where a WorktreeCreate hook provides the agent worktrees, not only inside a git repository
  • Improved the / menu, /skills, /context and the /plugin Installed list to show skills synced from claude.ai by their short name when no other command uses it, not anthropic-skills:<name>
  • Improved /deep-research reliability on long research briefs by removing unused required fields from the scope step's output
  • Improved keyboard navigation in tabbed dialogs such as /permissions and /usage: ↑/↓ move focus between the tab row and the content, and a list responds to keys only while it has focus
  • Improved /help and /sandbox: ←/→ and Tab switch tabs from inside a tab's list, and ↓ on an empty Custom commands tab in /help no longer leaves the keys stuck until Esc
  • Improved /install-github-app, /desktop, the /permissions auto mode environment prompts, and the /plugin "Add marketplace?" and "Run this command?" prompts: they now use the standard dialog frame with key hints, and Ctrl+C or Ctrl+D cancels them on the second press like other dialogs
  • Improved the /workflows and /mcp lists: they page (PgUp/PgDn, Home/End) and take j/k and the mouse like other lists, their arrows follow select:previous/select:next rebinds, and x in /workflows stops the run the pointer is on
  • Improved the /plugin plugin and marketplace details menus and the /remote-control already-connected menu: they now support Home/End and clicking a row
  • Improved the /plugin Installed list: rows now line up in columns (status, name, type, details) across every section
  • Improved /skills: each row now leads with the skill's name, with ✔ or ◯ alone showing on or off, and stays on one line in narrow terminals
  • Improved narrow list rows (/skills, /workflows, /feedback): a name keeps 20 columns beside its first detail, and details are shown whole or not at all
  • Improved /diff: a scrollbar shows where you are in a long list of changed files, and long paths no longer wrap their rows
  • Improved /hooks: a hook's detail screen now says what kind of hook it is and where to change it, instead of always pointing at settings.json, and the hooks-disabled, safe mode and managed-hooks-only notices each say what is happening in one plain sentence
  • Improved screen-reader output in /mcp: a disabled server is read as "off" instead of "pending"
  • Changed send now (ctrl+enter or ctrl+x ctrl+s) to move running tools to the background instead of cancelling the turn
  • Changed the dangerous rm prompt in --dangerously-skip-permissions and auto mode to wait 2 minutes for an answer, then deny the command with a rewrite hint so unattended sessions keep going (CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT=1 turns this off)
  • Changed self-hosted runners to pass system prompts to Claude Code as private files instead of command-line text, so large prompts no longer fail the launch; a wrapper or command hook that appends --system-prompt or --append-system-prompt must switch to --system-prompt-file or --append-system-prompt-file
  • Changed the session artifact links under the prompt into one footer pill (⧉ name or ⧉ N) that opens /artifacts, which now lists this session's artifacts first
  • Changed hovering a list row in fullscreen mode, including in /config, to tint the row instead of drawing a second ❯ pointer beside the focused row's
  • Changed /mcp: each server's row now starts with its status icon and name, says its state once, and in a narrow terminal drops trailing facts like "managed" before shortening the name
  • Changed /workflows: each run's row leads with its status icon and elapsed time, and a narrow terminal keeps the run's name and time, dropping the agent and token counts first
  • Changed claude plugin uninstall --json and the /plugin dialog to say a plugin's data was kept when its folder stays because another installed plugin uses it or install records cannot be read
  • Changed the background tasks list (/tasks): pressing x on a running /ultrareview now asks for confirmation before stopping the review
  • Removed the leftover "(removed)" /agents entry from the command menu and /help; typing /agents still explains where the wizard went
v2.1.2802026-09-22/skillsNEW /pluginNEW /modelFIX /effortIMP /configFIX /statusNEW /usageFIX /sandboxNEW /permissionsIMP /artifactsIMP /mobileFIX /loginFIX /upgradeFIX /usage-creditsFIX /install-github-appIMP /setup-bedrockFIX /setup-vertexFIX Ctrl+CFIX Ctrl+DFIX /workflowsIMP /mcpFIX /memoryFIX /compactFIX Ctrl+SFIX /ultrareviewIMP /clearFIX --configure-git --retire-atIMP ctrl+lIMP /costIMP /btwIMP --debug-fileIMP --settingsIMP /autocompactIMP /fastIMP /chromeNEW /exportNEW /planNEW
  • Added Claude Opus 5.5 (claude-opus-5-5), now the default Opus model — 1M context, $4/$20 per Mtok with $0.20/Mtok cache reads
  • Added mouse support to more lists in fullscreen mode: the wheel scrolls the /skills list, and a skill's state options in /plugin can be clicked
  • Added CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH to change the 2,048-character cap on MCP tool descriptions and server instructions for every MCP server in the session
  • Added hook output sizes and the number of oversized outputs saved to a file to the hook_execution_complete OpenTelemetry event
  • Fixed Ctrl+C or Ctrl+D pressed twice in most dialogs (/model, /effort, /config, /status, /usage, /plugin, /sandbox, /permissions, /artifacts, /mobile, /login, /upgrade, /usage-credits, /install-github-app, /setup-bedrock, /setup-vertex) quitting Claude Code instead of closing the dialog
  • Fixed voice dictation not stopping on Ctrl+C (the prompt cleared but the microphone kept recording), Esc not cancelling while a transcript was processing, and held Space starting dictation from the transcript view and vim NORMAL mode
  • Fixed skills in ~/.claude/skills/ being moved to ~/.claude/skills/.trash/ when a manifest.json in that folder listed their names
  • Fixed /workflows briefly showing a one-row list before opening the only run
  • Fixed the mouse wheel not scrolling selection lists with hidden options (such as /model and /permissions) in fullscreen mode
  • Fixed a skill you switched off showing the same red ✘ as a plugin that failed to load in /plugin and /skills; off now shows a dim ◯
  • Fixed the search box in /plugin, /skills and /mcp losing its right border in fullscreen mode
  • Fixed /mcp showing △ in the server list but ⚠ in the detail view for the same server; the list, detail views and /plugin now all show ⚠
  • Fixed Home and End doing nothing in the /config settings list and in selection lists such as /model, /memory and permission prompts
  • Fixed PgUp/PgDn in the /skills menu wrapping past the first or last skill instead of stopping there
  • Fixed Tab silently changing the selected setting's value in the /config list; it now does nothing there
  • Fixed a session failing on every turn and /compact when its saved history held a malformed notice about MCP tools that could not be loaded
  • Fixed /config crashing and some on/off preferences being misread when a preference that has moved to settings.json still holds a value like null or "false" in ~/.claude.json
  • Fixed Ctrl+C needing three or four presses to exit while background subagents are running; two presses now exit
  • Fixed a ! shell-mode prompt stashed with Ctrl+S coming back as a plain prompt when restored, and / listing file paths right after stashing one
  • Fixed /ultrareview reporting a stopped cloud review as completed or as an error to retry, and waiting out the full timeout when its session was deleted or the signed-in account changed
  • Fixed the Claude app showing a missing or stale context usage figure for Remote Control and cloud sessions right after /compact or /clear
  • Self-hosted runner: Fixed lifecycle-hook commits failing to sign under --configure-git
  • Windows: Fixed background cleanup deleting a directory symlink or junction used to relocate ~/.claude/session-env, image-cache or another cleaned-up folder
  • Self-hosted runner: Fixed a turn that ended right at a --retire-at release losing its finished signal; the runner now briefly waits for the turn to be reported before stopping the session
  • Reverted ctrl+l / cmd+k in fullscreen mode clearing the transcript view (added in 2.1.260); they redraw the screen again
  • Improved /permissions: focus returns to the rule list after viewing, adding or deleting a rule, and the delete-rule and remove-directory confirmations now default to No
  • Improved /permissions tab navigation: ←/→ and Tab pressed in a rule list now switch tabs without moving focus to the tab bar
  • Improved /cost cache-miss causes to name thinking mode and thinking display changes
  • Improved /install-github-app: the GitHub CLI check and repository selection steps now show "Esc to cancel"
  • Improved the /artifacts and /workflows lists: a scrollbar at the right edge shows how much of a long list is hidden and where you are in it
  • Improved /plugin's Add Marketplace form in fullscreen: it no longer draws a box inside the pane, and its text and key hints line up with the rest of /plugin
  • Improved the /workflows detail view in fullscreen: it no longer draws a second horizontal rule under the pane's divider
  • Improved /btw asked while a tool is still running: the side question now knows that call is in progress instead of reading it as a failed one
  • Improved /ultrareview uploads: renamed copies of key files, such as id_rsa copy or kubeconfig (1).yaml, now also stay on your machine
  • Improved the cross-session messaging startup warning to explain that --debug-file writes a debug log to a path you choose
  • Changed an effort level saved before /effort became per-model to no longer apply to newly released models such as Opus 5.5; they start at their default until you pick a level
  • Changed Opus 4.7, Opus 4.8 and Fable 5 to stop holding their launch-default effort over /effort in -p or the Agent SDK, a project, managed or --settings effortLevel, or a per-model level
  • Changed /autocompact's footer hint to name ←/→, the keys that adjust other ordered values
  • Changed /fast's footer to name Space as the toggle key
  • Self-hosted runner: Changed git in lifecycle hooks to ignore hook folders and programs named in the runner's shared git files; local-path and git:// remotes there now need GIT_ALLOW_PROTOCOL
  • [VSCode] Added a Status dialog, with a typed /status, showing the session's version, account, model and server details
  • [VSCode] Added a Sandbox dialog for the sandbox mode, the unsandboxed fallback and excluded commands, opened from the panel menu or by typing /sandbox
  • [VSCode] Added a Claude in Chrome dialog (extension status, the install, reconnect and permissions pages, the enabled-by-default setting), opened from the panel menu or by typing /chrome
  • [VSCode] Added Export conversation, with a typed /export, to copy or save the conversation as plain text
  • [VSCode] Added each skill's source, token estimate and on/off state to the Slash commands dialog, with a click to change the state, and a typed /skills that opens it
  • [VSCode] Added a typed /plan that switches to plan mode, sends a first planning prompt, or shows the session's plan
  • [VSCode] Improved pasted-text handling in the chat box: a paste over 800 characters or over 2 line breaks is now marked so Claude can tell it from what you typed
  • [VSCode] Improved prompt handling in the chat box: invisible Unicode formatting and tag characters are removed from pasted text with a notice, and from anything else before it is sent
  • [VSCode] Changed "Open in New Tab" to open Claude beside the editor group you are working in rather than after the last group
v2.1.2782026-09-19/statusNEW
  • Added an Auto mode server row to /status showing whether this session's auto mode classifier runs on the server
v2.1.2772026-09-18/configNEW /tasksNEW --resumeFIX /mcpFIX /plugin manageFIX /pluginIMP /clearFIX --continueFIX /resumeFIX /skillsFIX --plugin-urlFIX /loginFIX --worktreeFIX /statusIMP /ultrareviewIMP /modelIMP /logoutNEW /copyNEW /hooksFIX /memoryFIX /rewindFIX /effortFIX /fastFIX
  • Added AGENTS.md support: in a project with no CLAUDE.md, Claude Code reads AGENTS.md instead; change it under "Project instructions" in /config
  • Added CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1 for Claude apps gateways whose only egress is a forward proxy: every outbound request hands the proxy the hostname instead of resolving it locally
  • Added an optional headers: map on Claude apps gateway upstreams, to send static headers to a proxy you run in front of a provider
  • Added a line saying a background task's update is waiting when it finishes while a panel such as /tasks is open
  • Fixed conversations failing every request with "text content blocks must be non-empty" when an earlier assistant turn held an empty text block beside other content, including after --resume
  • Fixed a crash ("Type error") when opening /mcp or /plugin manage with a malformed claudeAiMcpEverConnected value in ~/.claude.json
  • Fixed sessions continued after /clear (restart, --continue, --resume) missing part of their first message when a SessionStart hook printed output, causing a full prompt-cache miss
  • Fixed the "copied" notice not appearing after drag-selecting text in the fullscreen /resume picker and other panels that cover the prompt area
  • Fixed /plugin not stripping terminal control characters from messages on the Installed tab, such as the error of a failed plugin update
  • Fixed /plugin → Installed and /skills crashing when a skill or legacy command is named like a built-in Object property such as constructor or toString
  • Fixed /plugin closing with no message when every install in a multi-select failed
  • Fixed uninstalled plugins reappearing as "failed to load" rows in /plugin Installed, and Remove not clearing such a row
  • Fixed plugin reload previews keeping every previewed copy of a plugin archive unpacked until exit, and overwriting the cached --plugin-url archive a reload falls back to when its download fails
  • Fixed the error after a revoked claude.ai login blaming an expired Anthropic profile; it now leads with /login
  • Fixed a headless resume (claude -p --resume, the SDK, a VS Code extension window reload) starting the session's cost and usage totals at zero; headless sessions now save their totals at exit
  • Fixed project skills from the main repository not loading in --worktree sessions when .claude/skills is untracked
  • Improved /plugin Installed: an MCP server listed apart from its plugin now shows which plugin it belongs to
  • Improved the startup notice overflow line under the logo: it now reads "N more notices hidden" instead of "+N more · /status"
  • Improved /ultrareview when there's nothing to review: messages say which case you're in, offer a command that reviews your latest commit, and a new repository's first commit is reviewed in full
  • Changed Fable to always appear in /model on the Anthropic API; it is greyed out only when your organization's settings disable it
  • Changed /ultrareview in non-interactive sessions to refuse when the repository has no base branch or shared history
  • [VSCode] Added a Sign out row to the panel menu, with /logout in the typed command menu
  • [VSCode] Added background shells and other running tasks to the agent map, each with a Stop, and a typed /tasks that opens it
  • [VSCode] Added a Copy response button on responses and a typed /copy
  • [VSCode] Added a one-time notice when inactive sessions are archived automatically, and an "Unarchive all" action on the Archived sessions group
  • [VSCode] Added the session's cost and token usage to the Account & usage dialog and the session manager where plan limits do not apply (Vertex, Bedrock, Foundry, API key)
  • [VSCode] Fixed the "General config" menu row showing /config usage text instead of opening settings, and made typed /mcp, /hooks, /memory, /rewind and similar commands open their dialogs
  • [VSCode] Fixed the effort slider's level not persisting into later sessions on a model that already had a level saved with /effort
  • [VSCode] Fixed Auto missing from the mode picker for conversations opened in an already-used panel when the saved model setting is a differently-cased alias such as "Sonnet"
  • [VSCode] Fixed /fast not saving fast mode as the default, so it was lost when the extension relaunched Claude Code
  • [Claude Code on the web] Added Personal and Organization sections to the environment picker on Team and Enterprise plans, and admins can now share a personal environment with the organization
  • [Claude Code on the web] Changed organization environments to open as a read-only summary from the Code tab on Team and Enterprise plans, with editing under Admin settings → Cloud environments
  • [Claude Code on the web] Fixed a cloud environment saved with Custom network access and no domains silently reverting to Trusted; the dialog now asks for at least one domain
v2.1.2762026-09-18—
  • Fixed every request failing with 400 … Input tag 'advisor_20260301' when ANTHROPIC_BASE_URL points at a proxy or gateway (2.1.275 regression)
v2.1.2752026-09-17/statusNEW ctrl+eNEW ctrl+xNEW ctrl+sNEW /pluginNEW --marketplaceNEW --forward-subagent-textFIX /ccmemoryFIX --resumeFIX /rewindFIX --continueFIX --plugin-dirFIX --plugin-urlFIX --drain-wait-secFIX /update-configFIX --system-promptIMP /desktopIMP /logoutIMP /remote-controlFIX
  • Added the signed-in account to Claude apps gateway sign-in: when the gateway names it, you confirm it before the credential is saved, and /status shows it
  • Added a send-now key (ctrl+enter, or ctrl+x ctrl+s) that interrupts the current turn and sends all queued messages at once; sent and queued messages show in gray until the model receives them
  • Added a startup warning when a configured otelHeadersHelper fails, so sessions that silently export no telemetry are noticed
  • Added syncing of the skills and plugins enabled on your claude.ai account to terminal sessions signed in with it; opt out with syncClaudeAiSkills: false or syncClaudeAiPlugins: false
  • Added /plugin install <plugin> --marketplace <source>, which offers to add the marketplace before installing the plugin
  • Fixed --forward-subagent-text stream-json and SDK output dropping the messages of subagents spawned by a context: fork skill, and of forked skills invoked by a subagent or another forked skill
  • Fixed a stray </ccmemory>-style closing tag occasionally appearing in responses
  • Fixed --resume, the resume picker preview, resumed background agents and the transcript view failing on a session whose saved history contains a malformed task-reminder or @-file attachment entry
  • Fixed /rewind in a forked or background session restoring a zero-filled or truncated file when the session's file-history backups could not be fully copied
  • Fixed --resume and --continue dropping a conversation's earlier thinking when a built-in tool it started with has since been switched off by a server-side flag
  • Fixed text selected with the mouse in the fullscreen claude --resume session picker never reaching the clipboard
  • Fixed plugin reload previews replacing a running session's extracted plugin files when the plugin was loaded from a --plugin-dir or --plugin-url archive
  • Fixed self-hosted runners with --drain-wait-sec losing the final result of a turn that finished during a SIGTERM drain; the runner now waits briefly for the turn to be reported
  • Fixed /update-config writing Write(path) permission rules, which file permission checks don't match, instead of Edit(path) rules
  • Improved prompt caching for a --system-prompt that contains a __SYSTEM_PROMPT_DYNAMIC_BOUNDARY__ line: the text above it is now cached globally, as the SDK's array form already is
  • Improved the /desktop error when Claude Desktop does not open: it now says why and what to do next
  • Improved the ListPlugins tool description so Claude knows it lists plugins enabled on your claude.ai account, not plugins installed locally with /plugin
  • Updated /logout for Claude apps gateway sign-ins to also end the session on gateways that advertise token revocation
  • [VSCode] Added viewing, editing and deleting a saved memory inside the Memory dialog
  • [VSCode] Added sending an attached image without typing any text
  • [VSCode] Added a Retry link to the MCP servers dialog when the server list fails to load
  • [VSCode] Added accept and reject buttons under each change in the proposed-change diff tab, so an edit can be reviewed change by change
  • [VSCode] Fixed the transcript creeping toward the bottom in small steps while a permission card waits and content keeps arriving
  • [VSCode] Fixed rewound and forked conversations not keeping the permission mode you had picked for the original conversation
  • [VSCode] Fixed /remote-control being ignored while Remote Control is still connecting: running it again now turns Remote Control off immediately
v2.1.2742026-07-28/rewindFIX /mcpFIX /goalFIX --continueFIX --resumeFIX --modelFIX --effortFIX --permission-modeFIX --allow-dangerously-skip-permissionsFIX --agentFIX /usage-creditsFIX /scheduleFIX /statusIMP /fast onFIX /fastFIX --strict-mcp-configFIX --mcp-configFIX --input-format stream-jsonIMP /loginIMP /code-reviewIMP /web-setupIMP /ultrareviewIMP /btwFIX Shift+EFIX
  • Added a visible warning when memory usage is critical, with steps to free memory or restart safely
  • Added CLAUDE_CODE_MCP_STARTUP_WAIT_MS to bound how long the first non-interactive turn waits for connecting MCP servers (0 = don't wait)
  • Added effort attribute to the claude_code.llm_request OpenTelemetry trace span, matching the api_request event
  • Added claude_code.managed_settings_resolved OTel event: managed-settings sources and policy helper state; redacted settings and digests with OTEL_LOG_MANAGED_SETTINGS=1
  • Added store.connect_timeout_seconds to the Claude apps gateway config to lengthen the Postgres connect timeout (default 5 seconds), and improved the boot error when the database is unreachable to point to store.postgres_url and the configured timeout
  • Added enduser.sub, the IdP subject, to the telemetry Claude Desktop and Cowork send through a Claude apps gateway
  • Added a Claude apps gateway warning when a replica has more requests open than the 256 it sends upstream at once, and a startup log line showing that limit
  • Added click-to-expand for collapsed teammate and agent messages in fullscreen mode
  • Fixed sessions getting stuck endlessly retrying "unexpected tool_use_id" 400 errors: corrupted transcripts now self-heal where possible, and otherwise a clear error (with a /rewind hint) ends the loop
  • Fixed MCP tool calls refused with 403 insufficient_scope being reported as an expired sign-in: the error now names the missing permissions and points to /mcp re-authentication
  • Fixed hook-driven sessions (such as an active /goal) ending with "Prompt is too long" instead of compacting when the context overflowed again after a reactive compaction
  • Fixed an active /goal being lost when resuming (--continue / --resume) a session that had compacted
  • Fixed claude agents losing --model, --effort, --permission-mode, --allow-dangerously-skip-permissions and --agent after an auto-update relaunch
  • Fixed a local claude -p --resume started with CLAUDE_CODE_RESUME_INTERRUPTED_TURN not reporting background tasks the previous process left unfinished
  • Fixed error hints in Claude Desktop sessions to suggest slash commands like /usage-credits instead of CLI flags that cannot be used there
  • Fixed /schedule saving a routine's prompt without its message role when Claude writes the routine in the shape that listing routines returns
  • Fixed /status not showing the apiKeyHelper failure that its own error banner told you to check
  • Fixed /fast on in non-interactive sessions reporting on and then turning off under an organization's managed fast mode policy; it now says the organization has disabled it
  • Fixed --strict-mcp-config with an empty --mcp-config holding the first non-interactive turn for up to MCP_TIMEOUT on incidental MCP servers
  • Improved startup in --input-format stream-json sessions: the first turn no longer waits up to 2s for still-connecting MCP servers whose tools tool search defers; they arrive on a later turn
  • Improved Claude apps gateway sign-in rate limit errors: /login now explains the refusal, and the gateway log says which limit was hit and which setting to change
  • Changed /code-review to use leaner inline review prompts for every model that has no tuned settings of its own, instead of spawning many review subagents
  • Changed the /status GitHub line to read "Cloud sessions", and /web-setup, /ultrareview, and teleport messages to say "cloud session" instead of "Claude Code on the web"
  • [VSCode] Fixed a /btw side question asked in a new conversation's first seconds occasionally showing another session's side-question history
  • [VSCode] Fixed Open in New Tab (Ctrl/Cmd+Shift+Esc) sometimes leaving the new tab's message box unfocused, so typing went nowhere until you clicked it
v2.1.2732026-09-15/mcpNEW /remote-controlNEW --remote-controlNEW /loginIMP /upgradeFIX /extra-usageFIX /tuiFIX --output-format stream-jsonFIX /install-github-appFIX /autofix-prIMP /web-setupIMP /bugIMP /feedbackIMP --add-dirIMP /ultrareview --postFIX /ultrareviewFIX
  • Added x-claude-code-request-class, x-claude-code-agent-type, x-claude-code-prev-tool-durations, x-claude-code-compaction and x-claude-code-context-compacted request headers for LLM gateways; opt in with CLAUDE_CODE_GATEWAY_HINT_HEADERS=1
  • Added a notification when an MCP server disconnects mid-session and automatic reconnection gives up, pointing at /mcp
  • Added forking a session started with claude --remote-control or /remote-control from the Claude app; the fork runs as a background session on your computer
  • Fixed 401/403 errors on Bedrock, Vertex and Foundry, and Claude apps gateway 403s, telling you to run /login; the message now names the credential to refresh or points to your gateway administrator
  • Fixed /login, /upgrade, and /extra-usage discarding earlier thinking from the conversation, which forced a full prompt-cache rewrite on the next request
  • Fixed /tui refusing to restart because of an agent-team teammate that had already finished its work and was no longer shown in the agents panel
  • Fixed SDK and --output-format stream-json output dropping a subagent's remaining messages and final report after it is moved to the background mid-run (e.g. by CLAUDE_AUTO_BACKGROUND_TASKS)
  • Fixed /install-github-app reporting a SAML single sign-on block as "admin permissions required"
  • Improved /autofix-pr: when gh pr view fails it now shows gh's own error (sign-in, SAML, rate limit) instead of a generic exit-code line
  • Improved /autofix-pr to say why GitHub webhook delivery couldn't be set up for the PR (for example, no linked GitHub account) instead of a generic warning
  • Improved /web-setup errors: a refused GitHub token now lists the likely reasons and the fix, and a connection failure names a configured proxy or TLS certificate problem
  • Improved the error when a cloud session can't be created because your Claude login expired or was revoked: it now tells you to run /login
  • Improved the error shown when an MCP server's sign-in expires mid-session to say how to re-authenticate (/mcp)
  • Changed /bug and /feedback reports to include only model-behavior params (model, system prompt, tools) from the last API request, omitting request metadata and CLAUDE_CODE_EXTRA_BODY fields
  • [VSCode] Fixed "Report a problem" still appearing, and /bug / /feedback opening a report form, for organizations that have product feedback disabled
  • [VSCode] Fixed a red "Claude Code process exited with code 4294967295" banner appearing after completed turns on Windows
  • Windows: Improved the network-path permission check for UNC paths when a mapped network drive was added with --add-dir
  • [Claude Code on the web] Fixed routines losing access to an organization connector, and still calling the old one, after an admin removed and re-added that connector
  • [Claude Code on the web] Fixed creating a self-hosted environment from organization settings occasionally failing with a server error and leaving a half-created environment behind
  • [Claude Code on the web] Changed the admin "Share cloud sessions" setting to live under Data and privacy instead of the Claude Code page, where Data and privacy admins can also manage it
  • [Claude Code on the web] Added a "Discard unsaved changes?" confirmation before the New routine page or the Edit routine dialog throws away a routine name, prompt or edit you typed
  • [Claude Code on the web] Removed the full-page desktop-app download screen that new users without a cloud environment saw on Mac and Windows; they now go straight to setup
  • [Claude Code on the web] Improved the routine detail page: menu and rename in the breadcrumb, the on/off switch and Run now at the top, and run history beside the routine's settings
  • [Code Review] Fixed /ultrareview --post so a retry after a GitHub error posts the findings comment exactly once instead of never or twice; the comment now names the reviewed commit
v2.1.2722026-09-15—
  • Bug fixes and reliability improvements
v2.1.2712026-09-14/fastNEW /configNEW --drain-marker-fileNEW --agentsNEW --accept-command <sha256>NEW --jsonNEW --accept-commandNEW /desktopNEW /fast offFIX /mcpFIX Ctrl+OFIX /modelFIX /reload-skillsFIX /cdFIX /resumeFIX /continueFIX /teleportFIX --resumeFIX /artifactsFIX /add-dirFIX /hooksFIX Alt+aFIX /mobileIMP /ultrareviewFIX
  • Added fast mode in Claude Code Remote sessions (cloud and self-hosted runners): the host's fast-mode setting or /fast typed in the session applies where your organization allows it
  • Added mouse support to the /config panel in fullscreen mode: the wheel scrolls the settings list, a click on a setting's value changes it, and the row under the pointer is highlighted
  • Added claude self-hosted-runner --drain-marker-file <path>: when that file exists at a SIGTERM drain, the runner reports its exit to the server as a host drain (telemetry only)
  • Added per-command allowed_domains to Bash, PowerShell and Monitor in auto mode with sandboxing: the hosts a command needs are reviewed with it and opened for it alone; other hosts are refused
  • Added omitClaudeMd to agent frontmatter and --agents JSON, letting custom and plugin subagents run without user, project and local CLAUDE.md files; managed policy files still load
  • Added --accept-command <sha256> to claude plugin install and claude plugin update to accept exactly the command a previous --json run displayed, instead of -y
  • Added support for a multiplier above 1, up to 10, in the modelPricing managed setting and the Claude apps gateway pricing block, for marked-up internal chargeback rates
  • Added a spinner tip pointing Bedrock, Vertex AI, Foundry and LLM gateway users to the Claude desktop app; the claude.ai desktop app tip now suggests /desktop, which offers to download the app
  • Fixed /fast off answering "Fast mode unavailable" instead of turning fast mode off when the organization has fast mode disabled
  • Fixed a stale .git/config.lock breaking git checkout -b, git push -u and git config for the rest of a session after a sandboxed command failed to start (Linux)
  • Fixed Ctrl+O cancelling pending MCP server reconnects, and /mcp sent from Remote Control failing while the transcript view is open
  • Fixed /model warning about losing the conversation cache when switching back to the model the conversation actually ran on
  • Fixed /reload-skills reporting a skill count that disagreed with the slash menu after /cd
  • Fixed /resume and /continue showing only 1-2 sessions in fullscreen mode on short terminals
  • Fixed /resume and /teleport keeping the previous conversation's file-read tracking, so Claude could edit files the resumed conversation had never read
  • Fixed --resume dropping the 1M context window ([1m]) when the resumed session's model family differs from the configured default model
  • Fixed artifacts attached with /artifacts disappearing from the session after --resume
  • Fixed the /add-dir path input: the left and right arrow keys now move the cursor, and Enter adds only the typed path instead of also adding the highlighted completion
  • Fixed the interactive /hooks menu crashing when a hook matcher is named after an inherited object property such as __proto__ or constructor
  • Fixed Delete in st and Alt+arrow keys in rxvt-unicode not working in attached background sessions
  • Improved /mobile to show a single QR code for claude.ai/mobile, which opens the right app store for your phone
  • Updated the bundled claude-api skill to enable eager_input_streaming on streaming custom tools, and to start deliverable-shaped Managed Agents work with user.define_outcome
  • [VSCode] Added an Attach Open File setting that, when turned off, stops the open file from being added to messages; selected text is still attached
  • [VSCode] Fixed the Hooks and Permission rules dialogs reporting a save that landed as failed, and the Hooks dialog going blank under a plugin-only policy lock or showing color codes in save errors
  • [VSCode] Fixed Hooks dialog saves: no duplicate hook on replace, a header name retyped in other capitals keeps its secret, and settings.local.json is gitignored before the save returns
  • [VSCode] Fixed session history showing only the current session when the workspace is on a Windows mapped network drive or SUBST drive
  • [VSCode] Fixed the session list's Active filter hiding open idle sessions when Open is also checked in the filter menu
  • [Code Review] Fixed reopening a finished /ultrareview cloud session in the Claude app starting the whole review over again unprompted
v2.1.2702026-09-12—
  • Fixed read-only git commands in Bash unexpectedly asking for permission after a session had been running for a while (regression in 2.1.269)
v2.1.2692026-09-11--helpNEW /output-styleNEW /focusNEW Alt+aFIX Shift+pFIX /forkFIX --output-format stream-jsonFIX /insightsFIX /goalFIX /btwFIX Ctrl+GFIX /diffIMP Shift+EIMP Ctrl+SIMP /ultrareview --postIMP /ultrareviewIMP /model defaultFIX /modelFIX
  • Added claude plugin eval: run a plugin's eval suite against Claude Code and get scored, reproducible results (JSON + HTML report); see claude plugin eval --help
  • Added /output-style [name] to list and switch output styles, including over Remote Control and in cloud and other headless sessions
  • Added a diff of the files a Bash command changed to the Bash tool result when the Bash tool handles file edits (setting bashEditDiffEnabled)
  • Added OTEL_METRICS_INCLUDE_REPOSITORY to tag OpenTelemetry metrics and events with vcs.* repository attributes; commit events get vcs.ref.head.* with OTEL_LOG_TOOL_DETAILS
  • Added CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS to extend the LLM gateway /v1/models discovery timeout (default 3s)
  • Added a spinner tip suggesting /focus for a view with just your prompt, a one-line work summary, and the response
  • Added CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS (1–256) to raise the Workflow tool's per-run concurrent agent limit for inference-bound fan-outs
  • Fixed F1/F2/F4 not working in kitty-protocol terminals and Delete in st, Alt+arrows acting as Escape in rxvt-unicode, and Shift+punctuation typing the unshifted key in WezTerm (regression in 2.1.247)
  • Fixed repeated clicks on a /fork receipt, each under a second apart, never backgrounding the session right away while it waited for the current tool to finish
  • Fixed permission_denials in --output-format stream-json results omitting Read, Edit and Write calls blocked by a path-scoped deny rule
  • Fixed /insights failing on Bedrock, Vertex, Foundry, and gateway deployments whose account can't reach the default Opus model by using the session model there instead
  • Fixed /goal runs silently stalling after API errors, network drops, or token limits: the goal now retries with backoff, or pauses and says why, including until a usage limit resets
  • Fixed /btw answers that contained made-up tool calls and output: the side question is now told not to write them, and any that appear are flagged as not executed
  • Fixed the interface being drawn twice after returning from an external editor (Ctrl+G) outside fullscreen mode
  • Windows: Fixed PowerShell tool commands sent to the background stopping when Claude Code exits
  • Improved the /diff panel to open fully rendered in one step instead of showing a loading state first
  • Improved keyboard support over SSH and in unrecognized terminals: terminals that answer the kitty keyboard query (such as foot and Alacritty 0.16+) now get Shift+Enter and Ctrl+Shift shortcuts
  • Changed /ultrareview --post to post the PR comment directly when the findings arrive and print the comment link, instead of starting a second cloud session to post it
  • [VSCode] Added an agent map: an "N agents" footer pill opens a map of the session's sub-agents with per-agent cards, Stop agent, and read-only transcripts
  • [VSCode] Added a Hooks dialog to the command menu for viewing hooks and adding, editing, or removing them in user, project, and local settings; managed, plugin, and session hooks stay read-only
  • [VSCode] Added live progress rows for running subagents under the tool-call groups in Focus view
  • [VSCode] Added a Permission rules dialog that lists permission rules and adds or removes them in user, project, and local settings; startup-option, session-only, and managed rules stay read-only
  • [Claude Code on the web] Fixed /model default in a cloud session leaving every later message failing in organizations that restrict which models Claude Code can use
v2.1.2682026-09-10/costNEW /loginNEW --remove-session-stateNEW --jsonNEW /varFIX /mcpFIX /pluginIMP /compactFIX /renameFIX ctrl+xFIX /bugFIX /feedbackFIX --printFIX /resumeFIX /forkFIX /remote-controlFIX /autofix-prFIX /web-setupFIX /teleportFIX /remote-envFIX Shift+EIMP --continueIMP --resumeIMP /diffIMP /reload-pluginsIMP
  • Added to the Claude apps gateway: with pricing: set in gateway.yaml, signed-in Claude Code clients receive the same rates through managed settings, so /cost and telemetry match the spend meter
  • Added a startup warning for gateways when access_control.allow_cidrs is empty, and a one-time warning the first time a request arrives from a public address
  • Added the gatewayInternalNetworks managed setting, letting administrators allow /login to a Claude apps gateway on their organization's own public IPv4 block
  • Added claude self-hosted-runner --remove-session-state (default off): delete each session's per-session directories under <base-dir>/_sessions/ when the session ends
  • Added configDirectory to the output of claude auth status --json
  • Added --json to claude plugin install, uninstall, update, enable and disable, and errorDetails/noteDetails to each row of claude plugin list --json
  • Added browser-tab icons for published artifacts, chosen by Claude to match each page
  • Fixed deny and ask permission rules on symlinked directories (/etc, /tmp, /var on macOS; /bin on Linux) not applying when a path was given by its real location, and Bash commands ignoring deny rules written on a symlinked path spelling
  • Fixed /mcp and /plugin server details, claude mcp list/get, and MCP login errors showing secrets resolved from ${VAR} placeholders in MCP configs
  • Fixed the conversation summary produced by /compact and auto-compact mangling text that contained $ sequences
  • Fixed resuming a conversation that ended with /compact: its restored-file notes now load in the same order on every resume
  • Fixed SDK prompt suggestions, side questions and /rename sending the conversation from before a compaction
  • Fixed claude agents session delete getting stuck when a worktree can't be removed: the message names the cause and next step, and for a git worktree ctrl+x again deletes the directory anyway
  • Fixed the /bug and /feedback description field showing no cursor when the terminal's native cursor is enabled
  • Fixed PermissionRequest hooks not firing in --print mode
  • Fixed /resume listing a /fork background session under its parent's name instead of its own ⑂ fork name
  • Fixed /remote-control and other claude.ai-gated commands to suggest /login when signed out instead of showing a Claude for Enterprise migration message
  • Fixed /autofix-pr and other cloud-session commands saying to retry or install the Claude GitHub App when no GitHub account is connected; they now point to /web-setup or the web connect page
  • Fixed cloud-session commands such as /teleport and /remote-env to explain when an organization policy turns them off, instead of answering "Unknown command"
  • Improved fullscreen mode: adding or removing a prompt line (Shift+Enter) now repaints as fast as typing a character instead of re-rendering the visible transcript
  • Improved --continue / --resume: the conversation appears immediately instead of waiting for SessionStart hooks, and the first message no longer re-reads the whole transcript
  • Improved the prompt footer: an editor or /diff selection now shows inside the prompt input, and fullscreen mode shows Remote Control status in the header instead of the footer
  • Improved /plugin: installing, enabling or disabling a plugin now takes effect when you close the menu; /reload-plugins is no longer needed afterwards
  • [VSCode] Fixed the session list, settings toggles, and chat tabs when CLAUDE_CONFIG_DIR is set in a settings file or the environmentVariables setting
  • [VSCode] Fixed the model pill, model picker and command menu going blank in open tabs for a few seconds after a login, logout or account switch
  • [VSCode] Fixed Auto disappearing from the mode picker in new-tab or just-reloaded conversations when a project or local setting overrides the model named in ~/.claude/settings.json
  • [VSCode] Fixed session names reverting to the last prompt after a window reload when a SessionStart hook is configured
  • [VSCode] Fixed the footer's model pill and Remote Control pill waiting for the new tab's Claude process to start when another tab in the window is already up
  • [VSCode] Fixed a second Claude process running through its full startup when a session tab's launch arrived more than half a second after its config read
v2.1.2672026-09-09--system-prompt-snapshot offNEW --system-prompt-snapshotNEW /contextFIX shift+eFIX /compactFIX /loginFIX /modelFIX /diffIMP /copyIMP --resumeIMP --system-promptIMP --append-system-promptIMP --use-anthropic-git-proxy
  • Added maxEffortLevel setting (top-level or per model under modelSettings): caps the effort level on every provider, including Bedrock, Vertex and Foundry; users can still pick a lower level
  • Added --system-prompt-snapshot off to render the system prompt fresh on every request instead of reusing the conversation's recorded prompt (for iterating on prompt text)
  • Fixed /context and other local command output rendering blank on mobile clients
  • Fixed shift+enter and option+backspace not working after reconnecting to a tmux or ssh session inside an agent view
  • Fixed resuming a session after /compact or another slash command ran via -p --resume: a spurious "Continue from where you left off." turn is no longer inserted
  • Fixed /login on machines whose managed settings require Claude apps gateway sign-in: Esc now closes the dialog instead of doing nothing
  • Fixed switching models with /model re-sending every tool definition (a prompt-cache miss); commit and PR attribution text now arrives as a conversation note that updates on model changes
  • Improved the /diff panel: it no longer flashes "0 files changed" and a spinner before settling, and its empty state is centered in the panel
  • Improved sandbox guidance so Claude suggests /copy when clipboard commands such as pbcopy fail inside the sandbox
  • Improved --resume first-render time for sessions with many Bash tool calls
  • Improved prompt-cache stability: subagents and sessions started with --system-prompt or --append-system-prompt now record the system prompt and tool definitions once instead of re-rendering them
  • Self-hosted runner: Changed --use-anthropic-git-proxy to be reported to the server at registration and to print a warning for each session that still clones through the legacy git proxy
  • Gateway: Changed forward_user_identity upstreams to return a 429 as-is to a developer whose email was forwarded, instead of failing over to the next upstream, so the proxy's per-user limits hold
  • [VSCode] Fixed the extension host hanging at 100% CPU when forking, editing an earlier message, or rewinding in a conversation whose saved transcript contains a cyclic parent link
  • [VSCode] Fixed pasting a screenshot on WSL2/WSLg inserting raw image bytes into the chat input; the image is now attached when the clipboard provides it, otherwise the paste is ignored
  • [VSCode] Fixed chat diff blocks always rendering with a dark editor theme; they now follow the active VS Code color theme, including high contrast
  • [VSCode] Fixed mixed right-to-left and English text rendering in the wrong order while typing in the message input
  • [VSCode] Fixed accepting an edit in the diff view on a file with Windows (CRLF) line endings failing with "String not found in file"
  • [VSCode] Fixed @-mentions dropping files whose paths contain spaces
v2.1.2662026-09-08—
  • Fixed a 2.1.265 regression affecting LLM-gateway and proxy setups: the undocumented CLAUDE_CODE_USE_GATEWAY environment variable, previously ignored unless ANTHROPIC_BASE_URL and ANTHROPIC_AUTH_TOKEN were both set, began forcing Cloud-gateway sign-in on its own in 2.1.265, so configurations that set it alongside an API key, apiKeyHelper, or custom auth headers failed every request with "Not signed in to the Cloud gateway". The variable on its own is ignored again; no configuration change is needed
v2.1.2652026-09-08--plugin-dirNEW /modelFIX --bgFIX /add-dir <subdirectory>FIX /add-dirFIX --forward-subagent-textFIX /pluginFIX /loginFIX /clearFIX /configFIX --worktreeIMP /workflowsIMP
  • Added user.email and user.groups to the telemetry Claude Desktop and Cowork send through a Claude apps gateway, matching terminal sessions
  • Added support for pointing --plugin-dir at a folder of plugins: each child folder with a manifest loads, and children added or removed while running are picked up
  • Added a 1 GB cap on tool results saved to disk; the in-conversation preview says when a saved file was truncated
  • Fixed /model opusplan[1m] being rejected with "Model not found"
  • Fixed background (--bg) sessions occasionally being retired mid-turn when a message arrived just before the idle timeout
  • Fixed /add-dir <subdirectory> refusing to load a subdirectory's agents when managed settings lock only skills to plugins, and promising agents when only agents are locked
  • Fixed forked skills (context: fork) not streaming their kickoff prompt and, with --forward-subagent-text, their text turns as progress events in stream-json
  • Fixed a plugin's default component folder that the OS cannot check, such as a symlink loop, being silently skipped; it is now reported in /plugin with the error code
  • Fixed /plugin Discover/Browse and claude plugin list --json --available showing no description or display name for marketplace plugins whose metadata lives only in their plugin.json
  • Fixed /login showing "no gateway URL is configured" when re-run in a session that signed in to a Claude apps gateway set by managed settings
  • Fixed /model claiming a model was "saved as your default" when the settings file couldn't be written; it now says the save failed and why
  • Fixed /clear from Remote Control waiting on SessionStart hooks and on open terminal dialogs before completing
  • Fixed the /config dialog changing height when switching between its tabs
  • Windows: Fixed Read, Write and Edit refusing every file ("symlink resolution changed after permission was checked") when running inside an AppContainer or restricted-token sandbox
  • Improved --worktree startup on large repositories: the new worktree is now checked out in parallel (git 2.32+)
  • Improved /workflows agent detail: tool calls are marked running, failed or done, the subagent's task list is shown when it has one, and Enter unfolds the listed calls with their inputs and results
  • Updated the .claude folder permission option to say what it actually allows: editing files in the project's .claude folder (or ~/.claude) for the session
  • [VSCode] Added automatic archiving of sessions inactive for a set period (new "Archive inactive sessions" setting, default 14 days)
  • [VSCode] Fixed the sidebar chat coming back blank after Reload Window or a restart when the conversation had been open for more than 10 minutes
  • [VSCode] Fixed the timeline dot sitting below the text on the "Remote Control is active" message
v2.1.2632026-09-06—
  • Bug fixes and reliability improvements
v2.1.2612026-09-04/statusNEW --append-subagent-system-prompt-fileNEW /skill-doctorNEW /add-dir <subdirectory>FIX /netFIX /add-dirFIX /clearFIX /teleportFIX /usageFIX /modelIMP /loginIMP Ctrl+WIMP Alt+FIMP Alt+DIMP /contextIMP Ctrl+SFIX /btwFIX
  • Added an "Organization policy" line to /status and claude doctor that says why your organization's policy could not be loaded, such as a proxy not passing the endpoint through
  • Added bashOutputMaxChars and taskOutputMaxChars settings to raise how much command and background-task output Claude receives inline before it is saved to a file, up to 128K characters
  • Added --append-subagent-system-prompt-file to read the subagent system prompt from a file, for prompts too large to pass on the command line
  • Added /skill-doctor to show which loaded skills go unused and what they cost in context, so you can prune them
  • Fixed /add-dir <subdirectory> printing a false "couldn't be resolved" error when the working directory is on a /net automount
  • Fixed Remote Control sessions showing as still working (stuck spinner and Stop button) after stopping a turn from a connected phone or browser, or after a local slash command like /clear
  • Fixed Remote Control uploading a session pulled with /teleport into the connected session, which appeared appended to the original on phone and web
  • Fixed /usage and the VS Code usage panel dropping a model-specific weekly limit row when the usage endpoint is rate limited or when opened right after startup
  • Improved the /model picker and the VS Code model pill to show a model's name instead of its raw Bedrock, Vertex AI, or LLM gateway ID when Claude Code recognizes it
  • Changed a Claude apps gateway 403 on the managed settings load (at startup or after /login) to say Claude Code may not be enabled for the organization, instead of advising a new sign-in
  • Changed machines whose managed settings pin forceLoginMethod: "gateway" to ignore a leftover API key or claude.ai login and ask for /login; Bedrock, Vertex AI, and Foundry sessions are unaffected
  • Changed the prompt's word-editing keys to match Bash: Ctrl+W deletes back to whitespace, Alt+F and Alt+D stop at word end, punctuation separates words; keybindingFlavor no longer has any effect
  • Changed /context token counting to use a local estimate when the token-counting API is unavailable, instead of extra small-model requests
  • [VSCode] Added a "Build a custom style" walkthrough to the Output styles menu that writes a custom output style file and lists it right away
  • [VSCode] Added an Add server form and a Remove action to the MCP servers dialog, so MCP servers can be added and removed without leaving the IDE
  • [VSCode] Added a hollow ring in the session list for sessions open in a terminal, another VS Code window, or Claude Desktop, so they no longer look closed
  • [VSCode] Added a fold button to permission and question prompts so the conversation behind them can be read without dismissing them; the space beside the prompt now scrolls the conversation
  • [VSCode] Added "Archive session" to the session list's right-click menu and gave Unarchive its own icon
  • [VSCode] Fixed a session teleported from Claude Code on the web treating a question that was cut off when the cloud session shut down as declined
  • [VSCode] Fixed the session tab's Rename box opening empty for a tab restored with the window; it now starts with the current name
  • [VSCode] Fixed Cmd/Ctrl+Shift+T reopen and deep-link opens placing the Claude tab outside the Claude editor group when a Claude tab has focus
  • [VSCode] Fixed /btw side-question history from earlier sessions being overwritten when a question is asked right after a window reload or while a settings file has errors
v2.1.2602026-09-03/diffNEW /costNEW /reload-pluginsNEW /advisorNEW /advisor <model>NEW /advisor offNEW /loginFIX /statusFIX /doctorFIX /modelFIX /model claude-fable-5-1FIX /rewindFIX --rewind-filesFIX --continueFIX Ctrl+ZFIX /buildIMP /ultrareviewIMP /effortIMP ctrl+lIMP --chromeIMP /chromeIMP --kill-session-after-minIMP
  • Added a diff panel that opens beside the conversation in fullscreen mode and shows your uncommitted changes as Claude edits; toggle it with /diff
  • Added a likely cause for prompt-cache misses (e.g. tool definitions or system prompt changed, idle past the TTL) to /cost and the status line's prompt_cache field
  • Added /reload-plugins to headless sessions, so it appears in the Claude Code Desktop and SDK command lists
  • Added a text form of /advisor (/advisor, /advisor <model>, /advisor off) for the desktop app, Remote Control, and other headless (-p/Agent SDK) sessions
  • Added oidc.scope_on_refresh to the Claude apps gateway for IdPs that return an id_token on refresh only when asked for openid again
  • Added Claude apps gateway support for newer Claude Desktop keys in desktop policy blocks, including userPluginMarketplacesEnabled and userPluginUploadsEnabled
  • Fixed managed settings not loading for claude.ai Enterprise/Team users who also had a leftover API key from an earlier /login
  • Fixed /status listing a signed-in claude.ai account and a configured API key as if both were in effect; the credential not in use is now marked
  • Fixed managed skillOverrides entries keyed on a bundled skill's alias (e.g. checkup for /doctor) not applying, and Skill(name) deny rules not covering a nested skill listed as <dir>:name
  • Fixed the /model picker not showing Fable 5.1 for organizations that can use it, which was only accepted when typed as /model claude-fable-5-1
  • Fixed /rewind and --rewind-files reporting success when checkpoint backup files were missing and nothing was actually restored
  • Fixed /rewind leaving stale file-read tracking from the rewound-away turns, which caused "File unchanged since last read" stubs and full-file re-injection after external edits
  • Fixed -p --resume/--continue (as used by the desktop app) failing on every retry once a session's worktree directory lost its git metadata; it now fails once, then resumes without the worktree
  • Fixed Ctrl+Z in fullscreen leaving the shell on the alternate screen, drawn over the paused interface
  • Glob/Grep: Fixed the search path being probed on disk before the permission check; a missing path is now reported after permission is decided, as Read does
  • Reverted the 2.1.259 change applying Read() deny rules to Bash arguments; it denied npm run build under a Read(.//build/) rule in every mode and made cd … && grep prompt even in auto mode
  • Improved /ultrareview and claude ultrareview to wait up to 45 minutes (previously 30) for long-running cloud reviews
  • Improved /effort on Claude Fable 5.1 so changing effort mid-session no longer invalidates the prompt cache
  • Updated the bundled claude-api skill so its Go, Java, and C# samples use current-generation model IDs, and clarified that cheaper worker or sub-agent models should be current-generation too
  • Changed ctrl+l / cmd+k in fullscreen mode to clear the transcript view like a terminal clear; scroll up to see earlier messages
  • Changed Claude in Chrome to follow your organization's Claude in Chrome admin setting; when an admin turns it off, --chrome, /chrome and the browser tools are unavailable
  • Changed self-hosted runner --kill-session-after-min to release a session that is only waiting on its user (paused, resumable on the next message) instead of killing it and reporting a failure
  • [VSCode] Added the selected effort level to the footer model pill, fixed a stale effort level after switching models, and returned the footer pills to their earlier compact size
  • [VSCode] Added Open and Closed to the session list's status filter menu
  • [VSCode] Fixed the welcome screen disappearing in a new session when Remote Control turns on automatically
  • [VSCode] Fixed the session history picker loading a session a second time when it is already open in another tab; it now switches to that tab
v2.1.2592026-09-02--permission-prompts noneNEW --permission-promptsNEW --jsonNEW --resumeFIX --continueFIX /workflowsIMP /install-github-appIMP
  • Added managedMcpServers managed setting: organizations can provide HTTP/SSE MCP servers to every user (same entry shape as .mcp.json); entries that name a command to run are skipped
  • Added --permission-prompts none for unattended headless hosts: anything that would prompt is denied automatically while the active permission mode (including auto mode) keeps deciding
  • Added recognition of glab mr create/merge/close/reopen/note/update so GitLab merge requests show as MR !N in the collapsed tool summary and refresh the footer MR badge
  • Added --json to claude plugin validate for a machine-readable validation report
  • Fixed --resume failing (and --continue opening an empty conversation) when a saved session contains an attachment entry with no payload
  • Improved /workflows agent detail: JSON outcomes are pretty-printed with syntax colors and real line breaks, and long outcomes fold behind an expand toggle
  • Improved /install-github-app to explain it is GitHub-only and point to the GitLab CI/CD docs when run inside a GitLab repository
  • [VSCode] Added an Active quick filter and a status filter menu (Needs input, Working, Completed) to the session list sidebar
v2.1.2582026-09-01—
  • Fixed Claude Code failing to launch on macOS 12 (Monterey), a regression introduced in 2.1.255
  • Fixed remote and scheduled sessions failing with "user messages must have non-empty content" after a re-sent permission approval could not be applied
v2.1.2572026-09-01/effortNEW /modelNEW /doctorNEW Ctrl+GFIX Ctrl+SFIX Ctrl+TFIX /scheduleFIX /mcpFIX --disallowedToolsFIX --resumeFIX --continueFIX /btwIMP /recapFIX /add-dirIMP --add-dirIMP /feedbackFIX Ctrl+BFIX /loginFIX /statusIMP /code-review --commentIMP /code-reviewIMP /forkIMP --effortIMP --permission-modeIMP /netIMP Ctrl+EDEL
  • Added Claude Fable 5.1 (claude-fable-5-1), now the default Fable model — 1M context, $10/$50 per Mtok with $0.25/Mtok cache reads
  • Added "Time format" (timeFormat) and timeZone settings: 12-hour, 24-hour, 24-hour UTC, or a strftime pattern for the turn-end clock and transcript-view timestamps
  • Added a Containment Escape rule to auto mode so cloud metadata-credential fetches, egress evasion, and cross-tenant reach are no longer auto-approved unless your environment marks them expected
  • Added CLAUDE_CODE_SUBAGENT_MODEL_FORCE to apply CLAUDE_CODE_SUBAGENT_MODEL (or the main model) to every subagent, ignoring per-spawn and agent-definition model overrides
  • Added s in /effort to change effort for the current session only, matching /model
  • Added a /doctor warning for stale sandbox mask files left by a killed session
  • Added a one-time prompt in auto mode before the first file read outside the working directories, with the option to block such reads (permissions.blockReadsOutsideWorkingDirectories)
  • Added support for a gateway-supplied description on discovered /model picker entries (CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY); entries without one still read "From gateway"
  • Fixed keybindings.json rebinds of Ctrl+G being ignored in claude agents; its Ctrl+S / Ctrl+T are now rebindable via the new Agents context
  • Fixed /schedule routines whose prompt was saved without a message role and then ran with nothing to do
  • Fixed a prompt stashed with Ctrl+S inside an opened background session being lost when the session went idle or was stopped and then reopened
  • Fixed /mcp reconnect and enable still connecting a settings-file MCP server that a managed MCP allow/deny list or strictPluginOnlyCustomization loaded after startup should block
  • Fixed --disallowedTools and session deny rules being dropped after the first settings reload when allowManagedPermissionRulesOnly is enabled
  • Fixed --resume listing a backgrounded conversation twice and --continue reopening its stalled pre-background copy; --continue now also opens finished background sessions
  • Fixed ← doing nothing in the /btw panel inside a claude agents session: it now returns to the agents list (even mid-answer), and the panel comes back when you reopen the session
  • Fixed sessions with an advisor model set missing the prompt cache on background requests (compaction, /recap, prompt suggestions) and re-sending the full conversation uncached each time
  • Fixed /add-dir rejecting a directory inside the current working directory; it now loads that directory's skills, commands, and agents like --add-dir does at startup
  • Fixed a crash when pasting ANSI-colored text (e.g. a CI log) into dialogs like /feedback
  • Fixed backgrounding a turn (← or Ctrl+B) while a subagent or other tool was running occasionally making the background session treat that tool as rejected instead of re-running it
  • Fixed /model and /effort showing a prompt-cache warning after rewinding a conversation back to empty
  • Fixed launching Claude Code after a Claude apps gateway expired or revoked your session: it now says the session ended and offers /login instead of reporting a network error
  • Fixed the keyless Console sign-in ("Sign in with your Console account") not applying your organization's server-managed settings, and /status not showing the Organization for that sign-in
  • Improved policy helper diagnostics — refresh failures now show in /status, declining the managed-settings dialog prints why Claude Code exited, and helper timeouts are reported as timeouts
  • Improved /code-review --comment to post findings on GitLab merge requests via glab mr note instead of reporting the target as unsupported
  • Improved /fork to keep the original conversation's prompt cache in the new background session: its worktree briefing now arrives as a message instead of a system-prompt change
  • Changed --effort to lift a new model's default-effort hold for that session only rather than permanently; an effort picked on claude.ai for a Remote Control session now applies during the hold
  • Changed claude --resume <session-id> --bg to continue that session under its own ID when nothing is running it, instead of silently starting a copy; a copy is now announced
  • Changed /btw history browsing from ←/→ to Shift+←/Shift+→ (or [/]), stepping through your recent side questions and back to the live answer
  • Changed defaultMode: "bypassPermissions" in .claude/settings.json or .claude/settings.local.json to be ignored, like "auto"; set it in user or managed settings, or pass --permission-mode
  • Changed fable and best in Claude apps gateway sessions to keep resolving to Fable 5 for now, since gateways not yet configured for Fable 5.1 reject it; pick Fable 5.1 in /model to use it
  • Changed --add-dir, /add-dir, and additionalDirectories to refuse network paths (UNC shares, /net/<host> automounts) with a message before touching them; on Windows use a mapped drive letter
  • Removed the Ctrl+E command explanation on Bash and PowerShell permission prompts
  • [VSCode] Added collapsible ACCOUNT & USAGE and SESSION MANAGER section headers to the session list panel, with the account email, the usage meter, and a View details link opening the usage dialog
  • [VSCode] Added a model pill to the input footer that shows the current model and opens the model picker, with an Effort row and a "More models" page
  • [VSCode] Added a collapse toggle to the Ungrouped section of the session list
v2.1.2522026-08-31—
  • Fixed Bash commands failing with "task output swap refused (tasks dir moved or linked)" on some Macs
  • Fixed "always allow" not saving in a project that has no .claude/settings.local.json yet
  • Fixed Remote Control sessions hosted by Claude Desktop or VS Code stalling for minutes after a tool finished when the connection to claude.ai was degraded
  • Fixed background task notifications with very large failure output (for example git errors on a full disk) making the conversation exceed the API request size limit
v2.1.2512026-08-28/usageNEW /costNEW --resumeNEW --helpNEW /statusFIX /mcp reconnectFIX /mcpFIX --input-format stream-jsonFIX /usage-creditsFIX --worktree --tmuxFIX Ctrl+GFIX /add-dirFIX /ultrareviewFIX /backgroundFIX --bgFIX /bugFIX /shareFIX /feedbackFIX /helpFIX /scheduleIMP /tasksIMP /radioIMP /effortIMP /remote-controlIMP
  • 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
  • Added live streaming of a foreground subagent's tool calls and results to Remote Control clients (background subagents, the default, still show status only)
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Fixed Ctrl+G failing with "Emacs quit unexpectedly" in background sessions for editors that open /dev/tty, such as emacs -nw and micro
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Improved the prompt placeholder to read "Message @name…" while viewing a background subagent or fork transcript opened from the subagent panel or /tasks
  • Changed /radio to be available on Bedrock, Vertex AI, Foundry, and Claude Platform on AWS, and when telemetry is disabled
  • Changed /effort to save your default effort level per model, so each model keeps its own setting when you switch
  • [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
  • [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
v2.1.2502026-08-28—
  • Bug fixes and reliability improvements
v2.1.2482026-08-27--restrictedNEW --toolsNEW --client-labelNEW /doctorNEW /statusNEW /web-setupNEW /usage-creditsNEW --resumeFIX /loginFIX /modelFIX /mcpFIX Ctrl+CFIX shift+tFIX ctrl+cFIX /ultrareviewIMP --spawnFIX --nameFIX shift+eIMP ctrl+eIMP /loopIMP
  • Added --restricted (or CLAUDE_CODE_RESTRICTED=1): removes the built-in tools that run commands or code and WebFetch (unless named in --tools), keeps file tools inside the working directory, refuses bypassPermissions, and ignores user, project and local settings files
  • Added experimental.cacheTtl ("5m" or "1h") to agent frontmatter: a per-agent prompt cache TTL used when no subagent TTL setting is configured
  • Added claude self-hosted-runner --client-label <label> (or SELF_HOSTED_RUNNER_CLIENT_LABEL) to override the label the runner registers with (default: hostname)
  • Added server-managed settings diagnostics: a startup warning when the settings fail to load, and a /doctor and /status line explaining a load failure or why they weren't fetched (Bedrock/Vertex/third-party provider, custom ANTHROPIC_BASE_URL)
  • Added a warning in /web-setup when the GitHub CLI token lacks the workflow scope, since pushes to very large repositories can be rejected without it
  • Added /usage-credits for Enterprise organizations billed through AWS Marketplace, self-serve Enterprise, and Enterprise trials, so members can request a higher usage limit from their admin
  • Added cross-session messaging (SendMessage / ListAgents) between sessions on the same machine on Bedrock, Vertex, and Foundry, and when telemetry is disabled
  • Fixed the ScheduleWakeup tool definition changing between a session and its --resume when the account had entered usage overage, causing a full prompt-cache miss on the resumed session's first turn
  • Windows: Fixed the claude agents list not responding to the keyboard after detaching from a session, or when launched in a terminal tab left in win32-input-mode
  • Fixed the recommended Console sign-in in /login failing with an OAuth error before showing a sign-in URL on machines where it can't be used (for example when ANTHROPIC_API_KEY or an API key helper is set); it now falls back to the API-key sign-in
  • Fixed model names in /model and fast-mode switch notices to render as code, so suffixes like [1m] display literally instead of as a link
  • Fixed /mcp listing a project .mcp.json entry that declares the claude.ai connector type under the trusted "claude.ai" heading; it now appears under its real scope
  • Fixed /login to a Claude apps gateway hanging when the managed-settings security approval dialog was required
  • Fixed the permission mode indicator staying hidden behind the "Press Ctrl-C again to exit" hint when you press shift+tab right after ctrl+c
  • Fixed /ultrareview and locally seeded cloud sessions uploading uncommitted edits to prod.env-style and *.tfvars files, or to editor swap, temp, and backup copies of credential files (e.g. key.pem.tmp, id_rsa.swo); they now stay on your machine
  • Fixed claude remote-control rejecting its own flags (e.g. --spawn, --name) when a global flag or a wrapper-injected option precedes the subcommand
  • Fixed rate-limit, usage, and fast-mode messages telling you to run /usage-credits when that command isn't available for your organization (e.g. hidden with DISABLE_EXTRA_USAGE_COMMAND)
  • [VSCode] Fixed a chat tab getting stuck on "No conversation found" when its session was never saved; it now starts a new conversation instead
  • Improved /ultrareview <PR#> to check before launch that the GitHub account connected to your Claude account can access the repository, and to explain how to fix it, instead of failing after the cloud session starts
  • Improved cross-session messaging: falls back to a private per-user /tmp directory when the default one can't be used, and the notice and /status name the directory to fix
  • Changed shift+enter in the agent view dispatch input to insert a newline (matching the prompt); ctrl+enter now dispatches and attaches
  • Changed /loop: self-paced dynamic mode and the no-prompt autonomous default are now always available, including on Bedrock/Vertex/Foundry
v2.1.2472026-08-26/feedbackNEW /claude-api cost-optimizeNEW /claude-apiNEW /configFIX /mcpFIX /skillsFIX /modelFIX /terminal-setupFIX /renameFIX /compactFIX --agentFIX /install-github-appFIX /remote-controlFIX /pluginIMP Ctrl+OIMP
  • Added the SendFeedback tool: when something goes wrong in a session, Claude can draft a feedback report for you to review and send from /feedback (turn off with the feedbackDrafts setting)
  • Added {id, text, cooldownSessions, priority} entries, tipsFile, and label to spinnerTipsOverride, so organizations can rotate their own tips alongside the built-in ones
  • Added a tip on Bash permission prompts pointing to auto mode, with a one-keystroke "Yes, and switch to auto mode" option
  • Added /claude-api cost-optimize to profile an existing project's Claude API spend and work through cost levers (caching, token hygiene, batch, effort, model choice) one measured change at a time
  • Updated the /claude-api skill with Admin API coverage (organization members, invites, workspaces, API keys, rate limit reports, workload identity federation, CMEK)
  • Fixed fast arrow-key + Enter sequences acting on the row above the one you navigated to in history search, /config, /mcp, /skills, background tasks, and /model
  • Fixed /terminal-setup overwriting your entire Zed keymap.json instead of merging in its keybinding
  • Fixed /rename silently confirming when the session registry could not be updated; it now says other sessions may still show the old name
  • Fixed /compact and "Summarize from here" in sessions started with --agent summarizing under the default system prompt instead of the conversation's own
  • Fixed /install-github-app over SSH: the copy shortcut now says how the sign-in URL was copied instead of always claiming success, and the URL appears immediately when no browser can open
  • Fixed Remote Control sessions started with /remote-control not reporting the working-tree diff to connected clients
  • Improved plugin marketplace hardening: names containing control or invisible characters are rejected, and marketplace-supplied text in /plugin and claude plugin output is escape-safe
  • Changed cross-session peer messages to collapse by default to a one-line Message from @<sender>: <first line> preview; Ctrl+O expands the full body
v2.1.2462026-08-25/permissionsNEW /backgroundFIX /pluginFIX /reload-pluginsFIX /renameFIX /colorFIX /themeFIX --debugFIX /statsFIX /forkFIX /--FIX --resumeIMP --strict-mcp-configFIX Ctrl+OFIX /ultrareviewFIX /autofix-prFIX /cdIMP /code-reviewIMP /goal --setting-sourcesFIX
  • Added a startup warning for Bash allow rules with a wildcard before the subcommand (e.g. Bash(git * main)), since they also match options inserted before the subcommand
  • Added an Auto mode tab to /permissions for viewing and editing auto mode classifier rules
  • Added the turn's completion time to the end-of-turn duration line, e.g. ✻ Sautéed for 23s · done 6:05 PM
  • Fixed pressing ← or running /background during a dynamic workflow restarting its finished subagents; it now asks first and says how many subagents would restart
  • Fixed plugin skills whose frontmatter name already includes the <plugin>: prefix showing it doubled in the slash menu (e.g. /plugin:plugin:skill)
  • Fixed /reload-plugins reporting 0 skills for plugins that define skills under skills/*/SKILL.md
  • Fixed /rename replacing the theme's prompt border color (including a custom theme's promptBorder) with the default cyan; the border now keeps your theme's color unless you pick one with /color
  • Fixed custom theme diff colors (diffAdded/diffRemoved and their dimmed variants) being ignored in diffs and the /theme preview
  • Fixed a keybindings.json binding with an unknown action name silently deadening that key; it is now skipped so the default binding keeps working, and a warning is logged under --debug
  • Fixed /stats activity heatmap showing each day's activity one cell off (Sunday's count under Monday) in timezones east of UTC
  • Fixed /fork from an already-forked or backgrounded session starting the new session with an empty conversation
  • Fixed prompts beginning with /-- (e.g. Lean doc comments) being rejected as an unknown slash command instead of being sent to Claude
  • Windows/macOS: Fixed headless sessions not cleaning up stale entries in ~/.claude/sessions left by sessions that exited uncleanly
  • Fixed claude plugin install <name> exiting silently (or hanging in a terminal) instead of reporting an error when ~/.claude/plugins/known_marketplaces.json is empty or corrupted
  • Fixed sessions that ended in plan mode resuming outside plan mode in the VS Code extension, and in claude -p --continue/--resume with a permission prompt tool, when no permission mode was set
  • Fixed --strict-mcp-config sessions prompting to approve .mcp.json servers they would never load, which left background sessions waiting at startup
  • Fixed memory growing with session length in the fullscreen and Ctrl+O transcript views: each rendered message row no longer retains a full copy of the transcript-wide tool lookups
  • Fixed /ultrareview runs and cloud sessions launched at the same time from one repository (e.g. from several worktrees) sometimes starting with another launch's uncommitted changes
  • Fixed the task progress count (e.g. 3/5) shown for background cloud sessions such as /autofix-pr occasionally missing a task
  • Improved /cd: the new directory's project settings, hooks, .mcp.json servers (behind the usual approval prompt), skills, and agents now take effect right after the move instead of on --resume
  • Changed /code-review so Claude can also start it on its own on Bedrock, Vertex AI, and Foundry, through the Claude apps gateway, and when telemetry or non-essential traffic is disabled
  • /goal: Changed idle sessions to start at most three check-ins on long-running background work per goal; your next message allows three more
  • Fixed the command sandbox's filesystem configuration not respecting --setting-sources
v2.1.2452026-08-25—
  • Fixed a crash on startup on Linux distributions that ship glibc 2.44 (for example Arch Linux, CachyOS and Fedora Rawhide)
v2.1.243—/usageNEW /loopNEW /modelNEW /costNEW /loginNEW /statusNEW /mcpNEW /pluginsNEW /web-setupNEW /tasksNEW /resumeFIX /logoutFIX --plugin-dirFIX /reload-pluginsFIX --agentsFIX --mcp-configFIX /clearFIX /renameFIX Ctrl+RFIX /effort highIMP /effortIMP /fastIMP
  • Added a Loops breakdown to /usage: per-loop run count, total tokens, tokens per run, and last run, so runaway or chatty /loop tasks are easy to spot
  • Added modelPicker setting: curate the /model picker with an ordered, labeled list of models (any id spelling, including Vertex/Bedrock ids), appended to or replacing the built-in lineup
  • Added promptCacheTtl and subagentPromptCacheTtl settings so API-key and cloud-provider users can keep a 1-hour prompt cache on the main conversation while subagents stay at 5 minutes
  • Added modelPricing managed setting so an organization's contracted per-model rates and discount multiplier are used for /cost, the status line, and telemetry cost figures instead of list price
  • Added a keyless sign-in under /login → Anthropic Console: "Sign in with your Console account" (recommended) alongside creating an API key, so organizations that don't allow API keys can sign in
  • Added a Skipped sources line to /status that lists managed settings sources (for example managed-settings.json) present but not applied because a higher-precedence managed source is active
  • Added a managed marker in /mcp and /plugins on claude.ai connectors whose authentication is managed by your organization
  • Added a tip pointing claude.ai users who haven't connected GitHub for Claude Code on the web to /web-setup
  • Added a /status line showing whether GitHub is connected for Claude Code on the web (Pro/Max), pointing to /web-setup when it isn't
  • Added the model (and effort level) each subagent ran on to /tasks and the agent detail dialogs
  • Fixed the /model picker silently ignoring an Ultracode selection; picking Ultracode now applies it to the current session
  • Fixed /resume only listing the 50 most recent sessions; the picker now loads more as you scroll
  • Fixed text that hangs outside its container (for example the sign-in URL in /login) losing its leading columns when another part of the screen repaints
  • Fixed server-managed companyAnnouncements not showing at startup in a session that began with signing in (for example the first launch after /logout)
  • Fixed plugin dependencies declared with a marketplace field never resolving when both plugins are loaded together via --plugin-dir
  • Fixed /reload-plugins keeping the LSP tool after the last LSP plugin is disabled; it now also warns before an LSP plugin change that would re-read the conversation
  • Fixed --agents silently ignoring invalid JSON or invalid agent definitions; it now exits with a clear error, like --mcp-config
  • Fixed /status showing "Found invalid entries in: ." with no filename when ~/.claude.json has an invalid MCP server entry
  • Fixed /clear removing the /rename session name from the prompt bar even though the name was kept for the new session
  • Fixed Ctrl+R history search and up-arrow history breaking when ~/.claude/history.jsonl contains a malformed entry
  • Fixed the status line rate_limits fields and /usage still showing a rate-limit window's pre-reset usage percentage after the window reset while the session was idle
  • Fixed /web-setup repeatedly asking you to log in when an older GitHub CLI (without gh auth token) was already authenticated
  • [VSCode] Fixed sessions started before feature flags were first fetched (for example right after install) opening in the default permission mode instead of auto mode or your configured default mode
  • [VSCode] Fixed Focus view sections you expanded collapsing on their own during subagent tool activity
  • Improved /login over SSH: the sign-in URL appears immediately, pressing c reports how the URL was copied instead of always claiming success, and a hint explains how to select text in fullscreen
  • Improved the error when effort xhigh/max is used with thinking turned off: it now names the level, the setting that disabled thinking, and /effort high as the fix
  • Improved /loop: consecutive wake-ups where Claude has nothing to do now fold into a single line in the terminal instead of printing each one
  • Updated the /model picker and the bundled claude-api skill to show Sonnet 5's $2/$10 per Mtok pricing as its standard list price rather than a limited-time promo
  • Changed /model, /fast, and /effort to also run immediately instead of queueing until the turn ends on Bedrock, Vertex, and Foundry and when telemetry is disabled
  • [VSCode] Improved history trimming in long sessions: older tool-activity rows are dropped first so your messages and Claude's replies stay visible
  • [VSCode] Improved attribution of the extension's own usage telemetry to your organization when you are signed in with a Claude account, so its data-handling settings apply
v2.1.2412026-08-23—
  • Bug fixes and reliability improvements
v2.1.2402026-08-22—
  • Bug fixes and reliability improvements
v2.1.2392026-08-21/costIMP --max-budget-usdIMP /claude-api upgradeNEW /claude-apiNEW /resumeIMP /insightsFIX Shift+AFIX /voiceFIX /scriptFIX /configFIX /modelFIX /workflowsFIX Ctrl+WFIX Ctrl+UFIX Ctrl+KFIX Ctrl+YIMP Ctrl+BFIX /goalIMP /list-agentsIMP Alt+FIMP Alt+DIMP /clearIMP
  • Cost estimates (/cost, status line, --max-budget-usd) now include the 1.1× US-only-inference premium for data-residency workspaces
  • Added the one-time fullscreen renderer offer on Bedrock, Vertex, Foundry and other previously excluded setups; new installs there now start in fullscreen
  • Added /claude-api upgrade to migrate Python projects from anthropic 0.x to 1.x, and updated the skill's Python reference for 1.x (timeouts use anthropic.Timeout, not httpx.Timeout)
  • Cloud sessions: plugins synced from claude.ai now show as name@synced, work with claude plugin enable/disable <name>@synced, and never override a same-named plugin you installed
  • Alpine/musl builds: native image paste, clipboard, and audio-capture add-ons now load (musl-built binaries instead of glibc ones refused by the runtime)
  • The usage-limit message shown when your monthly spend limit is already used up now also says when your session or weekly limit resets
  • Fixed custom session titles disappearing from /resume after more than ~64 KB of conversation was written following the rename
  • Fixed claude -c/resume picking up sessions from a different directory whose path differed only by characters like _, -, or .
  • Fixed /resume and the agents view showing a session as recently changed (and reordering it) when only its file was touched or it was merely reopened
  • Fixed /resume in all-projects mode telling you to cd into a deleted directory (e.g. a removed worktree); such sessions now resume in the current directory
  • Fixed /insights echoing literal <message> tags in its response on some models
  • Fixed the selection:copy keybinding silently dropping a text selection that had been extended with Shift+Arrow keys
  • Fixed the /voice startup tip still appearing after voice dictation was enabled via the voice.enabled setting
  • Fixed shell-mode (!) Tab completion dropping the ./ from a ./script path, which left a command the shell couldn't run
  • Fixed slash-command panels (e.g. /config, /model) in fullscreen mode covering the latest messages; the conversation now stays pinned above the panel
  • Fixed the /workflows detail dialog overflowing the terminal and losing its header off-screen when opened while Claude is still responding
  • Fixed the Linux sandbox making a nonexistent .git/config.worktree unreadable, which broke every sandboxed git command in repos with extensions.worktreeConfig set
  • Fixed Ctrl+W, Ctrl+U, Ctrl+K, Option+Backspace, Option+D and vim df/dt leaving a broken [Pasted text #N] placeholder when the cursor was inside it
  • Fixed masked (password-style) inputs such as the login code field letting their text be pasted back with Ctrl+Y elsewhere or saved to prompt history when cleared with double Esc
  • Fixed Ctrl+Backspace deleting one character instead of a word in search boxes
  • Long file paths on tool-use rows now truncate in the middle to stay on one line
  • Remote sessions keep sending keep-alives while a long SessionStart or Setup hook runs, so the container is not idle-reaped mid-hook
  • /goal: repeat check-ins on long-running background work now back off (30 min, then 1 h, then every 2 h) instead of repeating every 30 minutes
  • /goal: resuming a session from the claude --resume picker now restores its active goal
  • ListAgents now tells a session its own name (the one peers use to message it), and SendMessage to your own name says so instead of "no agent named …"
  • ListAgents and /list-agents now list your live teammates (previously only subagents and other sessions appeared, so a reachable teammate looked absent)
  • keybindingFlavor: "readline" now also matches Bash for word keys: Alt+F and Ctrl/Option+→ stop at the end of the word, Alt+D deletes to it (Ctrl+Y pastes it back), and punctuation separates words
  • Persistent retry mode (CLAUDE_CODE_RETRY_WATCHDOG) now fails immediately on organization spend-limit and out-of-credits errors instead of waiting indefinitely for a reset
  • Claude in Chrome: /clear now closes the session's Chrome tab group, and empty groups are closed on /resume and when Claude Code exits
v2.1.2382026-08-20Ctrl+WNEW --defer-shutdown-max-minNEW --proxy-authorization-fileNEW --proxy-authorization-commandNEW Ctrl+HFIX Ctrl+ZFIX /modelFIX /effortFIX /clearIMP Ctrl+LIMP --add-dirIMP
  • Added a keybindingFlavor setting: set it to "readline" to make Ctrl+W in the prompt delete back to the previous whitespace, as in Bash; the default ("classic") is unchanged
  • Plugin marketplaces: headersHelper on a url marketplace or a catalog entry runs a command that mints HTTP headers (e.g. a short-lived token) for catalog and same-origin archive fetches
  • A catalog entry's headersHelper runs only when you install or update that plugin, after its command is shown; claude plugin install/update ask [y/N] (or pass -y)
  • Added claude self-hosted-runner --defer-shutdown-max-min <minutes>: on SIGTERM, keep serving attached sessions, park what is left after that many minutes, then exit
  • Added claude self-hosted-runner --proxy-authorization-command / --proxy-authorization-file for egress proxies that require a freshly issued Proxy-Authorization header on every connection
  • Fixed held Backspace being ignored on terminals that send Ctrl+H for Backspace when keystrokes arrive in large bursts (slow SSH/mosh links)
  • Fixed killing a suspended (Ctrl+Z) session sometimes leaving the terminal in bracketed-paste mode with the cursor hidden
  • Fixed the /model and /effort cache-miss warning appearing when the prompt cache had already expired
  • Cross-session messaging: sending to a session on this machine that refuses inbound messages (e.g. crossSessionInbound: "refuse") now reports "refused" to the sender instead of a silent success
  • Cross-session messaging: a session whose inbox drops your messages (rate limit or full queue) now tells your session, instead of the messages vanishing silently
  • Updated the bundled claude-api skill for the Managed Agents Aug 19 release: web search/fetch domain settings and memory stores on self-hosted sandboxes
  • Changed Ctrl+L and Cmd+K in fullscreen to always just repaint — the double-press /clear shortcut was removed, and 1-row nvim terminals no longer trigger automatic /clear loops
  • MCP headersHelper in a project .mcp.json, and inline MCP servers in project or --add-dir agent files, now require that folder's trust dialog to have been accepted (also under claude -p)
  • MCP headersHelper from a project .mcp.json, plugin, or agent file runs without inherited credential env vars; user, managed and claude.ai-scope helpers now run from the Claude config dir
v2.1.2372026-08-20/configNEW
  • Added a built-in "Concise" output style: Claude leads with results and skips preamble and narration, while doing the work just as thoroughly. Select it under Output style in /config.
v2.1.2362026-08-19/modelNEW /recapFIX /goalIMP /usageIMP
  • Added ANTHROPIC_DEFAULT_MODEL environment variable: sets the model new sessions start on, while a /model pick still overrides it and persists across restarts (unlike ANTHROPIC_MODEL)
  • Added notify_when_idle to cross-session SendMessage: ask another Claude Code session on this machine to send one notice when it next goes idle — opt-in, one-shot, no polling (macOS and Linux)
  • Sandbox: on macOS, wildcard read-deny rules (e.g. **/.env) now take precedence inside allowed read regions, cover matched directories' contents, and can't be bypassed by renaming the denied file
  • Fixed the /model picker rendering taller than the terminal: it now shows only as many models as fit the window, with the rest reachable by scrolling
  • Fixed occasional runaway session recaps: recap text (automatic and /recap) is now capped at 400 characters, cut at a word boundary
  • Changed the /model picker to highlight only the newest model's name, so the highlight marks the new release rather than an arbitrary subset of the list
  • /goal: an idle session whose goal is parked behind long-running background work now checks in automatically after 30 minutes (then 1h, 2h) instead of waiting for you to return
  • /usage now shows the usage-credits spend row for Team and Enterprise members, and shows a capped row at 0% before anything is spent
  • SIGTERM in print/SDK mode no longer records an interrupted turn or synthetic tool denials before exiting; running commands are still terminated and the process still exits with code 143
  • Pressing Enter on a slash-command typo or a command unavailable in this session now reports it instead of running the closest fuzzy match; prefixes and aliases still run
  • Remote Control now marks a session offline within seconds when the CLI exits or its terminal closes
  • SendMessage now refuses further messages to a session up front once a rapid burst would exceed what that session's inbox accepts, instead of reporting them sent while they were dropped
  • Aligned the session title chip on the prompt border with the footer's right edge
  • Right-aligned footer items (goal indicator, session state, background agent status) and truncated notices now share a consistent right margin with the rest of the prompt area
v2.1.2352026-08-18Shift+TFIX ctrl+tFIX /ultrareviewIMP /autofix-prIMP /configIMP ctrl+oNEW
  • Added an optional spellcheck setting that underlines misspelled words in the prompt input as you type, using your installed aspell, hunspell, or ispell
  • Fixed Shift+Tab inside the permission prompt's comment field approving the edit and granting session-wide edit permission instead of closing the field
  • Fixed the expanded task list (ctrl+t) always starting collapsed when resuming or relaunching into a session that still has open tasks
  • Improved memory and CPU usage while cloud sessions such as /ultrareview or /autofix-pr run in the background — their event streams are no longer re-scanned and re-rendered on every update
  • Improved the context-limit error to say when auto-compact is off and point to /config to re-enable it
  • Vim mode: NORMAL mode and cursor position are now preserved when toggling the detailed transcript (ctrl+o) or closing a panel
  • Dialogs: arrow keys and Enter pressed in quick succession now select the option you navigated to instead of the previously highlighted one
  • SendMessage now refuses messages too large for cross-session delivery up front instead of silently dropping them
  • Remote Control: claude rc now applies the same enterprise-gateway availability check as interactive startup
  • [VSCode] Fixed focus jumping between open Claude tabs on its own when a window with several Claude panels is restored or reloaded
v2.1.2342026-08-17/configNEW /loginIMP ---FIX /permissionsIMP --dangerously-skip-permissionsFIX /tuiFIX --allowed-toolsFIX --disallowed-toolsFIX /add-dir <path>IMP /add-dirIMP /autocompactIMP /themeIMP /helpIMP /advisorIMP /goalIMP
  • Added the optional CLAUDE_CODE_PROJECT_DIR_NAME environment variable: hosts that give each session its own config directory can choose a short name for the per-project transcript directory
  • Added the selection:clear keybinding action, so a key can be bound to clear an in-app text selection; also works in the agents view
  • Added a GitLab merge request badge to the footer and statusline: repos with a GitLab remote and an authenticated glab CLI show MR !N with draft/pending/green states
  • Claude Code now continues your session automatically when a claude.ai usage limit resets; turn it off in /config ("Continue automatically at usage limit")
  • Claude is now told to use your account email only to identify you, and not to send it to unrelated services unless you ask
  • Fixed modal text such as the /login OAuth URL losing characters when copied in fullscreen
  • Fixed a --- horizontal rule in rendered markdown running into the line after it
  • Fixed dialogs like /permissions opened while a ! shell command was running being dismissed when the command finished
  • Fixed accepting the "Try the new fullscreen renderer?" prompt restarting the session without its permission mode (e.g. --dangerously-skip-permissions), tool allow/deny rules, model or effort flags
  • Fixed /tui dropping launch --allowed-tools/--disallowed-tools rules when it restarts; it now declines to switch, with the reason, when the session has restrictions a restart can't carry over
  • Fixed: after /login while CLAUDE_CODE_OAUTH_TOKEN is set, the stale-token reminder no longer leaks into Claude's automatically resumed turn — it now appears only to you
  • Remote Control: signing this computer in to a different claude.ai account or organization now stops the running session within seconds and says why, instead of a misleading HTTP 404 hours later
  • Remote Control sessions started from Claude Code Desktop or VS Code now keep phones and claude.ai/code updated on the session's permission mode (and claude.ai/code on the model) as they change
  • Remote Control: effort picks made on a phone or on claude.ai/code now apply to terminal- and Desktop/VS Code-hosted sessions, and the session publishes its effort level to connected clients
  • SendMessage and ListAgents now say when your account's session list was too long to check completely, instead of treating unseen sessions as absent
  • Expired Anthropic profile credential now points you at /login when a claude.ai login would take precedence
  • /permissions can now be opened while Claude is working — rule changes apply to the rest of the current turn
  • /add-dir <path> can now be used while Claude is working; /add-dir, /autocompact, /theme, /help, /config and /advisor dialogs open mid-turn in the fullscreen TUI
  • /goal now clears itself with a notice when a turn dies on an unrecoverable error (e.g. revoked auth, an exhausted credit balance, or a context overflow) instead of staying armed
  • /goal: when background tasks keep a goal waiting for 30+ minutes, Claude now checks in on them instead of waiting indefinitely (set CLAUDE_CODE_GOAL_CHECKIN_MINUTES=0 to opt out)
  • Removed the "Default teammate model" setting from /config; agent-team teammates now use the leader's model unless the spawn names one
v2.1.2332026-08-14--worktreeNEW /checkupFIX /reviewFIX /effortIMP
  • Added GitLab merge request URL support to the --worktree flag and the claude agents view (where MRs display as !N)
  • Added an opt-in forward_user_identity apps gateway setting on Anthropic upstreams that sends the signed-in user's identity as headers, so a proxy behind the gateway can attribute spend per user
  • Added opt-in memory cgroup support for Bash tool commands on Linux (CLAUDE_CODE_TOOL_MEMORY_LIMIT) so a runaway build can't stall the session
  • Added CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS environment variable to configure the WebFetch session URL cache TTL (default unchanged: 15 minutes)
  • Fixed bundled skill aliases like /checkup and /review reporting "Unknown command" in -p mode or with plugins/MCP loaded when a user or project skill shadows the bundled skill
  • Improved screen reader mode: the /effort selector renders as a numbered list with a typed-number prompt, and hint and dialog text is no longer clipped
  • Todo/task-tracking tools (TaskCreate/Get/Update/List, TodoWrite) are no longer available on Opus 4.8, Sonnet 5, Fable 5, Mythos 5, and newer models; set CLAUDE_CODE_ENABLE_TODO_TOOLS=1 to bring them back
  • Windows: fixed auto mode repeatedly stopping for manual approval on ordinary cd <dir> && <command> > file Bash commands (a 2.1.232 regression)
v2.1.2322026-08-13/configNEW /advisor /model fableFIX /modelFIX /loginFIX /updateFIX /tuiFIX --advisor fableFIX /feedbackIMP /bugIMP /pluginIMP /code-reviewIMP /remote-control /tasksIMP --settingsIMP /powerupDEL
  • Subagent forking is now on by default: a subagent_type: "fork" subagent inherits the full conversation and prompt cache, and non-teammate agent spawns in interactive sessions now run in the background by default
  • Type @ in the prompt to mention another Claude session by name; Claude then uses SendMessage to reach that session directly
  • SendMessage now delivers to a bare name that exactly matches one live session, instead of asking to confirm with a ref first
  • Interactive sessions on one machine now keep unique names: starting or renaming a session to a name another live session already uses gives it a name-word-word variant and tells you
  • Added /config rows for "Dialog expiry" and "Messages from your other sessions" (cross-session inbound accept/hold/refuse)
  • Added secret redaction for GitLab token families (glrt-, gloas-, glptt-, glagent-, glimt-, glsoat-, glcbt-, glft-, glffct-) and full redaction of routable glpat-/gldt- tokens; the glab CLI config store gets the same sandbox and credential-path protection as gh
  • Added GitLab support to plugin marketplaces: bare gitlab.com repo URLs (including nested subgroups) now clone like github.com URLs, and clone auth-failure hints name your actual git host
  • Settings: additionalMarketplaces and allowedMarketplaces are now accepted as friendlier aliases for extraKnownMarketplaces and strictKnownMarketplaces
  • Enterprise policy: a url-typed blockedMarketplaces entry for a bare repo URL keeps blocking that URL when the CLI classifies it as a git clone
  • Fable 5 is offered as an advisor in /advisor again for organizations with Fable access, with usage-credits consent set up through /model fable
  • Fixed Cloud gateway /login exiting silently or leaving an unresponsive terminal after "Press Enter to continue" when managed settings failed to load; the reason is now shown
  • Fixed /update and /tui refusing to restart while work that survives the relaunch was running
  • Fixed the consent message for interactive --advisor fable launches, which told you to run /model fable in an interactive session that had just exited
  • /feedback and /bug now open immediately when invoked while Claude is responding, instead of waiting for the turn to finish
  • /plugin install plugin@marketplace now refreshes the marketplace first, so newly published plugins install without a manual marketplace update
  • /code-review at high, xhigh, and max effort now runs in a background agent like the other levels
  • Remote Control: resuming a conversation no longer silently takes Remote Control away from another Claude Code on the same machine that still has it; run /remote-control there to move it
  • Updated agent panel: completed subagents hide immediately with a /tasks footer hint, and the "↓ N more" overflow indicator moved left for visibility
  • Changed sandbox.ripgrep to be honored only from user, managed, and --settings settings; project settings can no longer override the sandbox's ripgrep binary
  • Removed the startup tip suggesting you create custom subagents, and the matching nudge in the /powerup tour
v2.1.2312026-08-13—
  • Fixed MCP OAuth sign-in failing with a redirect URI mismatch for servers that use a pre-registered OAuth client, such as Slack
v2.1.2292026-08-12--resumeFIX /modelFIX /install-github-appFIX --input-format stream-jsonFIX /compactIMP /doctorIMP /loginIMP /commit-push-prIMP --forceIMP --amendIMP --no-verifyIMP --base-dirIMP /bugIMP /btw Shift+cNEW
  • Documented claude remote-control --continue for resuming the most recent Remote Control session
  • Added server-supplied Claude Code hook support for self-hosted runner sessions, matching managed-environment behavior
  • Added SSE keepalive pings to gateway streaming responses during long thinking pauses, preventing idle-timeout disconnects on Vertex and Bedrock upstreams
  • Added plugin marketplace command sources: a local command (e.g. an IDE) prints the plugin directory, which is re-resolved each session and applied without a restart; mode: "link" uses it in place
  • ListAgents now marks disconnected Remote Control sessions as offline and labels your cloud sessions as cloud
  • Fixed a crash to the error screen (including on --resume of the affected session) when a tool call had a non-string glob, file_path, or command value
  • Fixed a RangeError crash when a progress bar or markdown table rendered in a very narrow terminal window (could also crash claude --continue/--resume at startup)
  • Fixed /model rejecting Sonnet/Opus 1M for claude.ai subscribers using a custom ANTHROPIC_BASE_URL gateway
  • Fixed the Claude Code Review workflow generated by /install-github-app completing without posting its review on the pull request
  • Fixed SDK and --input-format stream-json sessions getting a 400 API error when a whitespace-only message was submitted
  • Improved "prompt is too long" errors to explain why automatic compaction could not recover instead of only suggesting /compact
  • Improved sandbox: IPv6 literals in network domain lists are now bracketed ([::1]:443), and ambiguous spellings are enforced fail-closed and flagged by /doctor
  • Updated /login to repeat the CLAUDE_CODE_OAUTH_TOKEN override warning after a successful login
  • Changed /commit-push-pr so git/gh commands with dangerous flags (--force, --amend, --no-verify, etc.) are no longer auto-approved
  • Changed self-hosted runner Windows startup to require an explicit --base-dir; there is no default checkout directory on Windows
  • [VSCode] "Report a problem" and /bug now open the built-in feedback dialog instead of a retired survey link
  • [VSCode] Made the /btw side-question panel resizable by dragging its boundary, in both side-docked and stacked layouts
  • [VSCode] Added session groups in the sidebar — right-click to create, rename, or delete; Cmd/Ctrl- or Shift-click to move several sessions at once
v2.1.2282026-08-11/tuiFIX /modelFIX /resumeFIX
  • Fixed /tui reverting the session to an earlier model when /model had been changed since the last response
  • Fixed Remote Control /resume while connected leaking the resumed conversation's title or history into the connected session
  • Hardened skills synced from claude.ai: they no longer shadow local commands or MCP prompts, their descriptions are sanitized and labeled, and on your machine their bodies don't run ! commands or expand @ files
  • Updated terminal title busy-spinner glyphs to reduce tab-bar jitter on some terminals
v2.1.2272026-08-10/tuiFIX
  • Fixed /tui bringing back a conversation that had been rewound to before its first message
v2.1.2262026-08-08—
  • Bug fixes and reliability improvements
v2.1.2252026-08-08--base-dirFIX
  • Added gateway spend-limit support to Claude Code's usage warning; the limit-reached message now names the cap, its reset time, and the operator's message (requires the gateway on 2.1.225)
  • Added a workspace trust prompt to claude agents for untrusted directories, matching the behavior of claude
  • Fixed claude self-hosted-runner registering and then failing every session when --base-dir cannot be created or written; it now exits at startup with a clear error
  • [VSCode] Fixed Focus view folding away the latest to-do list, a pending question's context, and settled answers; thinking-only folds show "Thought for Ns" and re-collapse when their turn completes
  • SendMessage can now start a conversation with your Remote Control sessions on other machines by name (ListAgents shows them as name [ref]), instead of only replying after they message you first
  • SendMessage: a Remote Control recipient you already confirmed is never swapped for a same-named session on this machine when its own list couldn't be checked
v2.1.2242026-08-07--settingsNEW /resumeIMP /clearIMP --resumeFIX
  • Added self-hosted environments: claude self-hosted-runner turns your own machines or containers into a place Claude Code web, mobile, and desktop sessions can run, on Team and Enterprise plans
  • Added archive plugin source: install plugins from a zip over HTTPS without git or npm, with optional SHA-256 pinning
  • Added a cancel-and-confirm step when removing an unavailable paste changes a command's text
  • Added ANTHROPIC_BEDROCK_REGION_PREFIX env var for Bedrock to prefer a specific cross-region inference profile over the AWS_REGION-derived one
  • Added crossSessionInbound and dialogExpiry settings: cross-session messages sent to a session running with bypassed permissions are held for your approval, and messages to other sessions auto-deliver
  • Added sandbox credential-masking options: extract and onExtractNoMatch for structured env values, decode: "jwt" with maskClaims for JWT-aware masking, and awsPairs/sigv4 for AWS SigV4 re-signing; these need network.tlsTerminate and are honored only from user, managed, or --settings settings
  • Added cross-session SendMessage: Claude Code sessions can now message each other, on any of your machines, with ListAgents to discover them (macOS and Linux)
  • Fixed long (>200 char) project paths resolving to another project's session directory under a shared sanitized prefix; session list, rename, fork, delete and /resume no longer cross projects
  • Fixed Remote Control and SDK clients showing a blank "(no content)" message after /clear and other output-less commands
  • Improved Remote Control: attached web and mobile clients now see compaction progress and the post-compaction boundary instead of a silent pause; /clear resets now propagate to attached clients
  • Changed Remote Control to archive the stale server session instead of leaving a dead one listed when a fresh session is minted after compaction or /resume
  • [VSCode] Fixed the extension showing Remote Control as connected after the connection failed
  • Fixed a session resume silently reconnecting Remote Control after the user turned it off (--resume, SDK hosts, and the VS Code extension)
  • [VSCode] Fixed sessions not honoring remoteControlAtStartup when explicitly enabled
v2.1.2232026-08-06/teleportNEW --teleportNEW /cdFIX /reviewIMP /code-reviewIMP /code-review ultraIMP /code-review highIMP
  • Added owner wildcard entries ("owner/*") to the strictKnownMarketplaces and blockedMarketplaces managed settings for allowing or blocking all marketplace repos under a GitHub org
  • Added a warning when workflow agents, forked skills, slash commands, or resumed background agents' requested subagent model is restricted and the parent model runs instead
  • Added a /teleport hint in cloud sessions showing how to continue locally with claude --teleport <session id>
  • Fixed resuming a session after a mid-session /cd coming back empty
  • Changed /review to be an alias of /code-review, which reviews the current diff or a PR (/code-review <level> <pr#>); use /code-review ultra for a deep cloud review
  • Changed /code-review with no effort level to reuse the level you typed last; type a level like /code-review high to change it
v2.1.2222026-08-04/usage-creditsFIX /usageFIX /loginFIX --ax-screen-readerFIX /diffIMP /configIMP
  • Fixed /usage-credits on Team and Enterprise showing "you've already sent a usage credit request" for members whose earlier request was dismissed, blocking them from sending a new one
  • Fixed /usage overattributing usage to MCP servers: a server's share now reflects only the requests that actually consumed its tool results, instead of every turn after any call to it
  • Fixed claude.ai connectors being falsely marked as needing authorization when the session token is invalid — they now show a /login hint instead
  • Fixed screen readers re-reading the whole input line on every backspace in --ax-screen-reader mode — end-of-line deletions now echo just the deleted characters
  • Improved the /diff view, the Remote Control workspace diff, and file-edit diffs in Claude Code on the web sessions to use raw git blob content, ignoring workspace-configured diff drivers and textconv
  • Changed Remote Control auto-start so repo-local settings (.claude/settings.json or .claude/settings.local.json) can no longer turn it on (they can still turn it off); enable it at user scope via /config
v2.1.2212026-08-04Ctrl+ANEW --mcp-configFIX /helpFIX /feedbackFIX /ultrareviewIMP /plugin installIMP /pluginIMP /reload-pluginsIMP /statusIMP /forkIMP
  • [VSCode] Added Focus view: a chat-menu toggle that hides tool activity behind an expandable per-turn summary with a live running-tool indicator, toggled with Ctrl+Alt+F or the "Claude Code: Toggle Focus view" command
  • Added mode: "mask" for sandbox credential files on Linux and WSL — sandboxed commands read a sentinel copy (the whole file, or just the spans captured by an extract regex) while the sandbox proxy substitutes the real value on egress; on macOS file masking falls back to deny
  • Added warnings to claude plugin validate when a marketplace or plugin name would be rejected by Claude Desktop's managed marketplace sync
  • Added a prompt-audit subcommand to the claude-api skill for auditing prompts and tool descriptions for patterns written for older models
  • Fixed MCP servers from --mcp-config not being connected before the first turn in print mode (-p), which made the model emit tool calls as literal text
  • Fixed plugin- and org-delivered skills named after terminal-only built-ins (e.g. /help, /feedback) being un-invocable in non-interactive sessions
  • Reduced prompt-cache costs for auto-mode permission checks by reusing the cached conversation prefix across decisions
  • Improved /ultrareview error messages when a repo shares no history with its base: a checkout with no branches is now refused up front with advice to create one, and refusal hints no longer suggest git fetch --unshallow on clones that are already complete
  • Changed /plugin install to refresh a stale marketplace catalog and retry before reporting a plugin not found
  • Changed plugins installed from /plugin to activate immediately when safe, instead of always requiring /reload-plugins
  • Changed /status to show the session kind: interactive, or a background job that is attached or unattended
  • Changed sessions forked with /fork to create a new worktree of their own instead of working in the original session's checkout
v2.1.2202026-07-25—
  • Bug fixes and reliability improvements
v2.1.2192026-07-24/add-dirNEW --mcp-configNEW /configNEW --forward-subagent-textNEW /mcpNEW /modelIMP /fastDEL
  • Added Claude Opus 5 (claude-opus-5), now the default Opus model — 1M context, fast mode at $10/$50 per Mtok
  • Added sandbox.network.strictAllowlist setting to deny non-allowlisted hosts for sandboxed commands without prompting
  • Added DirectoryAdded hook that fires after /add-dir or the SDK register_repo_root control request registers a new working directory mid-session
  • Added mcp_server_errors to the headless stream-json init event, listing --mcp-config entries skipped by config validation; terminal runs print a startup warning
  • Added the workflowSizeGuideline settings key so the advisory Dynamic workflow size guideline can be set from any settings file; the /config row is hidden while one does
  • Added nested subagent forwarding in stream-json: subagents spawned at depth-2+ now appear when --forward-subagent-text is set, keyed by their spawning Agent tool_use id
  • Added HTTP status and error text to claude mcp list and /mcp when a server fails to connect, and a warning for MCP config values with hidden leading or trailing whitespace
  • Fixed the /model picker showing the merged Opus row as plain "Opus" instead of "Opus (1M context)"
  • Changed dynamic workflows to default to a medium size guideline (aim for fewer than 15 agents); pick another size or unrestricted with Dynamic workflow size in /config
  • Changed the /model picker to highlight only the newest model's name, so the highlight marks the new release rather than an arbitrary subset of the list
  • Added the current default workflow size to the running-workflow status line, with a pointer to /config for changing it
  • Removed Opus 4.7 from fast mode; /fast now applies to Opus 5 and Opus 4.8
  • Updated the claude-api skill to default to Claude Opus 5, with a migration path from Opus 4.8
  • Subagents can now spawn nested subagents up to depth 3 by default (was 1); set CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 to disable nesting
v2.1.2182026-07-22/code-reviewIMP --ax-screen-readerNEW Ctrl+WNEW Ctrl+UNEW Ctrl+KNEW Ctrl+JFIX /contextFIX /ultrareviewIMP /code-review ultraFIX Ctrl+BFIX /deep-researchIMP /configNEW
  • Changed /code-review to run as a background subagent, so review work no longer fills your conversation and keeps stacked slash commands as its review target
  • Added screen-reader announcements of deleted text for word and line deletions (Option+Delete, Ctrl+W, Cmd+Backspace, Ctrl+U, Ctrl+K) in --ax-screen-reader mode
  • Fixed multi-line paste collapsing into one line with j in place of newlines in terminals that encode pasted newlines as Ctrl+J
  • Fixed /context reporting stale pre-compact token usage after compacting from the message picker
  • Fixed /ultrareview failing on descriptive arguments like "review my auth changes" — they now run a review of your current branch with the text applied as a note to the findings
  • Fixed /code-review ultra silently running a local review in non-interactive sessions — it now launches the cloud review
  • Fixed VoiceOver reading "new line" instead of echoing the typed space at the end of the input in --ax-screen-reader mode
  • Fixed a retry loop that re-sent identical doomed requests after a context-overflow error with a large thinking budget; Ctrl+B backgrounding now applies the same background-shell caps as other paths
  • Improved /ultrareview error feedback so Claude can correct an invalid argument instead of retrying it unchanged
  • Changed /deep-research to start only when invoked manually; Claude no longer launches it on its own
  • Added an announcement when fast mode changes as a result of switching models via /config model=<x> or Remote Control
  • Added yes/no/on/off/1/0 (case-insensitive) as accepted values for skill and plugin frontmatter booleans, alongside true/false
v2.1.2172026-07-21/compactFIX --resumeFIX --continueFIX /resumeFIX /backgroundFIX --max-budget-usdFIX
  • Added emoji shortcode autocomplete in the prompt input: type :heart: to insert ❤️, or :hea for suggestions — disable with the emojiCompletionEnabled setting
  • Added warnings when transcript writes are failing (e.g. disk full) or when session saving is off due to an inherited environment variable, instead of losing transcripts silently
  • Fixed auto-compact never triggering for Claude Opus 4.8 on Bedrock and /compact failing once over the limit
  • Fixed --resume/--continue and /resume failing with a TypeError when a transcript has a malformed attachment entry
  • Fixed background shells sometimes becoming impossible to stop after a session is sent to the background (/background or ←) or when the session exits on a heavily loaded machine, most visible on Windows
  • Capped the frontend-design plugin suggestion tip at 3 lifetime impressions instead of repeating indefinitely
  • Added a cap on concurrently-running subagents (default 20, override with CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS) so one message can't fan out unbounded background agents
  • Fixed --max-budget-usd not stopping background subagents: once the cap is reached, new spawns are denied and running background agents are halted
v2.1.2162026-07-20--git-dirFIX Ctrl+XFIX /memoryFIX /planFIX /keybindingsFIX Ctrl+GFIX /configFIX Ctrl+OFIX /forkIMP /ultrareviewIMP /code-review ultraIMP /code-reviewIMP /contextIMP /compactIMP /rewindIMP /mcpIMP /install-github-appIMP
  • Added sandbox.filesystem.disabled setting to skip filesystem isolation while keeping network egress control
  • Fixed worktree-isolated subagents redirecting git into the shared checkout via git -C, --git-dir, or GIT_DIR/GIT_WORK_TREE
  • Fixed pressing Ctrl+X twice in the agent list failing to delete a session, and deleted sessions reappearing when their background worker had died
  • Fixed mouse and focus garbage in the terminal while a GUI editor from /memory, /plan, /keybindings, or Ctrl+G is open; /memory no longer waits for the editor to close
  • Fixed the /config settings list in fullscreen mode clipping its keyboard-hint footer
  • Fixed the transcript-mode (Ctrl+O) footer hint wrapping on terminals narrower than 104 columns
  • Improved the /fork confirmation to one line with the new session's name, claude attach id, and a note when the copy shares your checkout
  • Improved the /ultrareview diff-too-large error to show configured limits, measured diff size, and largest contributing files
  • Improved /code-review ultra empty-diff message to name the exact base ref and suggest passing an explicit base
  • /context now shows an explicit warning when the conversation exceeds the context window, and a failed /compact displays as an error
  • /rewind no longer restores or deletes files through symlinks or hard links at tracked paths and reports how many paths it skipped
  • Background sessions: /mcp and /install-github-app now park a "needs input" request in the agent view when no client is attached
  • Updated the bundled dataviz skill: reordered the default chart palette and fixed guidance that suggested direct labels for four-series charts
  • [VSCode] Fixed right-to-left text (Arabic, Hebrew, Persian) rendering in the wrong order when mixed with English or code
v2.1.2152026-07-19/verify /code-review
  • Claude no longer runs the /verify and /code-review skills on its own; invoke them with /verify or /code-review when you want them
v2.1.2142026-07-18/dirIMP --urlNEW --connectionNEW --identityNEW --settingsFIX /backgroundFIX /install-github-appFIX /mcpFIX /ultrareviewFIX /statusFIX --magic-fileIMP --files-fromIMP
  • Fixed single-segment dir/ allow rules like Edit(src/) auto-approving writes to nested dir/ directories anywhere in the tree instead of only <cwd>/dir
  • Added the EndConversation tool: Claude can end sessions with highly abusive users or jailbreak attempts, as on claude.ai since 2025 — see https://www.anthropic.com/research/end-subset-conversations
  • Added a periodic progress heartbeat for long-running tool calls that previously went silent
  • Added an ISO modified timestamp to memory file frontmatter
  • Added message.uuid, client_request_id, and tool_source attributes to OpenTelemetry log events for message-level correlation and tool provenance
  • Added CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH to configure the 60 KB truncation limit on OpenTelemetry content attributes
  • Added reasoning effort to the subagentStatusLine payload, so custom agent rows can render model and effort
  • Added permission prompts for docker commands (including the Podman docker shim) carrying daemon-redirect flags (--url, --connection, --identity, and Podman's remote mode) that previously ran without one
  • Fixed unbounded memory growth when --settings points at a device file or multi-GB file; oversized (>2 MiB) settings files now fail at startup with a clear error
  • Fixed background sessions parked with ← or /background and left idle keeping the background daemon and a worker process alive indefinitely
  • Fixed /install-github-app and the /mcp settings menu being blocked in agent-view sessions — they're now refused only in background sessions with no terminal attached
  • Fixed plugins enabled via the --settings CLI flag not loading (regression since v2.1.181)
  • Fixed /ultrareview refusing to run in repos with no merge base — it now offers to review all tracked files
  • Fixed claude update and claude doctor hanging silently, and the /status System diagnostics section going blank, when a shell-config path is a directory
  • Changed single-segment dir/ hook if: conditions to match only <cwd>/dir; write /dir/** for any-depth matching. deny/ask permission rules keep their any-depth match.
  • Changed file commands using -m/--magic-file or -f/--files-from to require permission instead of being auto-allowed as read-only
v2.1.2122026-07-17/forkIMP /subtaskIMP --yesNEW /clearNEW /resumeIMP /backgroundFIX Ctrl+JFIX /ultrareviewFIX /ultrareview <branch>FIX --continueFIX --resumeFIX ctrl+gFIX /btwIMP
  • /fork now copies your conversation into a new background session (its own row in claude agents) while you keep working; the in-session subagent it used to launch is now /subtask
  • Added claude auto-mode reset to restore the default auto-mode configuration, with a confirmation prompt (pass --yes to skip)
  • Added a session-wide limit on WebSearch tool calls (default 200, tunable via CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION) to stop runaway search loops
  • Added a per-session cap on subagent spawns (default 200, override with CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION) to stop runaway delegation loops; /clear resets the budget
  • MCP tool calls running longer than 2 minutes now move to the background automatically so the session stays usable; configure the threshold or disable with CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS
  • Typing /resume in the agent view now opens a picker of past sessions — including sessions deleted from the list — and resumes your pick as a background session
  • Fixed /background and claude --bg failing with "EUNKNOWN: unknown error, uv_spawn" on Windows when Group Policy blocks PowerShell 5.1; the daemon now prefers PowerShell 7
  • Fixed Ctrl+J not inserting a newline in the agent view dispatch input on terminals with extended key reporting, and surfaced the newline shortcut in the ? help overlay
  • Fixed /ultrareview rejecting PR references like #123, PR 123, and pasted PR URLs; error hints now name the command you actually typed
  • Fixed /ultrareview <branch> not fetching the branch from origin when it exists remotely; it now suggests the closest branch name on typos
  • Fixed /ultrareview skipping the billing confirmation in a new conversation after /clear
  • Fixed /ultrareview's "not a git repository" error on Claude Desktop now suggesting the project's repository folder instead of terminal commands
  • Fixed ExitWorktree failing with "no active EnterWorktree session" after resuming a session with --continue/--resume in print/SDK mode
  • Fixed background sessions created with /fork losing their live-parent protection after a state write failure
  • Fixed the plan-approval dialog footer splitting "ctrl+g to edit in <editor>" apart when the file path is long
  • Reduced token usage in inter-agent messaging: SendMessage bodies are no longer duplicated into replayed history and tool results
  • Changed /fork to name the copy after your prompt when the session has no title, so the row is recognizable in the agent view
  • Changed bare /btw to reopen the side-question panel on your most recent exchange so you can browse earlier answers
  • Updated the auth status panel title from "Cloud authentication" to "Authentication"
  • Corrected an earlier release note (2.1.200): tmux through the 3.6 series lacks synchronized output; newer tmux with support is detected automatically
v2.1.2112026-07-15--forward-subagent-textNEW /loopFIX /resumeFIX /terminal-setupFIX /clearFIX /usage-creditsIMP
  • Added --forward-subagent-text flag and CLAUDE_CODE_FORWARD_SUBAGENT_TEXT environment variable to include subagent text and thinking in stream-json output
  • Fixed /loop hiding the session from /resume after a single use
  • Fixed screen reader users losing the audible terminal bell after /terminal-setup or onboarding terminal setup
  • Fixed /clear not resetting the session cost counter — the statusline's cost now starts at $0 after /clear
  • Hardened synced skill/plugin directory naming on Windows and kept CCR web fetch/search proxies working after /clear
  • Updated integer environment variables (timeouts, token budgets, retry counts) to accept scientific notation and digit-separator spellings like 1e6 and 64_000
  • Updated documentation links to the current docs sites
  • Changed /usage-credits to ask for confirmation before sending a request to organization admins
  • [VSCode] Updated the Remote Control banner to describe what it does
  • Claude in Chrome: hardened file-upload path validation
  • Claude in Chrome: save_to_disk on screenshot actions now writes the image to disk and returns the path; previously it did nothing
v2.1.2102026-07-14/doctorFIX Shift+TIMP
  • Added a live elapsed-time counter to the collapsed tool summary line so long-running tool calls visibly tick instead of looking stuck
  • Added a startup warning for Write(path), NotebookEdit(path), and Glob(path) permission rules — use Edit(path) or Read(path) instead
  • Fixed /doctor skipping its auto-mode-default proposal on Bedrock, Vertex, and Foundry, where auto mode no longer needs an opt-in
  • Hardened the Agent tool against indirect prompt injection via content a subagent read
  • Memory writes that leave a MEMORY.md index over its read limit now produce an explicit error instead of silent truncation
  • Screen reader mode now announces permission mode changes aloud when cycling modes with Shift+Tab
  • The agents footer hint now shows how many background agents are waiting on your input, with a brief color emphasis when the count changes
  • Agent view: the session you pressed ← from stays visibly marked even after mouse hover or arrow keys move the selection
  • Fable temporarily shows as unavailable in the advisor picker while a server-side issue causing Fable advisor failures is fixed
v2.1.2092026-07-14/modelFIX
  • Fixed /model and other dialogs being blocked in claude agents background sessions (reverts an overly broad guard)
v2.1.2082026-07-14--ax-screen-readerNEW /upgradeFIX /usageIMP /mcpIMP /release-notesFIX /tasksIMP Ctrl+XIMP --dangerously-skip-permissionsIMP /backticksIMP /install-github-app
  • Added screen reader mode: opt-in plain-text rendering for screen reader users. Run claude --ax-screen-reader, set CLAUDE_AX_SCREEN_READER=1, or add "axScreenReader": true to settings.
  • Added vimInsertModeRemaps setting: map two-key insert-mode sequences like jj to Escape in vim mode
  • Added CLAUDE_CODE_PROCESS_WRAPPER: agent view and the background service now honor a corporate launcher by running every Claude Code self-spawn through a required wrapper executable
  • Added mouse-click support for multi-select menus and "Other" input rows in fullscreen mode
  • Fixed /upgrade showing a login flow instead of the upgrade URL when the browser fails to open
  • Fixed /usage showing stale cached bars over fresher data, and /mcp not reclassifying placeholder servers after config edits
  • Fixed /release-notes adding the viewed notes to the model's context — "Show all" previously injected the entire changelog into every subsequent request
  • Reduced per-tool-call CPU overhead in print/SDK sessions with many MCP tools by caching tool-pool assembly (up to 7x faster tool rounds at high tool counts)
  • Reduced memory usage by bounding the file edit read cache to 16 MB instead of pinning up to 1,000 full files
  • Reduced session transcript size (up to 79x in edit-heavy sessions) and bounded checkpoint disk usage by pruning superseded file-history backups
  • Reduced memory usage when resuming sessions with background agents or forks spawned from large conversations
  • Completed background agents now stay listed in /tasks until cleanup instead of vanishing the moment they finish
  • Attaching to a stopped background agent now shows its transcript immediately while the session warms up, instead of a blank "Session is starting" screen
  • Agent view: Ctrl+X now deletes renamed-branch worktrees, never destroys unpushed commits, keeps the session row when a worktree is kept, and reused worktree names reset to the current base
  • Catastrophic removals (e.g. rm -rf ~) in commands containing $(…)/backticks/<(…) now prompt in --dangerously-skip-permissions and auto mode, matching the plain form
  • /install-github-app and the /mcp settings menu no longer open in background sessions
  • MCP servers configured with an empty URL now show as "not configured" in /mcp instead of a config error
  • /usage now shows your last-known usage bars with an "as of" note when the usage endpoint is rate-limited, instead of an error screen
v2.1.2072026-07-11/doctorFIX --settings /usage-creditsFIX
  • Auto mode is now available without CLAUDE_CODE_ENABLE_AUTO_MODE opt-in on Bedrock, Vertex AI, and Foundry; disable via disableAutoMode in settings
  • Fixed the auto-updater overwriting a custom launcher script or symlink at ~/.local/bin/claude on every release; /doctor now reports an externally managed launcher
  • Plugin hooks/monitors/MCP headersHelper: ${user_config.*} in shell-form commands is now rejected (shell-injection fix). Hooks: use exec form (args array) or $CLAUDE_PLUGIN_OPTION_<KEY>; monitors and headersHelper: read the value inside the script (config file or the server's env block).
  • Plugin option values (pluginConfigs) are no longer read from project-level .claude/settings.json; only user, --settings, and managed settings are honored
  • Fixed /usage-credits amount inputs silently stripping malformed values (e.g. a pasted timestamp) to digits; malformed amounts are now rejected with an error, and amounts over $1,000 require a typed confirmation
v2.1.2062026-07-10/cdNEW /add-dirNEW /doctorNEW /commit-push-prIMP /loginIMP --continueFIX --mcp-configFIX --bgFIX --permission-prompt-toolFIX /modelFIX /remote-controlFIX /statusFIX Ctrl+EFIX /code-reviewIMP Ctrl+XIMP
  • Added directory path suggestions to /cd, matching /add-dir behavior
  • Added a /doctor check that proposes trimming checked-in CLAUDE.md files by cutting content Claude could derive from the codebase
  • /commit-push-pr now auto-allows git push to the repo's configured push remote (remote.pushDefault, or the sole remote when only one is configured) in addition to origin
  • Gateway: /login now supports Anthropic-operated public gateway endpoints
  • EnterWorktree now asks for confirmation before entering a git worktree outside the project's .claude/worktrees/ directory
  • Background agents now upgrade to a new version in the background right after a Claude Code update, instead of paying a slow stale-session upgrade when you attach
  • Fixed an expired login failing every model with a misleading "There's an issue with the selected model" error instead of prompting to run /login
  • Fixed claude --resume and --continue not responding to keyboard input on startup
  • Fixed MCP servers configured via --mcp-config or .mcp.json ignoring a per-server request_timeout_ms, which caused long-running MCP tool calls to time out at the 60s default in fresh sessions
  • Fixed CLAUDE_CODE_EXTRA_BODY being silently ignored by claude agents / --bg background workers; the shell-exported override now follows the dispatching session
  • Fixed --permission-prompt-tool pointing at an MCP server crashing with "MCP tool not found" on cold start before the server finishes connecting
  • Fixed /model picker rows printing a price for a different model than the row named, and stopped quoting first-party list prices on providers that don't bill them
  • Fixed server-provided model rows being misplaced in the /model picker when an entitlement or allowlist restriction drops the row they were positioned against
  • Fixed /remote-control showing "Unknown command" when logged out — it now explains how to sign in
  • Fixed /status listing the same broken-install warning twice
  • Fixed /doctor's update check to compare Homebrew installs against their cask's channel instead of the settings channel
  • Fixed the fullscreen jump-to-bottom pill suggesting Ctrl+End on macOS, not showing rebound chords, and wrapping over the transcript
  • Bedrock: fixed a multi-minute startup hang when using an awsCredentialExport helper on networks with restricted egress
  • Improved /code-review findings quality on claude-opus-4-8 across all effort levels
  • Changed agents view: Ctrl+X now permanently removes a completed session, and sessions no longer render twice; deleted background jobs stay deleted
v2.1.2052026-07-08--json-schemaFIX --max-turnsFIX /doctorIMP /checkupIMP /loginFIX
  • Added an auto mode rule that blocks tampering with session transcript files
  • Fixed --json-schema silently producing unstructured output when the schema was invalid, and schemas using the format keyword being rejected
  • Fixed a message sent while Claude was working being silently lost when the turn ended at the --max-turns limit
  • Auto-update binary downloads now stream to disk instead of buffering in memory, cutting the updater's peak memory usage by roughly 400 MB
  • Background task notifications now explicitly state that no human input has occurred, preventing fabricated in-transcript approvals from being acted on
  • /doctor is now a full setup checkup that can diagnose and fix issues; /checkup is its alias
  • Reserved the "Claude Browser" MCP server name (alongside "Claude Preview") ahead of the Claude Desktop pane rename; user-configured MCP servers can no longer register under either name
  • Fixed Cowork VM-mode local-agent sessions failing to start with "Not logged in · Please run /login" on CLI 2.1.203+
v2.1.2042026-07-08—
  • Fixed hook events not streaming during SessionStart hooks in headless sessions, which could cause remote workers to be idle-reaped mid-hook
v2.1.2032026-07-07/exitFIX /clearFIX /doctorDEL /statusDEL
  • Added a warning when your login is about to expire, so you can re-authenticate before background sessions are interrupted
  • Added a grey ⏸ badge to the footer when in manual permission mode, making the active mode always visible
  • Added the session's additional working directories to MCP roots/list, with notifications/roots/list_changed sent when the set changes
  • Fixed /exit incorrectly warning about running background agents after all named agents had completed
  • Fixed background task output on Windows being permanently replaced by an empty file after /clear
  • Reduced binary size by ~7 MB and startup memory by ~7 MB by loading a large bundled dependency lazily instead of inlining it
  • Removed the startup "claude command missing or broken" warnings — they now appear in /doctor and /status instead
  • [VSCode] Added a Settings toggle for "Enable Remote Control for all sessions"
v2.1.2022026-07-06/configNEW Ctrl+RFIX /renameFIX /remote-controlFIX /workflowsIMP /review <pr>IMP /reviewIMP /code-reviewIMP
  • Added a "Dynamic workflow size" setting in /config for controlling how large Claude generally makes dynamic workflows (small/medium/large agent counts) — an advisory guideline, not an enforced cap
  • Added workflow.run_id and workflow.name OpenTelemetry attributes to telemetry emitted by workflow-spawned agents, so a workflow run's activity can be reconstructed from OTel data
  • Fixed a crash in the inline Ctrl+R history search when accepting or cancelling while the search was still scanning the history file
  • Fixed /rename on background sessions being reverted when the job restarts, which broke addressing the session by its new name
  • Fixed /remote-control sessions showing the wrong permission mode in the mobile and web apps
  • Improved /workflows agent list layout: wider titles, a dedicated time column, shorter model names, and no per-row tool-call counts
  • Changed /review <pr> back to a fast single-pass review; use /code-review <level> <pr#> for the multi-agent review at a chosen effort level
v2.1.2012026-07-03—
  • Claude Sonnet 5 sessions no longer use the mid-conversation system role for harness reminders
v2.1.2002026-07-03/configIMP --helpIMP --permission-mode manualIMP /mcpFIX
  • Changed AskUserQuestion dialogs to no longer auto-continue by default; opt into an idle timeout via /config
  • Changed the "default" permission mode to "Manual" across the CLI, --help, VS Code, and JetBrains; --permission-mode manual and "defaultMode": "manual" are accepted alongside default
  • Fixed /mcp server list not tracking focus for screen readers and magnifiers
v2.1.1992026-07-02/skill-aIMP /skill-bIMP /modelFIX /fastFIX /backgroundFIX /colorFIX
  • Stacked slash-skill invocations like /skill-a /skill-b do XYZ now load all leading skills (up to 5), not just the first
  • Fixed typing /model or /fast while viewing a subagent silently opening the lead's model picker — a notice now explains the command applies to the lead
  • Fixed backgrounding a session with ← or /background dropping its /color from the agent view row
  • Transient server rate-limit errors (429s unrelated to your usage limit) are now retried automatically with backoff for subscribers instead of failing the turn
  • CLAUDE_CODE_RETRY_WATCHDOG now raises the default retry count for non-capacity transient errors to 300 and lifts the cap of 15 on CLAUDE_CODE_MAX_RETRIES
  • claude agents session rows now show pull-request links as bare #N without the redundant "PR" label
v2.1.1982026-07-01/datavizNEW /diffFIX /loginIMP /desktopFIX --printFIX /branchFIX /agentsDEL
  • Subagents now run in the background by default, so Claude keeps working while they run and is notified when they finish (previously a gradual rollout)
  • Claude in Chrome is now generally available
  • Added background agent notifications in claude agents — sessions that need input or finish now fire the Notification hook (agent_needs_input / agent_completed)
  • Added /dataviz skill for chart and dashboard design guidance with a runnable color-palette validator
  • Gateway: added Claude Platform on AWS (anthropicAws) as an upstream provider; model-not-found responses now advance the failover chain
  • Background agents launched from claude agents now commit, push, and open a draft PR when they finish code work in a worktree, instead of stopping to ask
  • The built-in Explore agent now inherits the main session's model (capped at opus) instead of running on haiku
  • Subagents and context compaction now inherit the session's extended thinking configuration, improving output quality on delegated tasks
  • Fixed the /diff panel not refreshing when you switch branches or commit outside the session
  • Fixed Claude Platform on AWS and Mantle sessions dead-ending with "Please run /login" when the STS token expires — awsAuthRefresh now runs automatically
  • Fixed /desktop failing with "Cannot determine working directory" after entering and exiting a worktree
  • Fixed claude --bg silently creating an unattachable session when combined with --print/-p; the conflicting flags are now rejected up front
  • Fixed /branch deriving its default fork name from the compaction summary instead of the first real prompt
  • Keyboard shortcut hints now show opt/cmd instead of alt/super when connected from a Mac over SSH
  • /login now opens the sign-in dialog from the claude agents view instead of saying it isn't available
  • Removed the /agents wizard; ask Claude to create or manage subagents, or edit .claude/agents/ directly
v2.1.1972026-06-30—
  • Introducing Claude Sonnet 5: now the default model in Claude Code, with a native 1M-token context window and promotional pricing of $2/$10 per Mtok through August 31. Update to version 2.1.197 for access. https://www.anthropic.com/news/claude-sonnet-5
v2.1.1962026-06-29/modelNEW Ctrl+cNEW /cdFIX Ctrl+CFIX Ctrl+XFIX Ctrl+KFIX /contextFIX /deep-researchFIX /code-reviewIMP
  • Added support for organization default models — admins set it in the org console; it shows as "Org default" (or "Role default") in /model when you haven't picked one yourself
  • Added readable default names for sessions at start, making them easier to identify and message
  • Added clickable file attachments in chat — Cmd/Ctrl-click reveals the file in Finder/Explorer
  • Fixed sessions moved with /cd reappearing in the old directory's resume list after a non-graceful exit when the old path contained special characters
  • Fixed Esc Esc at an idle prompt not opening the rewind menu (regression); use Ctrl+C or Ctrl+X Ctrl+K to stop background agents
  • Fixed /context showing 0 tokens for all tool groups on Bedrock
  • Fixed /deep-research misreporting verifier failures as "all claims refuted" instead of unverified
  • Improved /code-review workflow: merged five cleanup finders into one, cutting token usage by roughly 25%
  • Reduced per-frame rendering work in the terminal UI by skipping no-op subtree walks during streaming
  • The streaming idle watchdog is now on by default for all providers — it aborts and retries when a response stream produces no events for 5 minutes. Set CLAUDE_ENABLE_STREAM_WATCHDOG=0 to disable.
  • Remote Control is now disabled when ANTHROPIC_BASE_URL points at a non-Anthropic host, matching the existing behavior under CLAUDE_CODE_USE_BEDROCK/_VERTEX/_FOUNDRY
v2.1.1952026-06-26/pluginFIX
  • Added CLAUDE_CODE_DISABLE_MOUSE_CLICKS to disable mouse click/drag/hover in fullscreen mode while keeping wheel scroll
  • Fixed /plugin Enable/Disable not working when a plugin's plugin.json name differs from its marketplace entry name
v2.1.1932026-06-25/permissionsNEW /mcpNEW /modelFIX /loginFIX /add-dirIMP
  • Added autoMode.classifyAllShell setting to route all Bash/PowerShell commands through the auto-mode classifier instead of only arbitrary-code-execution patterns
  • Added auto-mode denial reasons to the transcript, the denial toast, and /permissions recent denials
  • Added claude_code.assistant_response OpenTelemetry log event containing the model's response text. Redacted unless OTEL_LOG_ASSISTANT_RESPONSES=1; when that var is unset it follows OTEL_LOG_USER_PROMPTS, so deployments that already log prompt content will start receiving response content on upgrade — set OTEL_LOG_ASSISTANT_RESPONSES=0 to keep prompts-only.
  • Added live file path autocomplete to bash mode (!)
  • Added a startup notice when MCP servers need authentication, pointing at /mcp
  • Added automatic memory-pressure reaping for idle background shell commands (disable with CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP=1)
  • Fixed /model and other client-data-gated UI showing stale/empty state immediately after /login
  • Improved /add-dir message when the directory is already a working directory
v2.1.1912026-06-24/rewindNEW /clearNEW /voiceFIX /loginFIX /usageFIX /permissionsFIX
  • Added /rewind support for resuming a conversation from before /clear was run
  • Fixed /voice showing a generic "not available" message when disabled by an organization's policy — it now explains the restriction
  • Fixed /login URL opening truncated in Windows Terminal when it wraps across lines
  • Fixed claude agents sending builtin slash commands like /usage to background sessions as prompt text instead of showing a hint
  • Fixed /permissions Recently-denied tab: approving a denial now persists on close instead of being silently discarded
  • Reduced CPU usage during streaming responses by ~37% by coalescing text updates to 100ms
  • Reduced long-session memory growth from terminal output cache
v2.1.1902026-06-24—
  • Bug fixes and reliability improvements
v2.1.1872026-06-23--modelNEW /modelNEW /configNEW --resumeFIX --json-schemaFIX /updateFIX /bgFIX /tuiFIX --bgFIX --backgroundFIX /shareFIX Ctrl+CFIX Ctrl+DFIX /install-github-appIMP /btwIMP /pluginIMP
  • Added sandbox.credentials setting to block sandboxed commands from reading credential files and secret environment variables
  • Added org-configured model restrictions to the model picker, --model, /model, and ANTHROPIC_MODEL, with a "restricted by your organization's settings" message when a restricted model is selected
  • Added mouse click support to select menus (permission prompts, /model, /config, etc.) in fullscreen mode
  • Fixed --resume failing with "No conversation found" when the original -p run produced no model turns
  • Fixed --json-schema and workflow agent({schema}) structured output: the model can no longer re-call StructuredOutput indefinitely after a successful call, and follow-up turns now reliably return structured output
  • Fixed /update over Remote Control hanging when a startup trust dialog would have shown
  • Fixed channel connections dropping after navigating to the agents view and back, and after /bg, /tui, or /update
  • Fixed claude --help not listing the --bg/--background flag
  • Fixed Esc, Ctrl-C, and Ctrl-D not working while /share is uploading
  • Improved /install-github-app: GitHub Actions workflow setup is now optional — you can install just the GitHub App and skip the workflow/secret steps
  • Improved /btw with ←/→ arrow navigation to step through earlier answers
  • Improved /plugin to surface plugins you haven't used recently so you can clean them up
  • [VSCode] Fixed extension becoming unresponsive when resuming a large session
v2.1.1862026-06-22/mcpNEW --no-browserNEW /workflowsNEW /pluginNEW /loginNEW Ctrl+CFIX --toolsFIX --effortFIX /review <pr>IMP /code-review mediumIMP /reviewIMP /code-reviewIMP
  • Added claude mcp login <name> and claude mcp logout <name> to authenticate MCP servers from the CLI without opening the interactive /mcp menu, with --no-browser stdin redirect support for completing over SSH
  • Added status filtering (press f) to the /workflows agent detail view
  • Added a "Skills" section to the /plugin Installed tab
  • Added teammateMode: "iterm2" setting with a warning when auto mode cannot find the it2 CLI
  • Added "Claude Platform on AWS - refresh credentials" option to /login when awsAuthRefresh is configured
  • ! bash commands now trigger Claude to respond to the output automatically; set "respondToBashCommands": false in settings.json to keep the previous context-only behavior
  • Fixed Esc and Ctrl+C not responding while background agents are still running after the main turn ends
  • Fixed /plugin Installed showing a "more above" indicator when already scrolled to the top
  • Fixed --tools allowing feature-gated tools to slip through before flags loaded on a cold first launch
  • Fixed agent teams: teammates spawned via tmux/pane backends now inherit the leader's --effort level
  • Changed /review <pr> to use the same review engine as /code-review medium
v2.1.1852026-06-20—
  • The stream-stall hint now reads "Waiting for API response · will retry in …" instead of "No response from API · Retrying in …", and triggers after 20s of silence instead of 10s
v2.1.1832026-06-19/config --helpNEW /configNEW --helpNEW /doctorDEL --debugDEL
  • Added a warning when the requested model is deprecated or automatically updated to a newer model, shown on stderr in print mode (-p) and now also covering models set in agent frontmatter
  • Added attribution.sessionUrl setting to omit the claude.ai session link from commits and PRs in web and Remote Control sessions
  • Added /config --help to list all available shorthand keys for /config key=value
  • Changed /config toggle behavior: Enter and Space both change the selected setting, and Esc now saves and closes instead of reverting
  • Removed the startup "setup issues" line under the logo — run /doctor to see configuration issues or use --debug
v2.1.1812026-06-17/configNEW Ctrl+cIMP Ctrl+CFIX /recapFIX /remote-controlFIX /effortFIX /modelFIX Ctrl+VFIX /statsFIX /copyFIX
  • Added /config key=value syntax to set any setting from the prompt (e.g. /config thinking=false) — works in interactive, -p, and Remote Control
  • Added sandbox.allowAppleEvents opt-in setting that lets sandboxed commands send Apple Events on macOS
  • Added CLAUDE_CLIENT_PRESENCE_FILE environment variable: point it at a marker file to suppress mobile push notifications while you're at the machine
  • Upgraded the bundled Bun runtime to 1.4
  • Changed fullscreen mode URL opening to require Cmd+click (macOS) / Ctrl+click, matching native terminal behavior
  • Fixed macOS TUI freezing at session start (Ctrl+C unresponsive) when Spotlight is busy reindexing
  • Fixed /recap and conversation forks using the previous model immediately after a model switch
  • Fixed /remote-control leaving a stale "connecting…" line; it now confirms in the transcript once connected
  • Fixed settings changes (such as /effort or /model) failing with ENOENT when ~/.claude/settings.json is a relative symlink under a symlinked ~/.claude
  • Fixed Ctrl+C in fullscreen after a native terminal selection (modifier+drag) overwriting the clipboard with the app's prior selection
  • Fixed Ctrl+V showing "No image found in clipboard" instead of pasting when the clipboard contains text
  • Fixed /stats "Most active day" and daily token chart dates showing one day early in UTC-negative timezones
  • Fixed /copy and copy-on-select on Linux not detecting a clipboard utility installed after Claude Code started
v2.1.1792026-06-16Ctrl+OFIX
  • Fixed Ctrl+O not showing the subagent's transcript when viewing a subagent
v2.1.1782026-06-15/doctorIMP /rcIMP /bugIMP ctrl+bFIX --fallback-modelFIX /bgFIX
  • Agent teams: removed the TeamCreate and TeamDelete tools. With CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 set, every session now has one implicit team — spawn teammates directly with the Agent tool's name parameter, no setup step needed. The team_name parameter on the Agent tool is still accepted but ignored.
  • Added Tool(param:value) syntax for permission rules to match a tool's input parameters (with * wildcard), e.g. Agent(model:opus) to block Opus subagents
  • Skills in nested .claude/skills directories now load when working on files there; on a name clash, the nested skill appears as <dir>:<name> so both stay available
  • Nested .claude/ directories: the agent, workflow, and output-style closest to the working directory now wins when names collide; project-scope workflow saves now target the closest existing .claude/workflows/
  • Improved /doctor with consistent flat tree layout across all sections, clearer section status icons, and highlighted command names
  • Improved Remote Control error messages: connection failures now show a persistent red "/rc failed" indicator in the footer, and the "not yet enabled" error now explains whether it's a gate, a check failure, stale entitlement, or org policy
  • /bug now requires a description before submitting, and no longer uses model-refusal text as the GitHub issue title
  • Fixed several subagent issues: viewing a subagent's transcript now shows tool results and live progress, messages sent while it finishes its turn are no longer dropped, and backgrounding a running subagent (ctrl+b) no longer restarts it from scratch
  • Fixed compaction not honoring --fallback-model: compaction now falls back to the configured fallback model chain on overload or model-availability errors
  • Fixed background sessions created with /bg or ←← after a turn finished showing "Working" forever in the agents list
  • [VSCode] Fixed pressing Esc to dismiss a CJK IME candidate window canceling the running Claude task
v2.1.1762026-06-12/fastFIX /copyFIX /cdFIX /bgFIX
  • Session titles are now generated in the language of your conversation (set the language setting to pin a specific language)
  • Added footerLinksRegexes setting for regex-matched link badges in the footer row, configurable via user or managed settings
  • Fixed availableModels enforcement: alias model picks can no longer be redirected to a blocked model via ANTHROPIC_DEFAULT_*_MODEL environment variables, and /fast now refuses to toggle when it would switch to a model outside the allowlist
  • Fixed /copy and mouse-selection copy not reaching the system clipboard inside tmux over SSH, and tmux paste buffer not loading on versions older than 3.2
  • Fixed /cd and worktree moves leaving the session reporting the previous directory's git branch
  • Fixed backgrounded sessions showing "Working" forever when /bg mid-turn had nothing left to continue
  • Background sessions now show clearer guidance when a window left open across an auto-update can't submit a reply, and claude daemon status explains version-skew behavior
v2.1.1752026-06-12—
  • Added enforceAvailableModels managed setting — when enabled, the availableModels allowlist also constrains the Default model (a Default that would resolve to a disallowed model now falls back to the first allowed model), and user or project settings can no longer widen a managed availableModels list
v2.1.1742026-06-12/modelFIX /advisorFIX /usageNEW
  • Added wheelScrollAccelerationEnabled setting to disable mouse-wheel scroll acceleration in fullscreen mode
  • Fixed the /model picker hiding the model family that Default resolves to — Opus now appears as its own row on Max/Team Premium/Enterprise plans, Sonnet on Pro/Team plans, and Opus on pay-as-you-go API accounts
  • Fixed /model picker showing a hardcoded Sonnet version label when ANTHROPIC_DEFAULT_SONNET_MODEL pins a different Sonnet
  • Fixed background sessions inheriting another session's ANTHROPIC_* provider env (gateway URL, custom headers, /model aliases) from the shell that started the background daemon
  • Fixed the /advisor dialog pre-selecting a saved advisor model that is blocked by the availableModels allowlist
  • [VSCode] Added usage attribution to the Account & usage dialog (/usage) showing cache misses, long context, subagents, and per-skill/agent/plugin/MCP breakdowns over the last 24h or 7d
v2.1.1732026-06-11—
  • Fixed Fable 5 model names with a [1m] suffix not being normalized — Fable 5 includes 1M context by default, so the suffix is now stripped automatically
  • Fixed a spurious "sandbox dependencies missing" startup warning on Windows when sandbox was enabled in settings
v2.1.1722026-06-10/statusIMP /pluginNEW /modelFIX /configFIX /goalIMP /code-reviewIMP /rc /loop
  • Sub-agents can now spawn their own sub-agents (up to 5 levels deep)
  • Amazon Bedrock now reads the AWS region from ~/.aws config files when AWS_REGION isn't set, matching AWS SDK precedence; /status shows where the region came from
  • Added a search bar when browsing a marketplace's plugins in /plugin
  • Added model attribute to the claude_code.lines_of_code.count OTEL metric
  • Fixed /model suggestions in the claude agents dispatch input rendering with a misleading slash prefix and showing models disabled for your org
  • Fixed availableModels allowlists hiding the /model picker's Opus and Sonnet 1M rows when entries use version-specific IDs like claude-opus-4-8
  • Fixed the /model picker on Bedrock offering models the provider doesn't serve — selecting one silently switched the session model and lit the selection marker on multiple rows
  • Fixed WebFetch(domain:*.example.com) wildcard domain rules never matching subdomains in allow, deny, and ask position, and file permission rules with mid-pattern wildcards (e.g. Read(secrets-*/config.json)) being rejected at startup
  • Disable mouse tracking on Windows consoles that don't fully support it
  • Fixed the /plugin marketplace list losing its cursor after backing out of a long plugin list, and Esc from the plugin browser returning to the wrong tab
  • Reduced idle CPU usage: /goal status chip no longer re-renders the terminal at 5 Hz while idle, and fewer UI re-renders while subagents run in parallel
  • /code-review now keeps the ultra option visible when you're not signed in to claude.ai, with an explanation that the cloud review requires a claude.ai account
  • Shortened the Remote Control footer indicator to "/rc active" and hid it on narrow terminals
  • Stopped promoting /loop in remote sessions, where pending loops don't keep the container alive
  • [VSCode] Fixed PowerShell tool calls rendering as raw JSON instead of a proper command display and permission dialog, and stripped ANSI escape codes from displayed shell output
v2.1.1702026-06-09—
  • Introducing Claude Fable 5: a Mythos-class model that we’ve made safe for general use. Fable’s capabilities exceed those of any model we’ve ever made generally available. Update to version 2.1.170 for access. https://www.anthropic.com/news/claude-fable-5-mythos-5
v2.1.1692026-06-08--safe-modeNEW /cdNEW --mcp-configFIX --allFIX /workflowsIMP --ideIMP --chromeIMP --bareIMP --remote-controlIMP
  • Added --safe-mode flag (and CLAUDE_CODE_SAFE_MODE) to start Claude Code with all customizations (CLAUDE.md, plugins, skills, hooks, MCP servers) disabled for troubleshooting
  • Added /cd command to move a session to a new working directory without breaking the prompt cache mid-session
  • Added a disableBundledSkills setting and CLAUDE_CODE_DISABLE_BUNDLED_SKILLS environment variable to hide bundled skills, workflows, and built-in slash commands from the model
  • Fixed enterprise managed MCP policies (allowedMcpServers/deniedMcpServers) not being enforced on reconnect, IDE-typed configs, --mcp-config servers during the first session after install, or before remote settings loaded; also fixed slow cold starts for orgs without remote settings
  • Fixed claude agents --json omitting blocked and just-dispatched background sessions; added --all to include completed sessions, plus new id and state fields
  • /workflows now opens immediately even while a turn is in progress
  • Reduced CPU usage while responses stream and during spinner animations
  • Restored a default 5-minute idle timeout on Vertex/Foundry so a stalled stream aborts instead of hanging indefinitely; set API_FORCE_IDLE_TIMEOUT=0 to opt out
  • Remote-managed settings with an invalid entry now apply their remaining valid policies and surface the validation error, instead of silently dropping the whole payload
  • Background sessions now preserve --ide, --chrome, --bare, --remote-control, and other flags across retire→wake, and respawn state validation was hardened
  • Background sessions are now told that shared-checkout edits are blocked until they enter a worktree, avoiding a wasted rejected edit before EnterWorktree
  • The "CLAUDE.md is too long" warning threshold now scales with the model's context window
  • Auto-updater on Windows now stops retrying within a session once claude.exe is held by another process
  • Promo credit claims for Apple/Google-billed subscribers without a payment method now explain where to add one
v2.1.1682026-06-06—
  • Bug fixes and reliability improvements
v2.1.1672026-06-06—
  • Bug fixes and reliability improvements
v2.1.1662026-06-06--fallback-modelNEW --thinking disabledIMP Shift+nFIX /loginFIX /voiceFIX Ctrl+OFIX /doctorFIX
  • Added fallbackModel setting to configure up to three fallback models tried in order when the primary model is overloaded or unavailable; --fallback-model now also applies to interactive sessions
  • Added glob pattern support in deny rule tool-name position ("*" denies all tools); allow rules reject non-MCP globs, and unknown tool names in deny rules warn at startup
  • Hardened cross-session messaging: messages relayed via SendMessage from other Claude sessions no longer carry user authority — receivers refuse relayed permission requests, and auto mode blocks them
  • MAX_THINKING_TOKENS=0, --thinking disabled, and the per-model thinking toggle now disable thinking on models that think by default via the Claude API (3P providers unchanged)
  • Claude Code now retries a turn once on the fallback model when the API rejects an unexpected non-retryable error; auth, rate-limit, request-size, and transport errors still surface immediately
  • claude update now announces the target version before downloading instead of going silent
  • claude agents: typing a URL into the list now filters to the session whose first prompt contained it
  • Fixed Shift+non-ASCII characters (e.g. Shift+ä → Ä) being dropped in terminals using the Kitty keyboard protocol (WezTerm, Ghostty, kitty)
  • Fixed voice mode requiring /login to clear a stale auth check after toggling /voice
  • Fixed duplicated thinking text in the Ctrl+O transcript view while streaming
  • Fixed /doctor showing a contradictory failed "Not inside a remote session" check when run inside a remote session
v2.1.1652026-06-05—
  • Bug fixes and reliability improvements
v2.1.1632026-06-04/plugin listNEW --enabledNEW --disabledNEW /pluginNEW /btwNEW --resumeIMP /mcpFIX /pluginsFIX
  • Added requiredMinimumVersion and requiredMaximumVersion managed settings — Claude Code refuses to start if its version is outside the allowed range and directs the user to an approved version
  • Added /plugin list command to list installed plugins, with --enabled/--disabled filters
  • Added a "c to copy" shortcut to /btw that copies the raw markdown answer to the clipboard, preserving formatting when pasted elsewhere
  • Hooks: Stop and SubagentStop hooks can now return hookSpecificOutput.additionalContext to give Claude feedback and keep the turn going without being labeled a hook error
  • Skills: added \$ escape syntax to include a literal $ before a digit in command bodies
  • stdio MCP servers now receive the same CLAUDE_CODE_SESSION_ID as hooks/Bash on --resume
  • Fixed a stray "(no content)" line left in the transcript after closing panel dialogs like /mcp and /plugins
  • Background agent sessions now update to a new Claude Code version in the background, so opening a session after an update no longer waits on a cold restart
  • Clearer descriptions for built-in commands and skills in the / menu
  • The subscription-switch suggestion now shows in the startup announcement slot instead of a toast
  • claude agents dispatching from the state-grouped view now starts the session in the directory the agent view was opened from
v2.1.1622026-06-03--toolsIMP /effortIMP /ideIMP /terminal-setupIMP /scroll-speedIMP Ctrl+VFIX
  • claude agents --json now includes waitingFor showing what a waiting session is blocked on (e.g. permission prompt)
  • --tools: explicitly listing Grep/Glob now provides the dedicated search tools on native builds with embedded search (previously these names were silently ignored)
  • /effort now confirms when your chosen level will persist as the default for new sessions
  • Clicking a slash command in the autocomplete menu now fills it into your prompt instead of running it immediately; press Enter to run
  • Remote Control now shows as a persistent footer pill (with a link to the session) instead of a startup message
  • Renamed Windsurf to Devin Desktop in the /ide menu, /terminal-setup, and /scroll-speed, following the editor's rebrand
  • Fixed claude agents Ctrl+V image paste doing nothing in the dispatch input and the session reply box; pasting with no image now shows a hint
  • Quieter startup: notices group by severity, and session info and announcements share a single line per launch
  • Startup warnings rewritten to be shorter and clearer, each with a concrete fix
  • Launch-prompt warnings (deep link/pre-filled prompt) now stay pinned below the input until you act instead of scrolling away
  • Failed turns now show a compact warning line instead of a multi-line red error block
  • Background dispatch spawn failures now report the error class name when no errno is available
v2.1.1612026-06-02/mcpIMP /effortFIX --output-format textFIX /usage-creditsFIX /autofix-prFIX --resumeFIX /terminal-setupNEW
  • OTEL_RESOURCE_ATTRIBUTES values are now included as labels on metric datapoints, so you can slice usage metrics by custom dimensions like team or repo
  • claude agents rows now show done/total before the detail when work is fanned out; peek shows the longest-running item
  • /mcp now collapses claude.ai connectors you've never signed in to behind a "Show unused connectors" row
  • Parallel tool calls: a failed Bash command no longer cancels other calls in the same batch — each tool returns its own result independently
  • Fullscreen mode: clipboard now uses wl-copy/xclip/xsel on Linux when available, copies to both the clipboard and PRIMARY selection for middle-click paste, and the "hold {key} for native selection" hint now shows the correct key per terminal
  • Fixed the /effort dialog, workflow animations, and prompt keyword shimmer not honoring the "Reduce motion" setting
  • Fixed background subagent output corrupting claude -p stdout when using --output-format text or json
  • Fixed /usage-credits starting a re-login for Team and Enterprise admins instead of pointing to the organization's usage settings page
  • Fixed /autofix-pr reporting "cannot run on the default branch" when the session is inside a git worktree or another repository
  • Fixed --resume picker not showing sessions from the current directory when it isn't a git worktree (e.g., jj workspaces)
  • [VSCode] Added a tip suggesting disabling terminal GPU acceleration (or running /terminal-setup) to fix garbled glyphs
v2.1.1602026-06-02/effort ultracodeFIX /effortFIX --modelFIX
  • Added a prompt before writing to shell startup files (.zshenv, .zlogin, .bash_login) and ~/.config/git/, which could otherwise lead to unintended command execution
  • acceptEdits mode now prompts before writing build-tool config files that grant code execution (.npmrc, .yarnrc*, bunfig.toml, .bazelrc, .pre-commit-config.yaml, .devcontainer/, etc.)
  • Edit no longer requires a separate Read after viewing a file with grep: single-file grep/egrep/fgrep commands now satisfy the read-before-edit check
  • Fixed /effort ultracode incorrectly blaming the dynamic workflows setting when the model cannot run xhigh; ultracode is no longer offered on models that do not support it
  • Fixed model-not-found errors suggesting --model when running via the SDK or other hosts where the CLI flag doesn't apply
  • Renamed the dynamic-workflow trigger keyword from workflow to ultracode. The word "workflow" no longer triggers a run; asking for one in your own words still works. The trigger keyword is highlighted in violet in the prompt input
v2.1.1592026-05-31—
  • Internal infrastructure improvements (no user-facing changes)
v2.1.1582026-05-30—
  • Auto mode is now available on Bedrock, Vertex, and Foundry for Opus 4.7 and Opus 4.8. Opt in by setting CLAUDE_CODE_ENABLE_AUTO_MODE=1
v2.1.1572026-05-29/pluginNEW --agent <name>IMP --resumeFIX --worktreeFIX --worktree --tmuxFIX /modelFIX alt+vFIX /terminal-setupIMP /statusDEL /ideDEL alt+wIMP /configNEW
  • Plugins in .claude/skills directories are now automatically loaded, no marketplace required
  • Added claude plugin init <name> to scaffold a new plugin in .claude/skills
  • Added autocomplete for /plugin arguments: subcommands, installed plugin names, and plugins from known marketplaces
  • claude agents: the agent field in settings.json is now honored for dispatched sessions, with --agent <name> to override it
  • EnterWorktree can now switch between Claude-managed worktrees mid-session
  • tool_decision telemetry events now include tool_parameters (bash commands, MCP/skill names) when OTEL_LOG_TOOL_DETAILS=1
  • Worktrees managed by Claude are now left unlocked when the agent finishes, so git worktree remove/prune can clean them up
  • Fixed --resume not reporting background subagents that were running when the previous Claude Code process exited
  • Fixed the --resume session picker leaving its contents on the terminal after exiting in fullscreen mode
  • Fixed --worktree and --worktree --tmux returning to the canonical repo root instead of the current linked worktree
  • Fixed the /model picker showing an incorrect "Newer version available" hint when the selected model is already the newest in its family; the pinned-model row now shows the model's description instead of its raw ID
  • WSL: fixed image paste (alt+v keybinding), screenshot paste on Windows 11, and added support for dragging images from Windows Explorer
  • /terminal-setup now disables GPU acceleration in VS Code/Cursor/Windsurf integrated terminals to prevent garbled-text rendering
  • The Feature of the Week credit-claim status now appears as a notification in the status area instead of a line above the prompt
  • claude agents: slash-command autocomplete in the dispatch input now matches substrings
  • Removed the "bash commands will be sandboxed" startup banner — sandbox status still shows in /status and when a command is blocked
  • Removed the "/ide for …" startup hint toast
  • [IDE] Fixed clicking Stop while a background subagent is running not actually stopping it
  • Pressing backspace right after a workflow trigger keyword now dismisses the workflow request (same as alt+w) instead of deleting a character
  • Added a "Workflow keyword trigger" setting in /config to stop the word "workflow" in a prompt from triggering a dynamic workflow
v2.1.1562026-05-29—
  • Fixed an issue when using Opus 4.8 where thinking blocks were modified, leading to API errors.
v2.1.1542026-05-28/effortIMP /workflowsNEW /simplifyIMP /code-review --fixIMP /code-reviewIMP /logoutIMP /chrome /pluginIMP /remote-controlIMP /claude-apiNEW /fast onIMP /modelIMP /fastIMP /commandFIX ctrl+oFIX /mcpFIX
  • Opus 4.8 is here! Now defaults to high effort · /effort xhigh for your hardest tasks
  • Introducing dynamic workflows: ask Claude to create a workflow and it orchestrates work across tens to hundreds of agents in the background, so you can take on larger, more complex tasks. Run /workflows to view your runs
  • Fast mode on Opus 4.8 is now available at a fraction of its previous cost: 2x the standard rate for 2.5x the speed
  • The lean system prompt is now the default for all models except Haiku, Sonnet, and Opus 4.7 and earlier
  • Claude now reserves the multiple-choice question prompt for decisions it genuinely cannot make itself, instead of asking when it already has enough context to proceed
  • /simplify now runs a cleanup-only review (reuse, simplification, efficiency, altitude) and applies the fixes, instead of running the full /code-review --fix bug-hunting review
  • Renamed the /effort slider labels from "Speed"/"Intelligence" to "Faster"/"Smarter" for clarity
  • claude agents: type ! <command> to run a shell command as a background session you can attach to and detach from. Also available as claude --bg --exec '<command>'
  • claude agents: /logout now signs you out instead of being sent to a background session
  • ←← to open the agents view now works on Bedrock, Vertex, Foundry, and with telemetry disabled
  • Claude in Chrome: pick which connected browser to use via /chrome → "Select browser…", or in-chat when a browser action runs with multiple connected
  • Plugins can now declare defaultEnabled: false in plugin.json or a marketplace entry; enable them with /plugin or claude plugin enable. Dependencies of enabled plugins are still enabled automatically
  • The /plugin Discover tab now pins plugins whose relevance signals match the current directory with a "suggested for this directory" annotation
  • Streaming tool execution is now always enabled, including when telemetry is disabled or on Bedrock/Vertex/Foundry (previously behind a feature flag)
  • Stdio MCP server subprocesses now receive CLAUDE_CODE_SESSION_ID and CLAUDECODE=1 in their environment
  • claude mcp list/get now show unapproved .mcp.json servers as ⏸ Pending approval instead of auto-approving and connecting when output is piped
  • /remote-control autocomplete now shows "Disconnect Remote Control" when Remote Control is already active
  • Added Claude Opus 4.8 support and 4.7 → 4.8 migration guidance to the /claude-api skill
  • Deprecated CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE (will be removed on 06/01). To use fast mode on Opus 4.6, switch with /model claude-opus-4-6[1m] and then /fast on
  • Fixed background-session classifier losing the user's goal when a scheduled /command fires
  • Fixed a phantom expand/click affordance on colored tool output: short ANSI-colored lines that fit on screen no longer show a "ctrl+o to expand" hint
  • Fixed /mcp tools list and tool detail rendering when MCP servers have long or multi-line tool names or long descriptions
  • Fixed the /model picker not showing fast mode pricing on the Default option for API (pay-as-you-go) users when fast mode is on
v2.1.1532026-05-28/doctorNEW --strict-mcp-configIMP --bareFIX --agentsIMP /bgIMP /btwFIX /copyFIX /renameFIX /modelIMP
  • Added skipLfs option to github/git plugin marketplace sources to skip Git LFS downloads during clone and update
  • Claude Code now shows a one-time notice when your npm global install can't auto-update; /doctor lists the fixes
  • Status line commands now receive COLUMNS and LINES environment variables so scripts can size output to the terminal width
  • claude agents: autocomplete in the dispatch input now suggests native slash commands and bundled skills, not just project skills
  • claude agents: PR column now shows PR #N for a single PR or N PRs for multiple
  • claude doctor now shows the result of your last update attempt
  • Combined the separate "needs authentication" startup notifications for MCP servers and connectors into a single message
  • macOS: background agents now appear as "Claude Code" in Privacy & Security and keep their permission grants across upgrades
  • 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
  • --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
  • /bg while Claude is responding now continues the response in the background session instead of dropping it
  • Fixed /btw keyboard shortcuts becoming unresponsive in background sessions while a task is running
  • Fixed /copy and copy-on-select silently failing to update the system clipboard when attached to a background session inside tmux
  • Fixed /rename in background sessions not updating the session banner immediately
  • [VSCode] Fixed Claude Code processes not shutting down cleanly when VS Code closed on Windows, causing false "unclean exit" reports and orphaned MCP servers
  • /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.
v2.1.1522026-05-27/code-review --fixIMP /simplifyIMP /code-reviewIMP /reload-skillsNEW --fallback-modelNEW Ctrl+RNEW /usageIMP Ctrl+OIMP /doctorFIX --bareFIX
  • /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
  • Skills and slash commands can now set disallowed-tools in frontmatter to remove tools from the model while the skill is active
  • Added /reload-skills command to re-scan skill directories without restarting the session
  • SessionStart hooks can now return reloadSkills: true to re-scan skill directories, making skills installed by the hook available in the same session
  • SessionStart hooks can now set the session title via hookSpecificOutput.sessionTitle on startup and resume
  • Added a MessageDisplay hook event that lets hooks transform or hide assistant message text as it is displayed
  • Added pluginSuggestionMarketplaces managed setting: admins can allowlist org marketplaces whose plugins may be suggested via context-aware tips
  • claude plugin marketplace remove now accepts --scope user|project|local for symmetry with marketplace add, install, and uninstall
  • 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
  • Auto mode no longer requires opt-in consent
  • Vim mode: / in NORMAL mode now opens reverse history search (like Ctrl+R), matching bash/zsh vi-mode
  • The /usage breakdown now includes large session files; files are scanned with a streaming read so memory usage stays flat
  • 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)
  • 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
  • Fixed /doctor reporting "marketplace not found" or "plugin not found" for stale enabledPlugins entries referencing removed marketplaces or dropped plugins
  • Fixed the Agent tool description referencing an agent list that is never delivered when running with --bare or with attachments disabled
v2.1.1502026-05-23—
  • Internal infrastructure improvements (no user-facing changes)
v2.1.1492026-05-22/usageIMP /diffIMP /ultraplanFIX /doctorFIX /effortFIX Ctrl+OFIX /configFIX /insightsFIX /feedbackIMP
  • /usage now shows a per-category breakdown of what's driving your limits usage — skills, subagents, plugins, and per-MCP-server cost
  • /diff detail view can now be scrolled with the keyboard (arrows, j/k, PgUp/PgDn, Space, Home/End)
  • Markdown output now renders GFM task list checkboxes (- [ ] todo / - [x] done) instead of plain bullets
  • Enterprise: added the allowAllClaudeAiMcps managed setting to load claude.ai cloud MCP connectors alongside managed-mcp.json
  • Fixed /ultraplan and remote session creation failing with "Could not capture uncommitted changes" when the working tree has no real changes
  • Fixed otelHeadersHelper failing silently when the script path contains spaces; helper failures are now reported in /doctor and the debug log
  • Fixed the status bar showing the user's baseline /effort setting instead of the effort level applied by skill/agent effort: frontmatter
  • Fixed Ctrl+O transcript view freezing at the moment it was opened instead of tailing new messages
  • Fixed /config exit summary reporting phantom changes to auto-compact and theme when toggling unrelated settings
  • Fixed /insights crashing when cached session-meta files are missing optional fields
  • Improved /feedback reports to include the conversation that happened before context compaction, making issues from earlier in long sessions easier to triage
v2.1.1482026-05-22—
  • Fixed the Bash tool returning exit code 127 on every command for some users (a regression introduced in 2.1.147)
v2.1.1472026-05-21Ctrl+TIMP /simplifyIMP /code-reviewIMP /code-review highIMP --commentIMP /helpFIX /effortFIX /backgroundFIX /themeFIX /pluginFIX /statusFIX /mobileFIX /sandboxFIX /permissionsFIX
  • Pinned background sessions (Ctrl+T in claude agents) now stay alive when idle, are restarted in place to apply Claude Code updates, and are shed under memory pressure only after non-pinned sessions
  • Renamed /simplify to /code-review. It now reports correctness bugs at a chosen effort level (e.g., /code-review high); pass --comment to post findings as inline GitHub PR comments. The old cleanup-and-fix behavior has been removed
  • Prompt history no longer records consecutive duplicate entries — recalling a prompt with arrow-up and submitting it again won't add another copy
  • Fixed /help rendering a broken tab header and showing only one command per page on small terminals when not in fullscreen mode
  • Fixed /effort opening with the slider on the wrong level — it now starts at your current effort
  • Fixed /background refusing sessions whose only typed input was a skill or custom slash command
  • Fixed /theme "New custom theme" and color editor dialogs not responding to Esc
  • Fixed plugin component counts in claude plugin details and /plugin being doubled when a plugin's manifest listed paths overlapping its default directories
  • Fixed several spacing and layout glitches in the /plugin, /status, /mobile, /sandbox, and /permissions menus
v2.1.1452026-05-19--jsonNEW /pluginIMP alt+tIMP /reviewFIX
  • Added claude agents --json to list live Claude sessions as JSON for scripting (tmux-resurrect, status bars, session pickers)
  • Added agent_id and parent_agent_id attributes to claude_code.tool OTEL spans, and fixed trace parenting so background subagent spans nest under the dispatching Agent tool span
  • Status line JSON input now includes GitHub repo and PR information when detected
  • /plugin Discover and Browse screens now show a plugin's commands, agents, skills, hooks, and MCP/LSP servers before installation
  • claude agents terminal tab title now shows the awaiting-input count so an alt-tabbed window tells you when an agent needs attention
  • Slash command and @-mention suggestion list now supports mouse hover and click in fullscreen mode
  • Stop and SubagentStop hook input now includes background_tasks and session_crons fields
  • Fixed /review using a deprecated projectCards GraphQL query that errored on repos with Classic Projects
v2.1.1442026-05-19/resumeNEW --bgNEW /pluginIMP /modelIMP /extra-usageIMP /usage-creditsIMP Ctrl+LFIX /branchFIX Ctrl+OFIX /bgIMP /add-dirIMP Ctrl+RIMP /doctorIMP /feedbackIMP
  • Added /resume support for background sessions — sessions started via claude --bg or agent view now appear alongside interactive ones, marked with bg
  • Added elapsed duration to background subagent completion notifications (e.g. "Agent completed · 3h 2m 5s")
  • The /plugin browse and discover panes now show when a plugin was last updated
  • /model now changes the model for the current session only; press d in the model picker to set a default for new sessions
  • Renamed "extra usage" to "usage credits" across CLI copy; /extra-usage is now /usage-credits (old name still works)
  • Fixed garbled terminal output after a missed window-resize event (e.g. dragging a VS Code split-pane divider) — now self-heals on the next frame instead of requiring Ctrl+L
  • Reduced terminal rendering glitches in VS Code by reducing spinner animation color count
  • Fewer spurious tool errors during search: head/tail file views now satisfy the read-before-edit check, and a "no matches" result (exit code 1) from egrep, fgrep, git grep, or git diff is no longer reported as a command failure
  • Fixed /branch failing with "No conversation to branch" after entering a worktree or in some background sessions
  • Resumed sessions now keep the model they were using instead of picking up another session's /model choice
  • Fixed Bedrock and Vertex users unable to select "Opus (1M context)" from the /model picker (regression in v2.1.129)
  • Fixed scrolling in attached background sessions on Windows — PgUp/PgDn, mouse wheel, and Ctrl+O transcript navigation now work
  • /bg and ←-detach now preserve directories added via /add-dir
  • Fixed /resume picker not showing sessions forked from a background session
  • claude agents / --bg rejection messages now name the specific gate (non-TTY, env var, or setting) instead of a generic message
  • claude --bg --name <label> now echoes the name in the post-spawn confirmation
  • claude agents: renaming a background session with Ctrl+R now updates the attached session's banner immediately
  • Background session worktree isolation guard now applies for non-git VCS users with WorktreeCreate hooks configured
  • Plugin marketplace add/update now respects CLAUDE_CODE_PLUGIN_PREFER_HTTPS
  • /plugin now returns to the Installed list after enabling, disabling, or uninstalling a plugin
  • /doctor now shows an exec-form example when a command hook is missing the command field
  • Skill-listing truncation is no longer shown as a startup notification — run /doctor for the full breakdown
  • The post-survey follow-up hint now appears after every non-dismiss survey response with context-aware copy, making it easier to share more detail via /feedback.
v2.1.1432026-05-15/pluginNEW Shift+TIMP /loopFIX Ctrl+CFIX /goalFIX /bgIMP --agent <name>FIX --add-dirIMP --settingsIMP --mcp-configIMP --plugin-dirIMP --permission-mode --model --effort --dangerously-skip-permissions --strict-mcp-configIMP --fallback-modelIMP --allow-dangerously-skip-permissionsIMP
  • Added plugin dependency enforcement: claude plugin disable now refuses when another enabled plugin depends on the target (with a copy-pasteable disable-chain hint), and claude plugin enable force-enables transitive dependencies
  • Added projected context cost (per-turn and per-invocation token estimates) to the /plugin marketplace browse pane
  • Added worktree.bgIsolation: "none" setting to let background sessions edit the working copy directly without EnterWorktree, for repos where worktrees are impractical
  • PowerShell tool now passes -ExecutionPolicy Bypass. Opt out with CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1
  • Background sessions now preserve the model and effort level you set after waking from idle
  • Shift+Tab in attached agent sessions now includes auto mode in the cycle
  • Fixed Esc/Ctrl+C not cancelling a pending /loop wakeup while Claude is idle between iterations
  • Fixed /goal evaluator firing while background shells or delegated subagents are still running
  • Fixed /bg without a prompt sending "continue" to the forked session — the fork now waits for input
  • Fixed --agent <name> not finding plugin-contributed agents without the plugin: prefix
  • The PowerShell tool is now enabled by default on Windows for Bedrock, Vertex, and Foundry users. Opt out with CLAUDE_CODE_USE_POWERSHELL_TOOL=0.
  • claude agents now accepts --add-dir, --settings, --mcp-config, and --plugin-dir and applies them to the dashboard and to background sessions dispatched from it
  • claude agents accepts --permission-mode, --model, --effort, and --dangerously-skip-permissions to set defaults for sessions dispatched from the view
  • claude --bg --dangerously-skip-permissions now persists across retire→wake
  • Worktree cleanup no longer falls back to rm -rf when git worktree remove fails, preventing loss of gitignored or in-progress files
  • /bg now preserves --mcp-config, --settings, --add-dir, --plugin-dir, and --strict-mcp-config, so backgrounded sessions keep their MCP servers and settings across respawn.
  • Background sessions launched from claude agents now honor permissions.defaultMode from settings.json (was previously overridden to auto mode)
  • /bg and ←-detach now preserve --fallback-model, so backgrounded workers degrade to the fallback model on overload instead of hard-failing.
  • /bg and ←-detach now preserve --allow-dangerously-skip-permissions, so the forked worker keeps bypass-permissions available in its Shift+Tab cycle.
  • Fixed claude agents --allow-dangerously-skip-permissions defaulting dispatched sessions to bypass mode instead of making it available in the permission cycle
v2.1.1422026-05-14--add-dirNEW --settingsNEW --mcp-configNEW --plugin-dirNEW --permission-modeNEW --modelNEW --effortNEW --dangerously-skip-permissionsNEW /pluginIMP /web-setup Ctrl+CFIX /modelDEL /model claude-sonnet-4-20250514DEL
  • Added new claude agents flags: --add-dir, --settings, --mcp-config, --plugin-dir, --permission-mode, --model, --effort, and --dangerously-skip-permissions to configure dispatched background sessions
  • Fast mode now uses Opus 4.7 by default (previously Opus 4.6). Set CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1 to pin fast mode to Opus 4.6
  • Plugins with a root-level SKILL.md and no skills/ subdirectory are now surfaced as a skill
  • The /plugin details pane and claude plugin details now show LSP servers a plugin provides
  • /web-setup warns before replacing an existing GitHub App connection
  • Fixed claude agents deadlocking on Windows with network-drive working directories; Ctrl+C now works during startup
  • Fixed claude --bg --dangerously-skip-permissions not persisting across retire/wake
  • Fixed redundant set_model requests from remote clients injecting duplicate /model breadcrumbs into the transcript
  • Fixed /plugin browse pane showing "0 installs" for newly published plugins
  • Removed stale /model claude-sonnet-4-20250514 suggestion from Usage Policy refusal messages
v2.1.1412026-05-13--cwdNEW /feedbackIMP /bgIMP /doctorFIX /modelFIX Ctrl+CFIX ctrl+eFIX /tuiFIX /mcpFIX /loginFIX Alt+VFIX
  • Added terminalSequence field to hook JSON output so hooks can emit desktop notifications, window titles, and bells without a controlling terminal
  • Added CLAUDE_CODE_PLUGIN_PREFER_HTTPS to clone GitHub plugin sources over HTTPS instead of SSH, for environments without a GitHub SSH key
  • Added ANTHROPIC_WORKSPACE_ID environment variable for workload identity federation — scopes the minted token to a specific workspace when the federation rule covers more than one
  • Added claude agents --cwd <path> to scope the session list to a directory
  • /feedback can now include recent sessions (last 24 hours or 7 days) for issues spanning more than the current session
  • Rewind menu: added "Summarize up to here" to compress earlier context while keeping recent turns intact
  • Auto mode permission dialog now explains when a permissions.ask rule caused the prompt
  • Restored the "view diff in your IDE" option on file-edit permission prompts when an IDE is connected
  • Background agents launched via /bg or ←← now preserve the current permission mode instead of reverting to default
  • claude agents: agents that finish work but leave a background shell running now move to Completed instead of staying under Working
  • Fixed claude daemon status and /doctor on Windows throwing when the daemon pipe key file is locked or unreadable — now shows the underlying error instead of an opaque failure
  • Fixed /model in one session silently changing the autocompact threshold in other concurrent sessions
  • Fixed prompts cancelled with Ctrl+C/Esc before any response being dropped from Up-arrow history
  • Fixed Ctrl+C not interrupting a running turn while in vim INSERT/VISUAL mode
  • Fixed alternative chat:submit keybindings (e.g. meta+enter, ctrl+enter) not working when enter is rebound to chat:newline
  • Fixed /tui silently dropping running background shells and subagents — now refuses and asks to wait for them to finish
  • Fixed /mcp server list not keeping the focused server visible in short terminals in fullscreen mode
  • Fixed redaction in /feedback bundles producing invalid JSON for quoted values like session IDs
  • Fixed Remote Control automatically re-enrolling a trusted device when the server rejects a stale token, instead of looping through /login
  • Fixed Windows Alt+V image paste reporting "no image found" when the clipboard contains a screenshot
  • Bedrock: awsCredentialExport now always runs when configured instead of being skipped when ambient AWS credentials resolve, fixing auth for cross-account access
v2.1.1402026-05-12/goalFIX /loopFIX /doctorIMP /pluginIMP
  • Updated agent color palette
  • Fixed /goal silently hanging when disableAllHooks or allowManagedHooksOnly is set — now shows a clear message instead of an indicator that never resolves
  • Fixed /loop scheduling redundant wakeups to poll for background tasks that already notify on completion
  • Plugins now warn when a default component folder (e.g. commands/) is silently ignored because plugin.json sets the matching key. Shown in /doctor, claude plugin list, and /plugin.
v2.1.1392026-05-11/goalNEW /scroll-speedNEW /mcpIMP /context allIMP /contextIMP /pluginIMP /scheduleIMP /modelFIX --printFIX Ctrl+SNEW
  • Added agent view (Research Preview): a single list of every Claude Code session — running, blocked on you, or done. Run claude agents to get started. See https://code.claude.com/docs/en/agent-view
  • Added /goal command: set a completion condition and Claude keeps working across turns until it's met. Works in interactive, -p, and Remote Control. Shows live elapsed/turns/tokens as an overlay panel
  • Added /scroll-speed command to tune mouse wheel scroll speed with a live preview
  • Added claude plugin details <name> to show a plugin's component inventory and projected per-session token cost
  • Added transcript view navigation: ? for keyboard shortcuts, {/} to jump between user prompts, v to toggle shortcut panel
  • Added hook args: string[] field (exec form) that spawns the command directly without a shell, so path placeholders never need quoting
  • Added hook continueOnBlock config option for PostToolUse — set to true to feed the hook's rejection reason back to Claude and continue the turn
  • MCP stdio servers now receive CLAUDE_PROJECT_DIR in their environment, matching hooks. Plugin configs can reference ${CLAUDE_PROJECT_DIR} in commands
  • Compaction prompt now asks the model to preserve sensitive user instructions
  • /mcp Reconnect now picks up .mcp.json edits without a restart, and shows the HTTP status and URL when reconnecting fails
  • /context all per-skill token estimates now account for the model's tokenizer and show rounded values
  • claude plugin install <name>@<marketplace> now auto-refreshes the marketplace and retries before reporting a plugin as not found
  • /plugin installed-plugin details now show hook event names and MCP server names cleanly
  • /context now shows the providing plugin's name for plugin-sourced skills
  • Remote Control, /schedule, claude.ai MCP connectors, and notification preferences are now disabled when ANTHROPIC_API_KEY / apiKeyHelper / ANTHROPIC_AUTH_TOKEN is set, even if a Claude.ai login also exists. Unset the API key to use these features
  • Fixed /model picker "Default" row not reflecting ANTHROPIC_DEFAULT_OPUS_MODEL/ANTHROPIC_DEFAULT_SONNET_MODEL overrides
  • Fixed claude_code.active_time.total OpenTelemetry metric not being emitted in --print mode
  • [VSCode] Press Cmd/Ctrl+Shift+T to reopen the most recently closed session tab, configurable via claudeCode.enableReopenClosedSessionShortcut
v2.1.1382026-05-09—
  • Internal fixes
v2.1.1372026-05-09—
  • [VSCode] Fixed extension failing to activate on Windows
v2.1.1362026-05-08/clearFIX --resumeFIX --continueFIX Ctrl+BFIX Ctrl+GFIX /usageFIX /insightsFIX /resumeFIX /branchFIX /install-github-appFIX /desktopFIX /web-setupFIX /doctorFIX /myplugin reviewFIX /mypluginFIX /clear <name>FIX /release-notesFIX /mcpFIX /settingsFIX /terminal-setupFIX --worktreeIMP
  • Added CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL to re-enable the session quality survey for enterprises capturing responses through OpenTelemetry
  • Added settings.autoMode.hard_deny for auto mode classifier rules that block unconditionally regardless of user intent or allow exceptions
  • Fixed MCP servers configured in .mcp.json, plugins, and claude.ai connectors silently disappearing after /clear in the VS Code extension, JetBrains plugin, and Agent SDK
  • Fixed --resume / --continue not finding sessions when the project path contains underscores
  • WSL2: image paste from Windows clipboard now works via a PowerShell fallback when xclip/wl-paste cannot read image data
  • Fixed Backspace and Ctrl+Backspace getting swapped after using Ctrl+G to open an external editor on terminals with persistent extended-key modes
  • Fixed /usage weekly reset showing time of day instead of the calendar date
  • Fixed /insights crash when session history contains tool calls with malformed input fields
  • Fixed env vars from CLAUDE_ENV_FILE SessionStart hooks going stale after /resume or /clear
  • Fixed /branch saving a multi-line session title when given a pasted multi-line name
  • Fixed Esc not dismissing dialogs in /install-github-app, /desktop, /resume, and /web-setup
  • Fixed /doctor MCP schema errors not naming the missing field or showing the source file path
  • Fixed plugin slash commands with spaces (e.g. /myplugin review) not resolving to their namespaced form
  • Fixed /clear <name> not labeling the cleared session for /resume
  • Fixed /release-notes getting stuck on an old version after a failed changelog refresh
  • Fixed /mcp server list not scrolling when there are more servers than fit in the terminal
  • Fixed /settings language change being reverted on Escape after confirming
  • Fixed /terminal-setup only appearing in autocomplete on exact name match instead of partial prefixes
  • Improved error message when --worktree collides with an existing or stale worktree
v2.1.1332026-05-07--worktreeNEW --add-dirFIX /effortFIX --remote-controlIMP --remote-control-session-name-prefixIMP
  • Added worktree.baseRef setting (fresh | head) to choose whether --worktree, EnterWorktree, and agent-isolation worktrees branch from origin/<default> or local HEAD. Note: the default fresh changes EnterWorktree's base back to origin/<default> (it has been local HEAD since 2.1.128) — set worktree.baseRef: "head" to keep unpushed commits in new worktrees
  • Added sandbox.bwrapPath and sandbox.socatPath managed settings (Linux/WSL) to specify custom bubblewrap and socat binary locations
  • Added parentSettingsBehavior admin-tier key ('first-wins' | 'merge') to let admins opt SDK managedSettings (parent tier) into the policy merge
  • Hooks now receive the active effort level via the effort.level JSON input field and the $CLAUDE_EFFORT environment variable, and Bash tool commands can read $CLAUDE_EFFORT
  • Fixed Read/Write/Edit being denied on mapped network drives passed via --add-dir / SDK additionalDirectories
  • Fixed /effort in one session unexpectedly changing the effort level of other concurrent sessions, and a related issue where an IDE effort change could be silently dropped
  • claude --help now lists --remote-control alongside --remote-control-session-name-prefix
  • [VSCode] Fixed claudeCode.claudeProcessWrapper failing with "Unsupported platform" when the extension build doesn't bundle a Claude binary
v2.1.1322026-05-06Ctrl+VNEW --resumeFIX --permission-modeFIX Ctrl+ZFIX Ctrl+EFIX /usageFIX Ctrl+SFIX /terminal-setupFIX Shift+EFIX /effortFIX /statusFIX Alt+TFIX /mcpFIX /loginIMP /upgradeIMP /extra-usageIMP /tui fullscreenIMP /tuiIMP
  • Added CLAUDE_CODE_SESSION_ID environment variable to the Bash tool subprocess environment, matching the session_id passed to hooks
  • Added CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 env var to opt out of the fullscreen alternate-screen renderer and keep the conversation in the terminal's native scrollback
  • Added a "Pasting…" footer hint while a Ctrl+V image paste is being read from the clipboard
  • Fixed external SIGINT (e.g. IDE stop button, kill -INT) not running graceful shutdown — terminal modes are now restored and the --resume hint is printed instead of an abrupt exit
  • Fixed --resume failing with no low surrogate in string when a tool error truncation split an emoji; pre-corrupted sessions are sanitized on load
  • Fixed --permission-mode flag being ignored when resuming a plan-mode session with -p --continue/--resume, and plan mode not being re-applied after ExitPlanMode within the same session
  • Fixed fullscreen mode showing a blank screen after laptop sleep/wake or Ctrl+Z/fg until the next keystroke or stream output
  • Fixed cursor landing mid-grapheme on Ctrl+E/A/K/U/arrow keys when an Indic conjunct or ZWJ emoji wraps across lines
  • Fixed /usage Ctrl+S hanging when copying the stats screenshot to the clipboard on Linux/X11
  • Fixed /terminal-setup showing a contradictory error in Windows Terminal — Shift+Enter is natively supported there
  • Fixed /effort picker not reflecting the CLAUDE_CODE_EFFORT_LEVEL env var override
  • Fixed /status showing the wrong default model for some users
  • Fixed Alt+T (thinking toggle) not working on macOS terminals without "Option as Meta" enabled (iTerm2, Terminal.app defaults)
  • Fixed MCP servers that connect but fail tools/list silently showing 0 tools — they now retry once and show "connected · tools fetch failed" in /mcp
  • Improved visual consistency in slash command dialogs and /login, /upgrade, /extra-usage dialog spacing
  • Updated the /tui fullscreen startup banner to describe additional renderer benefits (lower memory usage, mouse support, auto-copy on select)
v2.1.1312026-05-06—
  • Fixed VS Code extension failing to activate on Windows due to a hardcoded build path in the bundled SDK (createRequire polyfill bug)
  • Fixed Mantle endpoint authentication failing with missing x-api-key header
v2.1.1292026-05-06--plugin-url <url>NEW --plugin-urlNEW /modelIMP Ctrl+RIMP Ctrl+SIMP /clearFIX /renameFIX Ctrl+GFIX /contextFIX /agentsFIX /branchFIX /resumeFIX /effortFIX --debugFIX
  • Added --plugin-url <url> flag to fetch a plugin .zip archive from a URL for the current session
  • Added CLAUDE_CODE_FORCE_SYNC_OUTPUT=1 env var to force-enable synchronized output on terminals that auto-detection misses (e.g. Emacs eat)
  • Added CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE: when set on Homebrew or WinGet installations, Claude Code runs the upgrade command in the background and prompts to restart
  • Plugin manifests: themes and monitors should now be declared under "experimental": { ... }. Top-level declarations still work but claude plugin validate will warn
  • Gateway /v1/models discovery for the /model picker is now opt-in via CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 (was automatic in 2.1.126–2.1.128)
  • Ctrl+R history picker now defaults to searching all prompts across all projects, matching pre-2.1.124 behavior. Press Ctrl+S to narrow to the current project or session
  • Third-party deployments (Bedrock, Vertex, Foundry, or ANTHROPIC_BASE_URL gateway) no longer see spinner tips pointing at first-party Anthropic surfaces
  • skillOverrides setting now works: off hides from model and /, user-invocable-only hides from model only, name-only collapses description
  • The claude_code.pull_request.count OTel metric now counts PRs/MRs created via MCP tools, not just shell commands
  • Policy refusal error messages now include the API Request ID for easier support debugging
  • Fixed /clear not resetting the terminal tab title after a conversation
  • Fixed session title chip from /rename disappearing while a permission or other dialog is active
  • Fixed external-editor handoff (Ctrl+G) blanking the conversation history above the prompt
  • Fixed /context dumping its rendered ASCII visualization grid into the conversation, wasting ~1.6k tokens per call
  • Fixed /agents Library list arrow-key navigation: the highlighted agent now stays visible when the list exceeds the viewport
  • Fixed /branch success message not including the new branch's session id for /resume
  • Fixed cache-miss warning appearing spuriously after /clear or compaction when changing /effort or /model
  • Fixed harmless WebSocket warning being logged as an error in --debug during voice mode
  • [VSCode] Fixed /clear not clearing the conversation context and displayed transcript
v2.1.1282026-05-04/colorIMP /mcpIMP --plugin-dirIMP --channelsIMP /modelIMP /compactIMP --debugIMP /exitFIX /pluginFIX /configFIX /fastFIX /renameFIX --resumeFIX --continueFIX /plugin updateFIX --output-format stream-jsonIMP
  • Bare /color (no args) now picks a random session color
  • /mcp now shows the tool count for connected servers and flags servers that connected with 0 tools
  • --plugin-dir now accepts .zip plugin archives in addition to directories
  • --channels now works with console (API key) authentication — console orgs with managed settings must set channelsEnabled: true to enable
  • Updated /model picker: collapsed duplicate Opus 4.7 entries, and current Opus now shows as "Opus" instead of "Opus 4.7"
  • Subprocesses (Bash, hooks, MCP, LSP) no longer inherit OTEL_* environment variables, so OTEL-instrumented apps run via the Bash tool no longer pick up the CLI's own OTLP endpoint
  • MCP: workspace is now a reserved server name — existing servers with that name will be skipped with a warning
  • Reconnecting MCP servers no longer flood the conversation with full tool-name lists on every reconnect — re-announced tools are summarized by server prefix
  • SDK hosts now receive a persistent localSettings suggestion for Bash permission prompts, so "Always allow" writes to .claude/settings.local.json
  • EnterWorktree now creates the new branch from local HEAD as documented, instead of origin/<default-branch> — unpushed commits are no longer dropped
  • Auto mode: when the classifier can't evaluate an action, the error now includes a hint (retry, /compact, or run with --debug)
  • Fixed stray "4;0;" desktop notification on every /exit in Kitty and other terminals that interpret OSC 9 as a notification
  • Fixed /plugin Components panel showing "Marketplace 'inline' not found" for plugins loaded via --plugin-dir
  • Fixed tab navigation in /config stranding focus — the tab header now stays focused so arrows and Esc keep working
  • Fixed /fast on 3P providers fuzzy-matching to an unrelated skill instead of showing "not available"
  • Fixed /rename without args failing on resumed sessions whose last entry is a compact boundary
  • Fixed stale "remote-control is active" status lines from prior sessions appearing after --resume/--continue
  • Fixed /plugin update never detecting new versions of npm-sourced plugins
  • Headless --output-format stream-json: init.plugin_errors now includes --plugin-dir load failures in addition to dependency demotions
v2.1.1262026-05-01/modelIMP --dry-runNEW --allNEW --yesNEW --interactiveNEW --dangerously-skip-permissionsIMP Ctrl+LFIX --channelsFIX /pluginFIX /remote-controlFIX --
  • The /model picker now lists models from your gateway's /v1/models endpoint when ANTHROPIC_BASE_URL points at an Anthropic-compatible gateway
  • Added claude project purge [path] to delete all Claude Code state for a project (transcripts, tasks, file history, config entry) — supports --dry-run, -y/--yes, -i/--interactive, and --all
  • --dangerously-skip-permissions now bypasses prompts for writes to .claude/, .git/, .vscode/, shell config files, and other previously-protected paths (catastrophic removal commands still prompt as a safety net)
  • claude auth login now accepts the OAuth code pasted into the terminal when the browser callback can't reach localhost (WSL2, SSH, containers)
  • claude_code.skill_activated OpenTelemetry event now fires for user-typed slash commands and carries a new invocation_trigger attribute ("user-slash", "claude-proactive", or "nested-skill")
  • Auto mode: the spinner now turns red when a permission check stalls, instead of looking like the tool is running
  • Host-managed deployments (CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST) no longer auto-disable analytics on Bedrock/Vertex/Foundry
  • Windows: PowerShell 7 installed via the Microsoft Store, MSI without PATH, or .NET global tool is now detected
  • Windows: when the PowerShell tool is enabled, Claude now treats PowerShell as the primary shell instead of defaulting to Bash
  • Read tool: removed the per-file malware-assessment reminder that could cause spurious refusals and "this is not malware" commentary on legacy models
  • Fixed Ctrl+L clearing the prompt input — it now only forces a screen redraw, matching readline behavior
  • Fixed plan-mode tools being unavailable in interactive sessions launched with --channels
  • Fixed /plugin Uninstall reporting "Enabled" instead of "Uninstalled"
  • Bounded total size of file-modified reminders when a linter touches many files at once
  • Fixed /remote-control retries appearing stuck on "connecting…" — each retry now shows its result
  • PowerShell tool: bare -- (e.g. git diff -- file) is no longer mis-flagged as the --% stop-parsing token
v2.1.1232026-04-29—
  • Fixed OAuth authentication failing with a 401 retry loop when CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 is set
v2.1.1222026-04-28/resumeIMP /mcpIMP /branchFIX /modelFIX
  • Added ANTHROPIC_BEDROCK_SERVICE_TIER environment variable to select a Bedrock service tier (default, flex, or priority), sent as the X-Amzn-Bedrock-Service-Tier header
  • Pasting a PR URL into the /resume search box now finds the session that created that PR (GitHub, GitHub Enterprise, GitLab, and Bitbucket)
  • /mcp now shows claude.ai connectors hidden by a manually-added server with the same URL, with a hint to remove the duplicate
  • Clarified the /mcp message shown when an MCP server is still unauthorized after the browser sign-in flow
  • OpenTelemetry: numeric attributes on api_request/api_error log events are now emitted as numbers, not strings
  • OpenTelemetry: added claude_code.at_mention log event for @-mention resolution
  • Fixed /branch producing forks that fail with "tool_use ids were found without tool_result blocks" when the source session contained entries from rewound timelines
  • Fixed /model not showing the Effort option for Bedrock application inference profile ARNs, and those ARNs not receiving output_config.effort
  • Voice mode: keybindings bound to Caps Lock now show an error since terminals don't deliver Caps Lock as a key event
v2.1.1212026-04-28--pruneNEW /skillsNEW --dangerously-skip-permissionsIMP /terminal-setupIMP /copyIMP ctrl+oIMP /contextIMP /usageFIX --resumeFIX Ctrl+LFIX /focusFIX
  • Added alwaysLoad option to MCP server config — when true, all tools from that server skip tool-search deferral and are always available
  • Added claude plugin prune to remove orphaned auto-installed plugin dependencies; plugin uninstall --prune cascades
  • Added a type-to-filter search box to /skills so you can find a skill in long lists without scrolling
  • PostToolUse hooks can now replace tool output for all tools via hookSpecificOutput.updatedToolOutput (previously MCP-only)
  • Fullscreen mode: typing into the prompt no longer jumps scroll back to the bottom after you've scrolled up to read earlier output
  • Dialogs that overflow the terminal are now scrollable with arrow keys, PgUp/PgDn, home/end, and mouse wheel in both fullscreen and non-fullscreen modes
  • Clicking any line of a long URL that wraps across rows in fullscreen mode now opens the full URL
  • SDK and claude -p: CLAUDE_CODE_FORK_SUBAGENT=1 now works in non-interactive sessions
  • --dangerously-skip-permissions no longer prompts for writes to .claude/skills/, .claude/agents/, and .claude/commands/
  • /terminal-setup now enables iTerm2's "Applications in terminal may access clipboard" setting so /copy works, including from tmux
  • MCP servers that hit a transient error during startup now auto-retry up to 3 times instead of staying disconnected
  • The terminal tab session title is now generated in your configured language setting
  • LSP diagnostic summaries now expand on click/ctrl+o and show the expand hint
  • [VSCode] /context now opens a native token usage dialog
  • Fixed /usage leaking up to ~2GB of memory on machines with large transcript histories
  • Fixed --resume crashing on startup in external builds
  • Fixed --resume failing on large sessions when a transcript line was corrupted by an unclean shutdown — the corrupt line is now skipped
  • Fixed scrollback duplication when pressing Ctrl+L or triggering a redraw in non-fullscreen mode on tmux, GNOME Terminal, Windows Terminal, and Konsole
  • Fixed /usage returning "rate limited" after a stale OAuth token — now refreshes automatically
  • Fixed /usage dialog content being clipped when no-flicker mode is off
  • Fixed /focus showing "Unknown command" when the fullscreen renderer is off — now explains how to enable it
v2.1.120—/ultrareviewNEW --jsonNEW /rewindFIX /pluginFIX /usageIMP
  • Windows: Git for Windows (Git Bash) is no longer required — when absent, Claude Code uses PowerShell as the shell tool
  • Added claude ultrareview [target] subcommand to run /ultrareview non-interactively from CI or scripts — prints findings to stdout (--json for raw output) and exits 0 on completion or 1 on failure
  • Skills can now reference the current effort level with ${CLAUDE_EFFORT} in their content
  • Set AI_AGENT environment variable for subprocesses so gh can attribute traffic to Claude Code
  • Spinner tips that recommend installing the desktop app or creating skills/agents are now hidden when you already have them
  • Show a "use PgUp/PgDn to scroll" hint when the terminal sends arrow keys instead of scroll events
  • Faster session start when you have many claude.ai connectors configured but not authorized
  • The auto mode denial message now links to the configuration docs
  • claude plugin validate now accepts $schema, version, and description at the top level of marketplace.json and $schema in plugin.json
  • Fixed /rewind and other interactive overlays not responding to keyboard input after launching with claude --resume
  • Fixed /plugin marketplace failing to load when one entry uses an unrecognized source format — that entry is shown but installing it prompts you to update
  • [VSCode] /usage now opens the native Account & Usage dialog instead of returning plain-text session cost
v2.1.1192026-04-23/configIMP --from-prIMP --printIMP --agent <name>IMP --client-secretFIX /skillsFIX /agentsFIX /exportFIX /usageFIX /planFIX /plan openFIX /reload-pluginsFIX /doctorFIX /statusFIX
  • /config settings (theme, editor mode, verbose, etc.) now persist to ~/.claude/settings.json and participate in project/local/policy override precedence
  • Added prUrlTemplate setting to point the footer PR badge at a custom code-review URL instead of github.com
  • Added CLAUDE_CODE_HIDE_CWD environment variable to hide the working directory in the startup logo
  • --from-pr now accepts GitLab merge-request, Bitbucket pull-request, and GitHub Enterprise PR URLs
  • --print mode now honors the agent's tools: and disallowedTools: frontmatter, matching interactive-mode behavior
  • --agent <name> now honors the agent definition's permissionMode for built-in agents
  • PowerShell tool commands can now be auto-approved in permission mode, matching Bash behavior
  • Hooks: PostToolUse and PostToolUseFailure hook inputs now include duration_ms (tool execution time, excluding permission prompts and PreToolUse hooks)
  • Subagent and SDK MCP server reconfiguration now connects servers in parallel instead of serially
  • Plugins pinned by another plugin's version constraint now auto-update to the highest satisfying git tag
  • Vim mode: Esc in INSERT no longer pulls a queued message back into the input; press Esc again to interrupt
  • Slash command suggestions now highlight the characters that matched your query
  • Fixed MCP OAuth client secret stored via --client-secret not being sent during token exchange for servers requiring client_secret_post
  • Fixed /skills Enter key closing the dialog instead of pre-filling /<skill-name> in the prompt
  • Fixed /agents detail view mislabeling built-in tools unavailable to subagents as "Unrecognized"
  • Fixed /export showing the current default model instead of the model the conversation actually used
  • Fixed /usage progress bars overlapping with their "Resets …" labels
  • Fixed /plan and /plan open not acting on the existing plan when entering plan mode
  • Fixed /reload-plugins and /doctor reporting load errors for disabled plugins
  • Fixed disabled MCP servers appearing as "failed" in /status
  • Fixed /doctor warning about MCP server entries overridden by a higher-precedence scope
v2.1.1182026-04-23/cost /stats /usage /theme --continueIMP --resumeIMP /add-dirIMP /colorIMP /modelIMP /doctorIMP /pluginIMP /mcpFIX /loginFIX --dangerously-skip-permissionsFIX /forkFIX Alt+KFIX Alt+XFIX
  • Added vim visual mode (v) and visual-line mode (V) with selection, operators, and visual feedback
  • Merged /cost and /stats into /usage — both remain as typing shortcuts that open the relevant tab
  • Create and switch between named custom themes from /theme, or hand-edit JSON files in ~/.claude/themes/; plugins can also ship themes via a themes/ directory
  • Hooks can now invoke MCP tools directly via type: "mcp_tool"
  • Added DISABLE_UPDATES env var to completely block all update paths including manual claude update — stricter than DISABLE_AUTOUPDATER
  • WSL on Windows can now inherit Windows-side managed settings via the wslInheritsWindowsSettings policy key
  • Auto mode: include "$defaults" in autoMode.allow, autoMode.soft_deny, or autoMode.environment to add custom rules alongside the built-in list instead of replacing it
  • Added a "Don't ask again" option to the auto mode opt-in prompt
  • Added claude plugin tag to create release git tags for plugins with version validation
  • --continue/--resume now find sessions that added the current directory via /add-dir
  • /color now syncs the session accent color to claude.ai/code when Remote Control is connected
  • The /model picker now honors ANTHROPIC_DEFAULT_*_MODEL_NAME/_DESCRIPTION overrides when using a custom ANTHROPIC_BASE_URL gateway
  • When auto-update skips a plugin due to another plugin's version constraint, the skip now appears in /doctor and the /plugin Errors tab
  • Fixed /mcp menu hiding OAuth Authenticate/Re-authenticate actions for servers configured with headersHelper, and HTTP/SSE MCP servers with custom headers being stuck in "needs authentication" after a transient 401
  • Fixed macOS keychain race where a concurrent MCP token refresh could overwrite a freshly-refreshed OAuth token, causing unexpected "Please run /login" prompts
  • Fixed /login having no effect in a session launched with CLAUDE_CODE_OAUTH_TOKEN — the env token is now cleared so disk credentials take effect
  • Fixed unreadable text in the "new messages" scroll pill and /plugin badges
  • Fixed plan acceptance dialog offering "auto mode" instead of "bypass permissions" when running with --dangerously-skip-permissions
  • Fixed /fork writing the full parent conversation to disk per fork — now writes a pointer and hydrates on read
  • Fixed Alt+K / Alt+X / Alt+^ / Alt+_ freezing keyboard input
v2.1.1172026-04-22--agentIMP /modelIMP /resumeIMP --resumeIMP /compactIMP /loginFIX /contextFIX
  • Forked subagents can now be enabled on external builds by setting CLAUDE_CODE_FORK_SUBAGENT=1
  • Agent frontmatter mcpServers are now loaded for main-thread agent sessions via --agent
  • Improved /model: selections now persist across restarts even when the project pins a different model, and the startup header shows when the active model comes from a project or managed-settings pin
  • The /resume command now offers to summarize stale, large sessions before re-reading them, matching the existing --resume behavior
  • Faster startup when both local and claude.ai MCP servers are configured (concurrent connect now default)
  • plugin install on an already-installed plugin now installs any missing dependencies instead of stopping at "already installed"
  • Plugin dependency errors now say "not installed" with an install hint, and claude plugin marketplace add now auto-resolves missing dependencies from configured marketplaces
  • Managed-settings blockedMarketplaces and strictKnownMarketplaces are now enforced on plugin install, update, refresh, and autoupdate
  • Advisor Tool (experimental): dialog now carries an "experimental" label, learn-more link, and startup notification when enabled; sessions no longer get stuck with "Advisor tool result content could not be processed" errors on every prompt and /compact
  • The cleanupPeriodDays retention sweep now also covers ~/.claude/tasks/, ~/.claude/shell-snapshots/, and ~/.claude/backups/
  • OpenTelemetry: user_prompt events now include command_name and command_source for slash commands; cost.usage, token.usage, api_request, and api_error now include an effort attribute when the model supports effort levels. Custom/MCP command names are redacted unless OTEL_LOG_TOOL_DETAILS=1 is set
  • Native builds on macOS and Linux: the Glob and Grep tools are replaced by embedded bfs and ugrep available through the Bash tool — faster searches without a separate tool round-trip (Windows and npm-installed builds unchanged)
  • Fixed Plain-CLI OAuth sessions dying with "Please run /login" when the access token expires mid-session — the token is now refreshed reactively on 401
  • Fixed /login having no effect when launched with CLAUDE_CODE_OAUTH_TOKEN env var and that token expires
  • Fixed Opus 4.7 sessions showing inflated /context percentages and autocompacting too early — Claude Code was computing against a 200K context window instead of Opus 4.7's native 1M
v2.1.1162026-04-20/resumeFIX /terminal-setupIMP /configIMP /doctorIMP /reload-pluginsIMP --agentIMP /storageNEW Ctrl+ZFIX /branchFIX /pluginFIX /updateFIX /tuiFIX
  • /resume on large sessions is significantly faster (up to 67% on 40MB+ sessions) and handles sessions with many dead-fork entries more efficiently
  • Faster MCP startup when multiple stdio servers are configured; resources/templates/list is now deferred to first @-mention
  • Smoother fullscreen scrolling in VS Code, Cursor, and Windsurf terminals — /terminal-setup now configures the editor's scroll sensitivity
  • Thinking spinner now shows progress inline ("still thinking", "thinking more", "almost done thinking"), replacing the separate hint row
  • /config search now matches option values (e.g. searching "vim" finds the Editor mode setting)
  • /doctor can now be opened while Claude is responding, without waiting for the current turn to finish
  • /reload-plugins and background plugin auto-update now auto-install missing plugin dependencies from marketplaces you've already added
  • Bash tool now surfaces a hint when gh commands hit GitHub's API rate limit, so agents can back off instead of retrying
  • The Usage tab in Settings now shows your 5-hour and weekly usage immediately and no longer fails when the usage endpoint is rate-limited
  • Agent frontmatter hooks: now fire when running as a main-thread agent via --agent
  • Slash command menu now shows "No commands match" when your filter has zero results, instead of disappearing
  • Claude Code and installer now use https://downloads.claude.ai/claude-code-releases instead of https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases
  • Fixed Ctrl+Z hanging the terminal when Claude Code is launched via a wrapper process (e.g. npx, bun run)
  • Fixed /branch rejecting conversations with transcripts larger than 50MB
  • Fixed /resume silently showing an empty conversation on large session files instead of reporting the load error
  • Fixed /plugin Installed tab showing the same item twice when it appears under Needs attention or Favorites
  • Fixed /update and /tui not working after entering a worktree mid-session
v2.1.1142026-04-18—
  • Fixed a crash in the permission dialog when an agent teams teammate requested tool permission
v2.1.1132026-04-17Ctrl+AIMP Ctrl+EIMP Ctrl+BIMP /loopIMP /extra-usageIMP /ultrareviewIMP /privateIMP Ctrl+UFIX /copyFIX /effort autoFIX /effortFIX /insightsFIX
  • Added sandbox.network.deniedDomains setting to block specific domains even when a broader allowedDomains wildcard would otherwise permit them
  • Fullscreen mode: Shift+↑/↓ now scrolls the viewport when extending a selection past the visible edge
  • Ctrl+A and Ctrl+E now move to the start/end of the current logical line in multiline input, matching readline behavior
  • Windows: Ctrl+Backspace now deletes the previous word
  • Long URLs in responses and bash output stay clickable when they wrap across lines (in terminals with OSC 8 hyperlinks)
  • Improved /loop: pressing Esc now cancels pending wakeups, and wakeups display as "Claude resuming /loop wakeup" for clarity
  • /extra-usage now works from Remote Control (mobile/web) clients
  • Remote Control clients can now query @-file autocomplete suggestions
  • Improved /ultrareview: faster launch with parallelized checks, diffstat in the launch dialog, and animated launching state
  • Subagents that stall mid-stream now fail with a clear error after 10 minutes instead of hanging silently
  • Bash tool: multi-line commands whose first line is a comment now show the full command in the transcript, closing a UI-spoofing vector
  • Running cd <current-directory> && git … no longer triggers a permission prompt when the cd is a no-op
  • Security: on macOS, /private/{etc,var,tmp,home} paths are now treated as dangerous removal targets under Bash(rm:*) allow rules
  • Fixed Cmd-backspace / Ctrl+U to once again delete from the cursor to the start of the line
  • Fixed /copy "Full response" not aligning markdown table columns for pasting into GitHub, Notion, or Slack
  • Fixed /effort auto confirmation — now says "Effort level set to max" to match the status bar label
  • Fixed /insights crashing with EBUSY on Windows
v2.1.1122026-04-16—
  • Fixed "claude-opus-4-7 is temporarily unavailable" for auto mode
v2.1.1112026-04-16/effortNEW --effortNEW /themeNEW /less-permission-promptsNEW /ultrareviewNEW --enable-auto-mode /setup-vertexIMP /setup-bedrockIMP /skillsIMP Ctrl+UIMP Ctrl+YIMP Ctrl+LIMP --output-format stream-jsonIMP /resumeFIX /contextFIX /clearFIX /renameFIX /commitFIX
  • Claude Opus 4.7 xhigh is now available! Use /effort to tune speed vs. intelligence
  • Auto mode is now available for Max subscribers when using Opus 4.7
  • Added xhigh effort level for Opus 4.7, sitting between high and max. Available via /effort, --effort, and the model picker; other models fall back to high
  • /effort now opens an interactive slider when called without arguments, with arrow-key navigation between levels and Enter to confirm
  • Added "Auto (match terminal)" theme option that matches your terminal's dark/light mode — select it from /theme
  • Added /less-permission-prompts skill — scans transcripts for common read-only Bash and MCP tool calls and proposes a prioritized allowlist for .claude/settings.json
  • Added /ultrareview for running comprehensive code review in the cloud using parallel multi-agent analysis and critique — invoke with no arguments to review your current branch, or /ultrareview <PR#> to fetch and review a specific GitHub PR
  • Auto mode no longer requires --enable-auto-mode
  • Windows: PowerShell tool is progressively rolling out. Opt in or out with CLAUDE_CODE_USE_POWERSHELL_TOOL. On Linux and macOS, enable with CLAUDE_CODE_USE_POWERSHELL_TOOL=1 (requires pwsh on PATH)
  • Read-only bash commands with glob patterns (e.g. ls *.ts) and commands starting with cd <project-dir> && no longer trigger a permission prompt
  • Suggest the closest matching subcommand when claude <word> is invoked with a near-miss typo (e.g. claude udpate → "Did you mean claude update?")
  • Plan files are now named after your prompt (e.g. fix-auth-race-snug-otter.md) instead of purely random words
  • Improved /setup-vertex and /setup-bedrock to show the actual settings.json path when CLAUDE_CONFIG_DIR is set, seed model candidates from existing pins on re-run, and offer a "with 1M context" option for supported models
  • /skills menu now supports sorting by estimated token count — press t to toggle
  • Ctrl+U now clears the entire input buffer (previously: delete to start of line); press Ctrl+Y to restore
  • Ctrl+L now forces a full screen redraw in addition to clearing the prompt input
  • Transcript view footer now shows [ (dump to scrollback) and v (open in editor) shortcuts
  • The "+N lines" marker for truncated long pastes is now a full-width rule for easier scanning
  • Headless --output-format stream-json now includes plugin_errors on the init event when plugins are demoted for unsatisfied dependencies
  • Added OTEL_LOG_RAW_API_BODIES environment variable to emit full API request and response bodies as OpenTelemetry log events for debugging
  • Fixed tab-completing /resume immediately resuming an arbitrary titled session instead of showing the session picker
  • Fixed /context grid rendering with extra blank lines between rows
  • Fixed /clear dropping the session name set by /rename, causing statusline output to lose session_name
  • Fixed Claude calling a non-existent commit skill and showing "Unknown skill: commit" for users without a custom /commit command
v2.1.1102026-04-15/tuiNEW /tui fullscreenNEW /focusIMP Ctrl+OIMP /configNEW Ctrl+GNEW /pluginIMP /doctorIMP --resumeIMP --continueIMP /contextIMP /exitIMP /reload-pluginsIMP /renameFIX /skillsFIX
  • Added /tui command and tui setting — run /tui fullscreen to switch to flicker-free rendering in the same conversation
  • Added push notification tool — Claude can send mobile push notifications when Remote Control and "Push when Claude decides" config are enabled
  • Changed Ctrl+O to toggle between normal and verbose transcript only; focus view is now toggled separately with the new /focus command
  • Added autoScrollEnabled config to disable conversation auto-scroll in fullscreen mode
  • Added option to show Claude's last response as commented context in the Ctrl+G external editor (enable via /config)
  • Improved /plugin Installed tab — items needing attention and favorites appear at the top, disabled items are hidden behind a fold, and f favorites the selected item
  • Improved /doctor to warn when an MCP server is defined in multiple config scopes with different endpoints
  • --resume/--continue now resurrects unexpired scheduled tasks
  • /context, /exit, and /reload-plugins now work from Remote Control (mobile/web) clients
  • Write tool now informs the model when you edit the proposed content in the IDE diff before accepting
  • Bash tool now enforces the documented maximum timeout instead of accepting arbitrarily large values
  • SDK/headless sessions now read TRACEPARENT/TRACESTATE from the environment for distributed trace linking
  • Session recap is now enabled for users with telemetry disabled (Bedrock, Vertex, Foundry, DISABLE_TELEMETRY). Opt out via /config or CLAUDE_CODE_ENABLE_AWAY_SUMMARY=0.
  • Fixed plugin install not honoring dependencies declared in plugin.json when the marketplace entry omits them; /plugin install now lists auto-installed dependencies
  • Fixed --resume sometimes showing the first prompt instead of the /rename name for sessions still running or exited uncleanly
  • Fixed dropped keystrokes after the CLI relaunches (e.g. /tui, provider setup wizards)
  • Hardened "Open in editor" actions against command injection from untrusted filenames
  • Fixed /skills menu not scrolling when the list overflows the modal in fullscreen mode
v2.1.1092026-04-15—
  • Improved the extended-thinking indicator with a rotating progress hint
v2.1.1082026-04-14/configNEW /recapNEW /initIMP /reviewIMP /security-reviewIMP /undoIMP /rewindIMP /modelIMP /resumeIMP Ctrl+AIMP Ctrl+ONEW /loginFIX /renameFIX --teleportFIX /feedbackFIX --resume <id>FIX --resumeFIX
  • Added ENABLE_PROMPT_CACHING_1H env var to opt into 1-hour prompt cache TTL on API key, Bedrock, Vertex, and Foundry (ENABLE_PROMPT_CACHING_1H_BEDROCK is deprecated but still honored), and FORCE_PROMPT_CACHING_5M to force 5-minute TTL
  • Added recap feature to provide context when returning to a session, configurable in /config and manually invocable with /recap; force with CLAUDE_CODE_ENABLE_AWAY_SUMMARY if telemetry disabled.
  • The model can now discover and invoke built-in slash commands like /init, /review, and /security-review via the Skill tool
  • /undo is now an alias for /rewind
  • Improved /model to warn before switching models mid-conversation, since the next response re-reads the full history uncached
  • Improved /resume picker to default to sessions from the current directory; press Ctrl+A to show all projects
  • Reduced memory footprint for file reads, edits, and syntax highlighting by loading language grammars on demand
  • Added "verbose" indicator when viewing the detailed transcript (Ctrl+O)
  • Added a warning at startup when prompt caching is disabled via DISABLE_PROMPT_CACHING* environment variables
  • Fixed paste not working in the /login code prompt (regression in 2.1.105)
  • Fixed claude --resume <session-id> losing the session's custom name and color set via /rename
  • Fixed terminal escape codes appearing as garbage text in the prompt input after --teleport
  • Fixed /feedback retry: pressing Enter to resubmit after a failure now works without first editing the description
  • Fixed --teleport and --resume <id> precondition errors (e.g. dirty git tree, session not found) exiting silently instead of showing the error message
  • Fixed --resume truncating sessions when the transcript contained a self-referencing message
v2.1.1072026-04-14—
  • Show thinking hints sooner during long operations
v2.1.1052026-04-13/proactiveIMP /loopIMP /doctorIMP /configIMP alt+eFIX Ctrl+JFIX /resumeFIX --worktreeFIX /branchFIX /modelFIX /helpFIX
  • Added path parameter to the EnterWorktree tool to switch into an existing worktree of the current repository
  • Added PreCompact hook support: hooks can now block compaction by exiting with code 2 or returning {"decision":"block"}
  • Added background monitor support for plugins via a top-level monitors manifest key that auto-arms at session start or on skill invoke
  • /proactive is now an alias for /loop
  • Improved /doctor layout with status icons; press f to have Claude fix reported issues
  • Improved /config labels and descriptions for clarity
  • Fixed alt+enter not inserting a newline in terminals using ESC-prefix alt encoding, and Ctrl+J not inserting a newline (regression in 2.1.100)
  • Fixed "Resume this session with..." hint not printing on exit after /resume, --worktree, or /branch
  • Fixed /model picker on AWS Bedrock in non-US regions persisting invalid us.* model IDs to settings.json when inference profile discovery is still in-flight
  • Fixed /help dropping the tab bar, Shortcuts heading, and footer at short terminal heights
v2.1.1012026-04-10/team-onboardingNEW /ultraplanIMP /renameIMP --nameIMP /pluginIMP --resumeFIX --continueFIX --setting-sourcesFIX /resumeFIX /btwFIX /contextFIX /plugin updateFIX /mcpFIX /loginFIX /add-dir --rememberFIX /configFIX /add-dirFIX /remote-controlFIX /insightsFIX
  • Added /team-onboarding command to generate a teammate ramp-up guide from your local Claude Code usage
  • Added OS CA certificate store trust by default, so enterprise TLS proxies work without extra setup (set CLAUDE_CODE_CERT_STORE=bundled to use only bundled CAs)
  • /ultraplan and other remote-session features now auto-create a default cloud environment instead of requiring web setup first
  • Improved claude -p --resume <name> to accept session titles set via /rename or --name
  • Improved /plugin and claude plugin update to show a warning when the marketplace could not be refreshed, instead of silently reporting a stale version
  • Fixed --resume/--continue losing conversation context on large sessions when the loader anchored on a dead-end branch instead of the live conversation
  • Fixed --resume chain recovery bridging into an unrelated subagent conversation when a subagent message landed near a main-chain write gap
  • Fixed a crash on --resume when a persisted Edit/Write tool result was missing its file_path
  • Fixed --setting-sources without user causing background cleanup to ignore cleanupPeriodDays and delete conversation history older than 30 days
  • Fixed several /resume picker issues: narrow default view hiding sessions from other projects, unreachable preview on Windows Terminal, incorrect cwd in worktrees, session-not-found errors not surfacing in stderr, terminal title not being set, and resume hint overlapping the prompt input
  • Fixed /btw writing a copy of the entire conversation to disk on every use
  • Fixed /context Free space and Messages breakdown disagreeing with the header percentage
  • Fixed several plugin issues: slash commands resolving to the wrong plugin with duplicate name: frontmatter, /plugin update failing with ENAMETOOLONG, Discover showing already-installed plugins, directory-source plugins loading from a stale version cache, and skills not honoring context: fork and agent frontmatter fields
  • Fixed the /mcp menu offering OAuth-specific actions for MCP servers configured with headersHelper; Reconnect is now offered instead to re-invoke the helper script
  • Fixed /login OAuth URL rendering with padding that prevented clean mouse selection
  • Fixed in-app settings writes (e.g. /add-dir --remember, /config) not refreshing the in-memory snapshot, preventing removed directories from being revoked mid-session
  • Fixed claude --continue -p not correctly continuing sessions created by -p or the SDK
  • Fixed several Remote Control issues: worktrees removed on session crash, connection failures not persisting in the transcript, spurious "Disconnected" indicator in brief mode for local sessions, and /remote-control failing over SSH when only CLAUDE_CODE_ORGANIZATION_UUID is set
  • Fixed /insights sometimes omitting the report file link from its response
  • [VSCode] Fixed the file attachment below the chat input not clearing when the last editor tab is closed
v2.1.982026-04-09--exclude-dynamic-system-prompt-sectionsNEW --dangerously-skip-permissionsFIX --add-dirFIX --resumeFIX /resumeIMP --resume <name>FIX /exportFIX /effort maxFIX /effortFIX /agentsIMP /reload-pluginsIMP --debugIMP /claude-apiIMP /compact
  • Added interactive Google Vertex AI setup wizard accessible from the login screen when selecting "3rd-party platform", guiding you through GCP authentication, project and region configuration, credential verification, and model pinning
  • Added CLAUDE_CODE_PERFORCE_MODE env var: when set, Edit/Write/NotebookEdit fail on read-only files with a p4 edit hint instead of silently overwriting them
  • Added Monitor tool for streaming events from background scripts
  • Added subprocess sandboxing with PID namespace isolation on Linux when CLAUDE_CODE_SUBPROCESS_ENV_SCRUB is set, and CLAUDE_CODE_SCRIPT_CAPS env var to limit per-session script invocations
  • Added --exclude-dynamic-system-prompt-sections flag to print mode for improved cross-user prompt caching
  • Added workspace.git_worktree to the status line JSON input, set whenever the current directory is inside a linked git worktree
  • Added W3C TRACEPARENT env var to Bash tool subprocesses when OTEL tracing is enabled, so child-process spans correctly parent to Claude Code's trace tree
  • LSP: Claude Code now identifies itself to language servers via clientInfo in the initialize request
  • Fixed --dangerously-skip-permissions being silently downgraded to accept-edits mode after approving a write to a protected path via Bash
  • Fixed removing a directory from additionalDirectories revoking access to the same directory passed via --add-dir
  • Fixed agent team members not inheriting the leader's permission mode when using --dangerously-skip-permissions
  • Fixed file-edit diffs disappearing from the UI on --resume when the edited file was larger than 10KB
  • Fixed several /resume picker issues: --resume <name> opening uneditable, filter reload wiping search state, empty list swallowing arrow keys, cross-project staleness, and transient task-status text replacing conversation summaries
  • Fixed /export not honoring absolute paths and ~, and silently rewriting user-supplied extensions to .txt
  • Fixed /effort max being denied for unknown or future model IDs
  • Improved /resume filter hint labels and added project/worktree/branch names in the filter indicator
  • Improved /agents with a tabbed layout: a Running tab shows live subagents, and the Library tab adds Run agent and View running instance actions
  • Improved /reload-plugins to pick up plugin-provided skills without requiring a restart
  • Improved hook errors in the transcript to include the first line of stderr for self-diagnosis without --debug
  • Updated the /claude-api skill to cover Managed Agents alongside Claude API
  • [VSCode] Fixed false-positive "requires git-bash" error on Windows when CLAUDE_CODE_GIT_BASH_PATH is set or Git is installed at a default location
  • Dropped /compact hints when DISABLE_COMPACT is set.
v2.1.972026-04-08Ctrl+ONEW /agentsNEW --dangerously-skip-permissionsFIX --add-dirFIX /resumeFIX --resume <name>FIX Ctrl+AFIX --resumeFIX Shift+EFIX /claude-apiIMP
  • Added focus view toggle (Ctrl+O) in NO_FLICKER mode showing prompt, one-line tool summary with edit diffstats, and final response
  • Added refreshInterval status line setting to re-run the status line command every N seconds
  • Added workspace.git_worktree to the status line JSON input, set when the current directory is inside a linked git worktree
  • Added ● N running indicator in /agents next to agent types with live subagent instances
  • Added syntax highlighting for Cedar policy files (.cedar, .cedarpolicy)
  • Fixed --dangerously-skip-permissions being silently downgraded to accept-edits mode after approving a write to a protected path
  • Fixed removing a directory from settings.permissions.additionalDirectories revoking access to the same directory passed via --add-dir
  • Fixed several /resume picker issues: --resume <name> opening uneditable, Ctrl+A reload wiping search, empty list swallowing navigation, task-status text replacing conversation summary, and cross-project staleness
  • Fixed file-edit diffs disappearing on --resume when the edited file was larger than 10KB
  • Fixed --resume cache misses and lost mid-turn input from attachment messages not being saved to the transcript
  • Fixed Shift+Enter and Alt/Cmd+arrow shortcuts not working in Warp with NO_FLICKER mode
  • Updated /claude-api skill to cover Managed Agents alongside the Claude API
v2.1.962026-04-08—
  • Fixed Bedrock requests failing with 403 "Authorization header is missing" when using AWS_BEARER_TOKEN_BEDROCK or CLAUDE_CODE_SKIP_BEDROCK_AUTH (regression in 2.1.94)
v2.1.942026-04-07/effortIMP Shift+SFIX alt+sFIX --resumeIMP
  • Added support for Amazon Bedrock powered by Mantle, set CLAUDE_CODE_USE_MANTLE=1
  • Changed default effort level from medium to high for API-key, Bedrock/Vertex/Foundry, Team, and Enterprise users (control this with /effort)
  • Added compact Slacked #channel header with a clickable channel link for Slack MCP send-message tool calls
  • Added keep-coding-instructions frontmatter field support for plugin output styles
  • Added hookSpecificOutput.sessionTitle to UserPromptSubmit hooks for setting the session title
  • Plugin skills declared via "skills": ["./"] now use the skill's frontmatter name for the invocation name instead of the directory basename, giving a stable name across install methods
  • Fixed Shift+Space inserting the literal word "space" instead of a space character in search inputs
  • Improved --resume to resume sessions from other worktrees of the same repo directly instead of printing a cd command
  • [VSCode] Reduced cold-open subprocess work on starting a session
  • [VSCode] Fixed dropdown menus selecting the wrong item when the mouse was over the list while typing or using arrow keys
  • [VSCode] Added a warning banner when settings.json files fail to parse, so users know their permission rules are not being applied
v2.1.922026-04-04/costNEW /release-notesIMP --remote-control-session-name-prefixIMP ctrl+eFIX /clearFIX /tagDEL /vimDEL /configDEL
  • Added forceRemoteSettingsRefresh policy setting: when set, the CLI blocks startup until remote managed settings are freshly fetched, and exits if the fetch fails (fail-closed)
  • Added interactive Bedrock setup wizard accessible from the login screen when selecting "3rd-party platform" — guides you through AWS authentication, region configuration, credential verification, and model pinning
  • Added per-model and cache-hit breakdown to /cost for subscription users
  • /release-notes is now an interactive version picker
  • Remote Control session names now use your hostname as the default prefix (e.g. myhost-graceful-unicorn), overridable with --remote-control-session-name-prefix
  • Pro users now see a footer hint when returning to a session after the prompt cache has expired, showing roughly how many tokens the next turn will send uncached
  • Fixed ctrl+e jumping to the end of the next line when already at end of line in multiline prompts
  • Fixed idle-return "/clear to save X tokens" hint showing cumulative session tokens instead of current context size
  • Removed /tag command
  • Removed /vim command (toggle vim mode via /config → Editor mode)
  • Linux sandbox now ships the apply-seccomp helper in both npm and native builds, restoring unix-socket blocking for sandboxed commands
v2.1.912026-04-02/openNEW --resumeFIX /feedbackIMP /claude-apiIMP
  • Added MCP tool result persistence override via _meta["anthropic/maxResultSizeChars"] annotation (up to 500K), allowing larger results like DB schemas to pass through without truncation
  • Added disableSkillShellExecution setting to disable inline shell execution in skills, custom slash commands, and plugin commands
  • Added support for multi-line prompts in claude-cli://open?q= deep links (encoded newlines %0A no longer rejected)
  • Plugins can now ship executables under bin/ and invoke them as bare commands from the Bash tool
  • Fixed transcript chain breaks on --resume that could lose conversation history when async transcript writes fail silently
  • /feedback now explains why it's unavailable instead of disappearing from the slash menu
  • Improved /claude-api skill guidance for agent design patterns including tool surface decisions, context management, and caching strategy
  • Edit tool now uses shorter old_string anchors, reducing output tokens
v2.1.902026-04-01/powerupNEW --resumeIMP /modelFIX /configFIX /resumeIMP /displaydnsDEL
  • Added /powerup — interactive lessons teaching Claude Code features with animated demos
  • Added CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE env var to keep the existing marketplace cache when git pull fails, useful in offline environments
  • Added .husky to protected directories (acceptEdits mode)
  • Fixed --resume causing a full prompt-cache miss on the first request for users with deferred tools, MCP servers, or custom agents (regression since v2.1.69)
  • Fixed headers disappearing when scrolling /model, /config, and other selection screens
  • Hardened PowerShell tool permission checks: fixed trailing & background job bypass, -ErrorAction Break debugger hang, archive-extraction TOCTOU, and parse-fail fallback deny-rule degradation
  • Improved /resume all-projects view to load project sessions in parallel, improving load times for users with many projects
  • Changed --resume picker to no longer show sessions created by claude -p or SDK invocations
  • Removed Get-DnsClientCache and ipconfig /displaydns from auto-allow (DNS cache privacy)
v2.1.892026-04-01--resumeNEW alt+sNEW --mcp-configNEW /permissionsIMP /pathFIX /statsFIX Shift+EFIX Ctrl+BIMP /envIMP /usageIMP /buddy
  • Added "defer" permission decision to PreToolUse hooks — headless sessions can pause at a tool call and resume with -p --resume to have the hook re-evaluate
  • Added CLAUDE_CODE_NO_FLICKER=1 environment variable to opt into flicker-free alt-screen rendering with virtualized scrollback
  • Added PermissionDenied hook that fires after auto mode classifier denials — return {retry: true} to tell the model it can retry
  • Added named subagents to @ mention typeahead suggestions
  • Added MCP_CONNECTION_NONBLOCKING=true for -p mode to skip the MCP connection wait entirely, and bounded --mcp-config server connections at 5s instead of blocking on the slowest server
  • Auto mode: denied commands now show a notification and appear in /permissions → Recent tab where you can retry with r
  • Fixed Edit(//path/) and Read(//path/) allow rules to check the resolved symlink target, not just the requested path
  • Fixed /stats undercounting tokens by excluding subagent usage, and losing historical data beyond 30 days when the stats cache format changes
  • Fixed -p --resume hangs when the deferred tool input exceeds 64KB or no deferred marker exists, and -p --continue not resuming deferred tools
  • Fixed --resume crash when transcript contains a tool result from an older CLI version or interrupted write
  • Fixed Shift+Enter submitting instead of inserting a newline on Windows Terminal Preview 1.25
  • Documented TaskCreated hook event and its blocking behavior
  • Preserved task notifications when backgrounding a running command with Ctrl+B
  • PowerShell tool on Windows: external-command arguments containing both a double-quote and whitespace now prompt instead of auto-allowing (PS 5.1 argument-splitting hardening)
  • /env now applies to PowerShell tool commands (previously only affected Bash)
  • /usage now hides redundant "Current week (Sonnet only)" bar for Pro and Enterprise plans
  • Image paste no longer inserts a trailing space
  • Pasting !command into an empty prompt now enters bash mode, matching typed ! behavior
  • /buddy is here for April 1st — hatch a small creature that watches you code
v2.1.872026-03-29—
  • Fixed messages in Cowork Dispatch not getting delivered
v2.1.862026-03-27--resumeFIX /feedbackFIX --bareFIX /modelFIX /pluginFIX /skillsIMP
  • Added X-Claude-Code-Session-Id header to API requests so proxies can aggregate requests by session without parsing the body
  • Added .jj and .sl to VCS directory exclusion lists so Grep and file autocomplete don't descend into Jujutsu or Sapling metadata
  • Fixed --resume failing with "tool_use ids were found without tool_result blocks" on sessions created before v2.1.85
  • Fixed potential out-of-memory crash when using /feedback on very long sessions with large transcript files
  • Fixed --bare mode dropping MCP tools in interactive sessions and silently discarding messages enqueued mid-turn
  • Fixed statusline showing another session's model when running multiple Claude Code instances and using /model in one of them
  • Fixed /plugin uninstall dialog: pressing n now correctly uninstalls the plugin while preserving its data directory
  • Reduced startup event-loop stalls when many claude.ai MCP connectors are configured (macOS keychain cache extended from 5s to 30s)
  • Reduced token overhead when mentioning files with @ — raw string content no longer JSON-escaped
  • Memory filenames in the "Saved N memories" notice now highlight on hover and open on click
  • Skill descriptions in the /skills listing are now capped at 250 characters to reduce context usage
  • Changed /skills menu to sort alphabetically for easier scanning
  • Auto mode now shows "unavailable for your plan" when disabled by plan restrictions (was "temporarily unavailable")
  • [VSCode] Fixed extension incorrectly showing "Not responding" during long-running operations
  • [VSCode] Fixed extension defaulting Max plan users to Sonnet after the OAuth token refreshes (8 hours after login)
v2.1.852026-03-26/loopNEW /openIMP /compactFIX /plugin enableFIX /plugin disableFIX /pluginFIX --worktreeFIX --mcp-configFIX shift+eFIX Ctrl+CFIX Ctrl+DFIX
  • Added CLAUDE_CODE_MCP_SERVER_NAME and CLAUDE_CODE_MCP_SERVER_URL environment variables to MCP headersHelper scripts, allowing one helper to serve multiple servers
  • Added conditional if field for hooks using permission rule syntax (e.g., Bash(git *)) to filter when they run, reducing process spawning overhead
  • Added timestamp markers in transcripts when scheduled tasks (/loop, CronCreate) fire
  • Added trailing space after [Image #N] placeholder when pasting images
  • Deep link queries (claude-cli://open?q=…) now support up to 5,000 characters, with a "scroll to review" warning for long pre-filled prompts
  • MCP OAuth now follows RFC 9728 Protected Resource Metadata discovery to find the authorization server
  • Plugins blocked by organization policy (managed-settings.json) can no longer be installed or enabled, and are hidden from marketplace views
  • PreToolUse hooks can now satisfy AskUserQuestion by returning updatedInput alongside permissionDecision: "allow", enabling headless integrations that collect answers via their own UI
  • tool_parameters in OpenTelemetry tool_result events are now gated behind OTEL_LOG_TOOL_DETAILS=1
  • Fixed /compact failing with "context exceeded" when the conversation has grown too large for the compact request itself to fit
  • Fixed /plugin enable and /plugin disable failing when a plugin's install location differs from where it's declared in settings
  • Fixed --worktree exiting with an error in non-git repositories before the WorktreeCreate hook could run
  • Fixed Python Agent SDK: type:'sdk' MCP servers passed via --mcp-config are no longer dropped during startup
  • Fixed shift+enter and meta+enter being intercepted by typeahead suggestions instead of inserting newlines
  • Fixed terminal left in enhanced keyboard mode after exit in Ghostty, Kitty, WezTerm, and other terminals supporting the Kitty keyboard protocol — Ctrl+C and Ctrl+D now work correctly after quitting
  • Reduced UI stutter when compaction triggers on large sessions
v2.1.842026-03-26/modelNEW /clearNEW Ctrl+UFIX ctrl+xFIX ctrl+kFIX --json-schemaFIX /voiceIMP /mobileIMP /chromeIMP /upgradeIMP /statsIMP Ctrl+SIMP
  • Added PowerShell tool for Windows as an opt-in preview. Learn more at https://code.claude.com/docs/en/tools-reference#powershell-tool
  • Added ANTHROPIC_DEFAULT_{OPUS,SONNET,HAIKU}_MODEL_SUPPORTS env vars to override effort/thinking capability detection for pinned default models for 3p (Bedrock, Vertex, Foundry), and _MODEL_NAME/_DESCRIPTION to customize the /model picker label
  • Added CLAUDE_STREAM_IDLE_TIMEOUT_MS env var to configure the streaming idle watchdog threshold (default 90s)
  • Added TaskCreated hook that fires when a task is created via TaskCreate
  • Added WorktreeCreate hook support for type: "http" — return the created worktree path via hookSpecificOutput.worktreePath in the response JSON
  • Added allowedChannelPlugins managed setting for team/enterprise admins to define a channel plugin allowlist
  • Added x-client-request-id header to API requests for debugging timeouts
  • Added idle-return prompt that nudges users returning after 75+ minutes to /clear, reducing unnecessary token re-caching on stale sessions
  • Deep links (claude-cli://) now open in your preferred terminal instead of whichever terminal happens to be first in the detection list
  • Rules and skills paths: frontmatter now accepts a YAML list of globs
  • 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
  • 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
  • Fixed workflow subagents failing with API 400 when the outer session uses --json-schema and the subagent also specifies a schema
  • Slash commands unavailable for the current auth setup (/voice, /mobile, /chrome, /upgrade, etc.) are now hidden instead of shown
  • Stats screenshot (Ctrl+S in /stats) now works in all builds and is 16× faster
v2.1.832026-03-25Ctrl+ONEW Ctrl+XNEW Ctrl+ENEW Ctrl+GNEW --mcp-configFIX --printFIX /configFIX --channelsFIX Ctrl+BFIX --resumeIMP /statusIMP Ctrl+FIMP Ctrl+KIMP Ctrl+LIMP Ctrl+UIMP --bare -p --worktreeFIX /rewindNEW
  • Added managed-settings.d/ drop-in directory alongside managed-settings.json, letting separate teams deploy independent policy fragments that merge alphabetically
  • Added CwdChanged and FileChanged hook events for reactive environment management (e.g., direnv)
  • Added sandbox.failIfUnavailable setting to exit with an error when sandbox is enabled but cannot start, instead of running unsandboxed
  • Added disableDeepLinkRegistration setting to prevent claude-cli:// protocol handler registration
  • Added CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1 to strip Anthropic and cloud provider credentials from subprocess environments (Bash tool, hooks, MCP stdio servers)
  • Added transcript search — press / in transcript mode (Ctrl+O) to search, n/N to step through matches
  • Added Ctrl+X Ctrl+E as an alias for opening the external editor (readline-native binding; Ctrl+G still works)
  • Pasted images now insert an [Image #N] chip at the cursor so you can reference them positionally in your prompt
  • Agents can now declare initialPrompt in frontmatter to auto-submit a first turn
  • chat:killAgents and chat:fastMode are now rebindable via ~/.claude/keybindings.json
  • Fixed --mcp-config CLI flag bypassing allowedMcpServers/deniedMcpServers managed policy enforcement
  • Fixed claude.ai MCP connectors (Slack, Gmail, etc.) not being available in single-turn --print mode
  • Fixed /config menu showing both the search cursor and list selection at the same time
  • Fixed --channels showing "Channels are not currently available" on first launch after upgrade
  • Fixed Ctrl+B interfering with readline backward-char at an idle prompt — it now only fires when a foreground task can be backgrounded
  • Improved --resume memory usage and startup latency on large sessions
  • /status now works while Claude is responding, instead of being queued until the turn finishes
  • Changed "stop all background agents" keybinding from Ctrl+F to Ctrl+X Ctrl+K to stop shadowing readline forward-char
  • Ctrl+L now clears the screen and forces a full redraw — use this to recover when Cmd+K leaves the UI partially blank. Use Ctrl+U or double-Esc to clear prompt input.
  • --bare -p (SDK pattern) is ~14% faster to the API request
  • Disabled AskUserQuestion and plan-mode tools when --channels is active
  • Fixed --worktree hanging silently when the worktree name contained a forward slash
  • [VSCode] Added Esc-twice (or /rewind) to open a keyboard-navigable rewind picker
v2.1.812026-03-20--bareNEW --settingsNEW --channelsNEW /btwFIX /renameFIX /exitFIX Ctrl+OIMP
  • Added --bare flag for scripted -p calls — skips hooks, LSP, plugin sync, and skill directory walks; requires ANTHROPIC_API_KEY or an apiKeyHelper via --settings (OAuth and keychain auth disabled); auto-memory fully disabled
  • Added --channels permission relay — channel servers that declare the permission capability can forward tool approval prompts to your phone
  • Fixed --channels bypass for Team/Enterprise orgs with no other managed settings configured
  • Resuming a session that was in a worktree now switches back to that worktree
  • Fixed /btw not including pasted text when used during an active response
  • Fixed /rename not syncing the title for Remote Control sessions
  • Fixed Remote Control /exit not reliably archiving the session
  • Improved MCP read/search tool calls to collapse into a single "Queried {server}" line (expand with Ctrl+O)
  • Updated MCP OAuth to support Client ID Metadata Document (CIMD / SEP-991) for servers without Dynamic Client Registration
  • Disabled line-by-line response streaming on Windows (including WSL in Windows Terminal) due to rendering issues
  • [VSCode] Fixed Windows PATH inheritance for Bash tool when using Git Bash (regression in v2.1.78)
v2.1.802026-03-19--channelsNEW --resumeFIX /remote-controlFIX /sandboxFIX /effortIMP /permissionsIMP /plugin installIMP /pluginIMP
  • 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)
  • Added source: 'settings' plugin marketplace source — declare plugin entries inline in settings.json
  • Added CLI tool usage detection to plugin tips, in addition to file pattern matching
  • Added effort frontmatter support for skills and slash commands to override the model effort level when invoked
  • Added --channels (research preview) — allow MCP servers to push messages into your session
  • Fixed --resume dropping parallel tool results — sessions with parallel tool calls now restore all tool_use/tool_result pairs instead of showing [Tool result missing] placeholders
  • Fixed /remote-control appearing for gateway and third-party provider deployments where it cannot function
  • Fixed /sandbox tab switching not responding to Tab or arrow keys
  • Improved /effort to show what auto currently resolves to, matching the status bar indicator
  • Improved /permissions — Tab and arrow keys now switch tabs from within a list
  • Simplified plugin install tips to use a single /plugin install command instead of a two-step flow
  • Reduced memory usage on startup in large repositories (~80 MB saved on 250k-file repos)
v2.1.792026-03-18--consoleNEW /configNEW Ctrl+CFIX /btwFIX /permissionsFIX /resumeFIX /remote-controlNEW
  • Added --console flag to claude auth login for Anthropic Console (API billing) authentication
  • Added "Show turn duration" toggle to the /config menu
  • Fixed Ctrl+C not working in -p (print) mode
  • Fixed /btw returning the main agent's output instead of answering the side question when triggered during streaming
  • Fixed left/right arrow tab navigation in /permissions
  • Fixed SessionEnd hooks not firing when using interactive /resume to switch sessions
  • CLAUDE_CODE_PLUGIN_SEED_DIR now supports multiple seed directories separated by the platform path delimiter (: on Unix, ; on Windows)
  • [VSCode] Added /remote-control — bridge your session to claude.ai/code to continue from a browser or phone
  • [VSCode] Session tabs now get AI-generated titles based on your first message
  • [VSCode] Fixed the thinking pill showing "Thinking" instead of "Thought for Ns" after a response completes
  • [VSCode] Fixed missing session diff button when opening sessions from the left sidebar
v2.1.782026-03-17/plugin uninstallNEW /pluginNEW --resumeFIX /sandboxFIX ctrl+uFIX ctrl+dFIX ctrl+kFIX --worktreeFIX /modelNEW
  • Added StopFailure hook event that fires when the turn ends due to an API error (rate limit, auth failure, etc.)
  • Added ${CLAUDE_PLUGIN_DATA} variable for plugin persistent state that survives plugin updates; /plugin uninstall prompts before deleting it
  • Added effort, maxTurns, and disallowedTools frontmatter support for plugin-shipped agents
  • Terminal notifications (iTerm2/Kitty/Ghostty popups, progress bar) now reach the outer terminal when running inside tmux with set -g allow-passthrough on
  • Response text now streams line-by-line as it's generated
  • Fixed cc log and --resume silently truncating conversation history on large sessions (>5 MB) that used subagents
  • Fixed /sandbox Dependencies tab showing Linux prerequisites on macOS instead of macOS-specific info
  • Fixed ctrl+u in normal mode scrolling instead of readline kill-line (ctrl+u/ctrl+d half-page scroll moved to transcript mode only)
  • Fixed voice mode modifier-combo push-to-talk keybindings (e.g. ctrl+k) requiring a hold instead of activating immediately
  • Fixed --worktree flag not loading skills and hooks from the worktree directory
  • Added ANTHROPIC_CUSTOM_MODEL_OPTION env var to add a custom entry to the /model picker, with optional _NAME and _DESCRIPTION suffixed vars for display
  • [VSCode] Fixed a brief flash of the login screen when opening the sidebar while already authenticated
  • [VSCode] Fixed "API Error: Rate limit reached" when selecting Opus — model dropdown no longer offers 1M context variant to subscribers whose plan tier is unknown
v2.1.772026-03-17/copyIMP /copy NIMP --resumeFIX /feedbackFIX Ctrl+DFIX /mcpFIX /forkIMP /branchIMP
  • 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
  • Added allowRead sandbox filesystem setting to re-allow read access within denyRead regions
  • /copy now accepts an optional index: /copy N copies the Nth-latest assistant response
  • Fixed --resume silently truncating recent conversation history due to a race between memory-extraction writes and the main transcript
  • Fixed Ctrl+D in /feedback text input deleting forward instead of the second press exiting the session
  • Fixed input deadlock when opening /mcp or similar dialogs while the agent is running
  • Faster startup on macOS (~60ms) by reading keychain credentials in parallel with module loading
  • Faster --resume on fork-heavy and very large sessions — up to 45% faster loading and ~100-150MB less peak memory
  • Background bash tasks are now killed if output exceeds 5GB, preventing runaway processes from filling disk
  • Sessions are now auto-named from plan content when you accept a plan
  • Show a notice when apiKeyHelper takes longer than 10s, preventing it from blocking the main loop
  • The Agent tool no longer accepts a resume parameter — use SendMessage({to: agentId}) to continue a previously spawned agent
  • SendMessage now auto-resumes stopped agents in the background instead of returning an error
  • Renamed /fork to /branch (/fork still works as an alias)
v2.1.762026-03-14--name <name>NEW --nameNEW --worktreeNEW /effortNEW /voiceIMP /exportFIX --plugin-dirIMP
  • Added MCP elicitation support — MCP servers can now request structured input mid-task via an interactive dialog (form fields or browser URL)
  • Added new Elicitation and ElicitationResult hooks to intercept and override responses before they're sent back
  • Added -n / --name <name> CLI flag to set a display name for the session at startup
  • Added worktree.sparsePaths setting for claude --worktree in large monorepos to check out only the directories you need via git sparse-checkout
  • Added PostCompact hook that fires after compaction completes
  • Added /effort slash command to set model effort level
  • Added session quality survey — enterprise admins can configure the sample rate via the feedbackSurveyRate setting
  • Fixed /voice not working on Windows when installed via npm
  • Fixed /export showing only the filename instead of the full file path in the success message
  • Improved --worktree startup performance by reading git refs directly and skipping redundant git fetch when the remote branch is already available locally
  • Improved /voice to show your dictation language on enable and warn when your language setting isn't supported for voice input
  • Updated --plugin-dir to only accept one path to support subcommands — use repeated --plugin-dir for multiple directories
  • [VSCode] Fixed gitignore patterns containing commas silently excluding entire filetypes from the @-mention file picker
v2.1.752026-03-13/colorNEW /renameNEW /voiceFIX /modelFIX /pluginFIX /resumeFIX /statusFIX --verboseIMP
  • Added 1M context window for Opus 4.6 by default for Max, Team, and Enterprise plans (previously required extra usage)
  • Added /color command for all users to set a prompt-bar color for your session
  • Added session name display on the prompt bar when using /rename
  • Added last-modified timestamps to memory files, helping Claude reason about which memories are fresh vs. stale
  • Added hook source display (settings/plugin/skill) in permission prompts when a hook requires confirmation
  • Fixed voice mode not activating correctly on fresh installs without toggling /voice twice
  • Fixed the Claude Code header not updating the displayed model name after switching models with /model or Option+P
  • Fixed managed-disabled plugins showing up in the /plugin Installed tab — plugins force-disabled by your organization are now hidden
  • Fixed /resume losing session names after resuming a forked or continued session
  • Fixed Esc not closing the /status dialog after visiting the Config tab
  • Suppressed async hook completion messages by default (visible with --verbose or transcript mode)
v2.1.742026-03-12/contextNEW --agentsFIX --modelFIX /plugin installFIX /pluginFIX --plugin-dirIMP
  • Added actionable suggestions to /context command — identifies context-heavy tools, memory bloat, and capacity warnings with specific optimization tips
  • Added autoMemoryDirectory setting to configure a custom directory for auto-memory storage
  • 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
  • Fixed /plugin install failing inside the REPL for marketplace plugins with local sources
  • 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)
  • [VSCode] Fixed delete button not working for Untitled sessions
  • [VSCode] Improved scroll wheel responsiveness in the integrated terminal with terminal-aware acceleration
v2.1.732026-03-11/resumeFIX /ideFIX /loopFIX --resumeFIX --continueFIX /heapdumpFIX /effortIMP /modelIMP /output-styleIMP /configIMP
  • Added modelOverrides setting to map model picker entries to custom provider model IDs (e.g. Bedrock inference profile ARNs)
  • Added actionable guidance when OAuth login or connectivity checks fail due to SSL certificate errors (corporate proxies, NODE_EXTRA_CA_CERTS)
  • Fixed /resume showing the current session in the picker
  • Fixed /ide crashing with onInstall is not defined when auto-installing the extension
  • Fixed /loop not being available on Bedrock/Vertex/Foundry and when telemetry was disabled
  • Fixed SessionStart hooks firing twice when resuming a session via --resume or --continue
  • Fixed /heapdump failing on Windows with EEXIST error when the Desktop folder already exists
  • Improved /effort to work while Claude is responding, matching /model behavior
  • Deprecated /output-style command — use /config instead. Output style is now fixed at session start for better prompt caching
  • VSCode: Fixed HTTP 400 errors for users behind proxies or on Bedrock/Vertex with Claude 4.5 models
v2.1.722026-03-10/copyNEW /planNEW /effort autoIMP /effortIMP /configIMP --continueFIX --compactFIX --effortFIX /clearFIX Ctrl+BFIX /modelFIX Ctrl+CFIX Shift+EFIX /anthropicNEW
  • Added w key in /copy to write the focused selection directly to a file, bypassing the clipboard (useful over SSH)
  • Added optional description argument to /plan (e.g., /plan fix the auth bug) that enters plan mode and immediately starts
  • Added ExitWorktree tool to leave an EnterWorktree session
  • Added CLAUDE_CODE_DISABLE_CRON environment variable to immediately stop scheduled cron jobs mid-session
  • Added lsof, pgrep, tput, ss, fd, and fdfind to the bash auto-approval allowlist, reducing permission prompts for common read-only operations
  • Restored the model parameter on the Agent tool for per-invocation model overrides
  • 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
  • Improved /config — Escape now cancels changes, Enter saves and closes, Space toggles settings
  • Reduced bundle size by ~510 KB
  • Fixed --continue not resuming from the most recent point after --compact
  • Added support for marketplace git URLs without .git suffix (Azure DevOps, AWS CodeCommit)
  • Fixed --effort CLI flag being reset by unrelated settings writes on startup
  • Fixed backgrounded Ctrl+B queries losing their transcript or corrupting the new conversation after /clear
  • Fixed /clear killing background agent/bash tasks — only foreground tasks are now cleared
  • Fixed /model not displaying results when run while Claude is working
  • Fixed double Ctrl+C not exiting when background agents or tasks are running
  • VSCode: Fixed scroll speed in integrated terminals not matching native terminals
  • VSCode: Fixed Shift+Enter submitting input instead of inserting a newline for users with older keybindings
  • VSCode: Added effort level indicator on the input border
  • VSCode: Added vscode://anthropic.claude-code/open URI handler to open a new Claude Code tab programmatically, with optional prompt and session query parameters
v2.1.712026-03-07/loopNEW /forkFIX /pluginIMP /permissionsFIX --printFIX /plugin uninstallIMP /debugIMP
  • Added /loop command to run a prompt or slash command on a recurring interval (e.g. /loop 5m check the deploy)
  • Added cron scheduling tools for recurring prompts within a session
  • Added voice:pushToTalk keybinding to make the voice activation key rebindable in keybindings.json (default: space) — modifier+letter combos like meta+k have zero typing interference
  • Added fmt, comm, cmp, numfmt, expr, test, printf, getconf, seq, tsort, and pr to the bash auto-approval allowlist
  • Fixed forked conversations (/fork) sharing the same plan file, which caused plan edits in one fork to overwrite the other
  • Fixed /plugin marketplace update failing with merge conflicts when the marketplace is pinned to a branch/tag ref
  • Fixed /plugin marketplace add owner/repo@ref incorrectly parsing @ — previously only # worked as a ref separator, causing undiagnosable errors with strictKnownMarketplaces
  • Fixed duplicate entries in /permissions Workspace tab when the same directory is added with and without a trailing slash
  • Fixed --print hanging forever when team agents are configured — the exit loop no longer waits on long-lived in_process_teammate tasks
  • 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
  • Improved plugin-provided MCP server deduplication — servers that duplicate a manually-configured server (same command/URL) are now skipped, preventing duplicate connections and tool sets. Suppressions are shown in the /plugin menu.
  • Updated /debug to toggle debug logging on mid-session, since debug logs are no longer written by default
v2.1.702026-03-06/pluginFIX /security-reviewFIX /colorFIX /color defaultFIX /color grayFIX /color resetFIX /color noneFIX --resumeFIX /renameIMP /pollIMP /mcpNEW
  • Fixed plugins showing as inaccurately installed in /plugin
  • Fixed /security-review command failing with unknown option merge-base on older git versions
  • Fixed /color command having no way to reset back to the default color — /color default, /color gray, /color reset, and /color none now restore the default
  • Fixed skill listing being re-injected on every --resume (~600 tokens saved per resume)
  • Improved /rename to work while Claude is processing, instead of being silently queued
  • Reduced prompt input re-renders during turns by ~74%
  • Reduced startup memory by ~426KB for users without custom CA certificates
  • Reduced Remote Control /poll rate to once per 10 minutes while connected (was 1–2s), cutting server load ~300×. Reconnection is unaffected — transport loss immediately wakes fast polling.
  • [VSCode] Added spark icon in VS Code activity bar that lists all Claude Code sessions, with sessions opening as full editors
  • [VSCode] Added full markdown document view for plans in VS Code, with support for adding comments to provide feedback
  • [VSCode] Added native MCP server management dialog — use /mcp in the chat panel to enable/disable servers, reconnect, and manage OAuth authentication without switching to the terminal
v2.1.692026-03-05/claude-apiNEW Ctrl+UNEW /remote-controlNEW --nameNEW --agentNEW /reload-pluginsNEW --worktreeNEW --model claude-opus-4-0FIX --model claude-opus-4-1FIX /loginFIX Shift+EFIX Ctrl+SFIX ctrl+oFIX /statsFIX --setting-sources userFIX /pluginFIX /compactFIX /voiceFIX /costFIX /clearFIX --mcp-configFIX /contextFIX Ctrl+OFIX /configFIX --append-system-prompt-fileIMP --system-prompt-fileIMP /resumeIMP
  • Added the /claude-api skill for building applications with the Claude API and Anthropic SDK
  • Added Ctrl+U on an empty bash prompt (!) to exit bash mode, matching escape and backspace
  • Added numeric keypad support for selecting options in Claude's interview questions (previously only the number row above QWERTY worked)
  • Added optional name argument to /remote-control and claude remote-control (/remote-control My Project or --name "My Project") to set a custom session title visible in claude.ai/code
  • Added Voice STT support for 10 new languages (20 total) — Russian, Polish, Turkish, Dutch, Ukrainian, Greek, Czech, Danish, Swedish, Norwegian
  • Added effort level display (e.g., "with low effort") to the logo and spinner, making it easier to see which effort setting is active
  • Added agent name display in terminal title when using claude --agent
  • Added sandbox.enableWeakerNetworkIsolation setting (macOS only) to allow Go programs like gh, gcloud, and terraform to verify TLS certificates when using a custom MITM proxy with httpProxyPort
  • Added includeGitInstructions setting (and CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS env var) to remove built-in commit and PR workflow instructions from Claude's system prompt
  • Added /reload-plugins command to activate pending plugin changes without restarting
  • Added a one-time startup prompt suggesting Claude Code Desktop on macOS and Windows (max 3 showings, dismissible)
  • Added ${CLAUDE_SKILL_DIR} variable for skills to reference their own directory in SKILL.md content
  • Added InstructionsLoaded hook event that fires when CLAUDE.md or .claude/rules/*.md files are loaded into context
  • Added agent_id (for subagents) and agent_type (for subagents and --agent) to hook events
  • Added worktree field to status line hook commands with name, path, branch, and original repo directory when running in a --worktree session
  • Fixed --model claude-opus-4-0 and --model claude-opus-4-1 resolving to deprecated Opus versions instead of current
  • Fixed macOS keychain corruption when using multiple OAuth MCP servers. Large OAuth metadata blobs could overflow the security -i stdin buffer, silently leaving stale credentials behind and causing repeated /login prompts.
  • Fixed Shift+Enter printing [27;2;13~ instead of inserting a newline in Ghostty over SSH
  • Fixed stash (Ctrl+S) being cleared when submitting a message while Claude is working
  • Fixed ctrl+o (transcript toggle) freezing for many seconds in long sessions with lots of file edits
  • Fixed plan mode feedback input not supporting multi-line text entry (backslash+Enter and Shift+Enter now insert newlines)
  • Fixed /stats crash when transcript files contain entries with missing or malformed timestamps
  • Fixed --setting-sources user not blocking dynamically discovered project skills
  • Fixed plugin Stop/SessionEnd/etc hooks not firing after any /plugin operation
  • Fixed /compact summary rendering as a user bubble in SDK consumers (Claude Code Remote web UI, VSCode extension)
  • Fixed Escape not interrupting a running turn when the input box has draft text. Use Up arrow to pull queued messages back for editing, or Ctrl+U to clear the input line.
  • Fixed Android app crash when running local slash commands (/voice, /cost) in Remote Control sessions
  • Fixed memory retention in in-process teammates where the parent's full conversation history was pinned for the teammate's lifetime, preventing GC after /clear or auto-compact
  • Fixed hang when --mcp-config points to a corrupted file
  • Fixed slow startup when many skills/plugins are installed
  • Fixed /clear not fully clearing all session caches, reducing memory retention in long sessions
  • Fixed /context showing identical token counts for all MCP tools from a server
  • Fixed extra blank lines appearing below each tool call in the expanded subagent transcript view (Ctrl+O)
  • Fixed Tab/arrow keys not cycling Settings tabs when /config search box is focused but empty
  • Improved --worktree startup by eliminating a git subprocess on the startup path
  • Improved documentation to clarify that --append-system-prompt-file and --system-prompt-file work in interactive mode (the docs previously said print mode only)
  • Changed the /resume picker to show your most recent prompt instead of the first one. This also resolves some titles appearing as (session).
v2.1.682026-03-04/modelIMP
  • Opus 4.6 now defaults to medium effort for Max and Team subscribers. Medium effort works well for most tasks — it's the sweet spot between speed and thoroughness. You can change this anytime with /model
  • Re-introduced the "ultrathink" keyword to enable high effort for the next turn
v2.1.662026-03-04—
  • Reduced spurious error logging
v2.1.632026-02-28/simplifyNEW /batchNEW /costFIX /modelIMP /copyNEW /clearFIX
  • Added /simplify and /batch bundled slash commands
  • Fixed local slash command output like /cost appearing as user-sent messages instead of system messages in the UI
  • Project configs & auto memory now shared across git worktrees of the same repository
  • Added ENABLE_CLAUDEAI_MCP_SERVERS=false env var to opt out from making claude.ai MCP servers available
  • Improved /model command to show the currently active model in the slash command menu
  • Added HTTP hooks, which can POST JSON to a URL and receive JSON instead of running a shell command
  • Added manual URL paste fallback during MCP OAuth authentication. If the automatic localhost redirect doesn't work, you can paste the callback URL to complete authentication.
  • VSCode: Fixed remote sessions not appearing in conversation history
  • Added "Always copy full response" option to the /copy picker. When selected, future /copy commands will skip the code block picker and copy the full response directly.
  • VSCode: Added session rename and remove actions to the sessions list
  • Fixed /clear not resetting cached skills, which could cause stale skill content to persist in the new conversation
v2.1.622026-02-27—
  • Fixed prompt suggestion cache regression that reduced cache hit rates
v2.1.612026-02-26—
  • Fixed concurrent writes corrupting config file on Windows
v2.1.592026-02-26/memory /copyNEW
  • Claude automatically saves useful context to auto-memory. Manage with /memory
  • Added /copy command to show an interactive picker when code blocks are present, allowing selection of individual code blocks or the full response.
v2.1.582026-02-25—
  • Expand Remote Control to more users
v2.1.562026-02-25—
  • VS Code: Fixed another cause of "command 'claude-vscode.editor.openLast' not found" crashes
v2.1.552026-02-25—
  • Fixed BashTool failing on Windows with EINVAL error
v2.1.532026-02-25ctrl+fFIX --worktreeFIX
  • Fixed bulk agent kill (ctrl+f) to send a single aggregate notification instead of one per agent, and to properly clear the command queue
  • Fixed --worktree sometimes being ignored on first launch
v2.1.522026-02-24—
  • VS Code: Fixed extension crash on Windows ("command 'claude-vscode.editor.openLast' not found")
v2.1.512026-02-24/modelIMP
  • Added claude remote-control subcommand for external builds, enabling local environment serving for all users.
  • Updated plugin marketplace default git timeout from 30s to 120s and added CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS to configure.
  • Added support for custom npm registries and specific version pinning when installing plugins from npm sources
  • BashTool now skips login shell (-l flag) by default when a shell snapshot is available, improving command execution performance. Previously this required setting CLAUDE_BASH_NO_LOGIN=true.
  • Tool results larger than 50K characters are now persisted to disk (previously 100K). This reduces context window usage and improves conversation longevity.
  • Added CLAUDE_CODE_ACCOUNT_UUID, CLAUDE_CODE_USER_EMAIL, and CLAUDE_CODE_ORGANIZATION_UUID environment variables for SDK callers to provide account info synchronously, eliminating a race condition where early telemetry events lacked account metadata.
  • The /model picker now shows human-readable labels (e.g., "Sonnet 4.5") instead of raw model IDs for pinned model versions, with an upgrade hint when a newer version is available.
  • Managed settings can now be set via macOS plist or Windows Registry. Learn more at https://code.claude.com/docs/en/settings#settings-files
v2.1.502026-02-20/mcp reconnectFIX /mcpFIX /extra-usageNEW
  • Added support for startupTimeout configuration for LSP servers
  • Added WorktreeCreate and WorktreeRemove hook events, enabling custom VCS setup and teardown when agent worktree isolation creates or removes worktrees.
  • Linux: Fixed native modules not loading on systems with glibc older than 2.30 (e.g., RHEL 8)
  • Fixed /mcp reconnect freezing the CLI when given a server name that doesn't exist
  • Added support for isolation: worktree in agent definitions, allowing agents to declaratively run in isolated git worktrees.
  • CLAUDE_CODE_SIMPLE mode now also disables MCP tools, attachments, hooks, and CLAUDE.md file loading for a fully minimal experience.
  • Added claude agents CLI command to list all configured agents
  • Added CLAUDE_CODE_DISABLE_1M_CONTEXT environment variable to disable 1M context window support
  • Opus 4.6 (fast mode) now includes the full 1M context window
  • VSCode: Added /extra-usage command support in VS Code sessions
v2.1.492026-02-19--worktreeNEW Ctrl+FNEW Ctrl+CFIX --scopeFIX /modelIMP /configFIX --resumeFIX /clearFIX
  • Added --worktree (-w) flag to start Claude in an isolated git worktree
  • Subagents support isolation: "worktree" for working in a temporary git worktree
  • Added Ctrl+F keybinding to kill background agents (two-press confirmation)
  • Agent definitions support background: true to always run as a background task
  • Plugins can ship settings.json for default configuration
  • Fixed Ctrl+C and ESC being silently ignored when background agents are running and the main thread is idle. Pressing twice within 3 seconds now kills all background agents.
  • Fixed plugin enable and plugin disable to auto-detect the correct scope when --scope is not specified, instead of always defaulting to user scope
  • Simple mode (CLAUDE_CODE_SIMPLE) now includes the file edit tool in addition to the Bash tool, allowing direct file editing in simple mode.
  • Permission suggestions are now populated when safety checks trigger an ask response, enabling SDK consumers to display permission options
  • Sonnet 4.5 with 1M context is being removed from the Max plan in favor of our frontier Sonnet 4.6 model, which now has 1M context. Please switch in /model.
  • Fixed verbose mode not updating thinking block display when toggled via /config — memo comparators now correctly detect verbose changes
  • SDK model info now includes supportsEffort, supportedEffortLevels, and supportsAdaptiveThinking fields so consumers can discover model capabilities.
  • Added ConfigChange hook event that fires when configuration files change during a session, enabling enterprise security auditing and optional blocking of settings changes.
  • Fixed --resume session picker showing raw XML tags for sessions that start with commands like /clear. Now correctly falls through to the session ID fallback.
v2.1.472026-02-18ctrl+fIMP Shift+DIMP Shift+UIMP /renameIMP /helpFIX /modelFIX /compactFIX /clearFIX /resumeFIX /add-dirNEW Shift+EFIX /resume <session-id>FIX /forkFIX
  • Search patterns in collapsed tool results are now displayed in quotes for clarity
  • Windows: Fixed CWD tracking temp files never being cleaned up, causing them to accumulate indefinitely (anthropics/claude-code#17600)
  • Use ctrl+f to kill all background agents instead of double-pressing ESC. Background agents now continue running when you press ESC to cancel the main thread, giving you more control over agent lifecycle.
  • Simplified teammate navigation to use only Shift+Down (with wrapping) instead of both Shift+Up and Shift+Down.
  • Added last_assistant_message field to Stop and SubagentStop hook inputs, providing the final assistant response text so hooks can access it without parsing transcript files.
  • Fixed custom session titles set via /rename being lost after resuming a conversation (anthropics/claude-code#23610)
  • Fixed built-in slash commands (/help, /model, /compact, etc.) being hidden from the autocomplete dropdown when many user skills are installed (anthropics/claude-code#22020)
  • Fixed session name persisting in status bar after /clear command (anthropics/claude-code#26082)
  • Fixed /resume silently dropping sessions when the first message exceeds 16KB or uses array-format content (anthropics/claude-code#25721)
  • Added chat:newline keybinding action for configurable multi-line input (anthropics/claude-code#26075)
  • Added added_dirs to the statusline JSON workspace section, exposing directories added via /add-dir to external scripts (anthropics/claude-code#26096)
  • Fixed Warp terminal incorrectly prompting for Shift+Enter setup when it supports it natively (anthropics/claude-code#25957)
  • Increased initial session count in resume picker from 10 to 50 for faster session discovery (anthropics/claude-code#26123)
  • Windows: fixed worktree session matching when drive letter casing differs (anthropics/claude-code#26123)
  • Fixed /resume <session-id> failing to find sessions whose first message exceeds 16KB (anthropics/claude-code#25920)
  • Fixed crash when using /fork on sessions that used web search — null entries in search results from transcript deserialization are now handled gracefully (anthropics/claude-code#25811)
  • Windows: Fixed the same CLAUDE.md file being loaded twice when drive letter casing differs between paths (anthropics/claude-code#25756)
  • Moved config backup files from home directory root to ~/.claude/backups/ to reduce home directory clutter (anthropics/claude-code#26130)
  • Fixed sessions with large first prompts (>16KB) disappearing from the /resume list (anthropics/claude-code#26140)
  • The /rename command now updates the terminal tab title by default (anthropics/claude-code#25789)
v2.1.46——
  • Added support for using claude.ai MCP connectors in Claude Code
v2.1.452026-02-17--add-dirNEW
  • Added support for Claude Sonnet 4.6
  • Added support for reading enabledPlugins and extraKnownMarketplaces from --add-dir directories
  • Added spinnerTipsOverride setting to customize spinner tips — configure tips with an array of custom tip strings, and optionally set excludeDefault: true to show only your custom tips instead of the built-in ones
  • Added SDKRateLimitInfo and SDKRateLimitEvent types to the SDK, enabling consumers to receive rate limit status updates including utilization, reset times, and overage information
  • [VSCode] Improved permission destination choice (project/user/session) to persist across sessions
v2.1.442026-02-16—
  • Fixed ENAMETOOLONG errors for deeply-nested directory paths
  • Fixed auth refresh errors
v2.1.43——
  • Fixed AWS auth refresh hanging indefinitely by adding a 3-minute timeout
  • Fixed spurious warnings for non-agent markdown files in .claude/agents/ directory
  • Fixed structured-outputs beta header being sent unconditionally on Vertex/Bedrock
v2.1.422026-02-13/resumeFIX /compactFIX
  • Added one-time Opus 4.6 effort callout for eligible users
  • Fixed /resume showing interrupt messages as session titles
  • Fixed image dimension limit errors to suggest /compact
v2.1.412026-02-13/resumeFIX /renameIMP
  • Added guard against launching Claude Code inside another Claude Code session
  • Fixed /resume session previews showing raw XML tags instead of readable command names
  • Added speed attribute to OTel events and trace spans for fast mode visibility
  • Added claude auth login, claude auth status, and claude auth logout CLI subcommands
  • Added Windows ARM64 (win32-arm64) native binary support
  • Improved /rename to auto-generate session name from conversation context when called without arguments
v2.1.392026-02-10—
  • Improved terminal rendering performance
  • Fixed fatal errors being swallowed instead of displayed
  • Fixed process hanging after session close
  • Fixed character loss at terminal screen boundary
  • Fixed blank lines in verbose transcript view
v2.1.382026-02-10—
  • Blocked writes to .claude/skills directory in sandbox mode
v2.1.372026-02-07/fastFIX /extra-usageFIX
  • Fixed an issue where /fast was not immediately available after enabling /extra-usage
v2.1.362026-02-07—
  • Fast mode is now available for Opus 4.6. Learn more at https://code.claude.com/docs/en/fast-mode
v2.1.342026-02-06—
  • Fixed a crash when agent teams setting changed between renders
  • Fixed a bug where commands excluded from sandboxing (via sandbox.excludedCommands or dangerouslyDisableSandbox) could bypass the Bash ask permission rule when autoAllowBashIfSandboxed was enabled
v2.1.332026-02-06/skillsNEW /resumeFIX
  • Added TeammateIdle and TaskCompleted hook events for multi-agent workflows
  • Added support for restricting which sub-agents can be spawned via Task(agent_type) syntax in agent "tools" frontmatter
  • Added memory frontmatter field support for agents, enabling persistent memory with user, project, or local scope
  • Added plugin name to skill descriptions and /skills menu for better discoverability
  • Fixed /resume session picker showing raw XML markup instead of clean titles for sessions started with slash commands
  • Errors from invalid managed settings are now surfaced
  • VSCode: Added support for remote sessions, allowing OAuth users to browse and resume sessions from claude.ai
  • VSCode: Added git branch and message count to the session picker, with support for searching by branch name
  • VSCode: Fixed scroll-to-bottom under-scrolling on initial session load and session switch
v2.1.322026-02-05--add-dirIMP
  • Claude Opus 4.6 is now available!
  • Added research preview agent teams feature for multi-agent collaboration (token-intensive feature, requires setting CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1)
  • Claude now automatically records and recalls memories as it works
  • Added "Summarize from here" to the message selector, allowing partial conversation summarization.
  • Skills defined in .claude/skills/ within additional directories (--add-dir) are now loaded automatically.
  • Updated --resume to re-use --agent value specified in previous conversation by default.
  • Skill character budget now scales with context window (2% of context), so users with larger context windows can see more skill descriptions without truncation
  • VSCode: Fixed slash commands incorrectly being executed when pressing Enter with preceding text in the input field
  • VSCode: Added spinner when loading past conversations list
v2.1.312026-02-04—
  • Added session resume hint on exit, showing how to continue your conversation later
  • Added support for full-width (zenkaku) space input from Japanese IME in checkbox selection
  • Reduced layout jitter in the terminal when the spinner appears and disappears during streaming
v2.1.302026-02-03--client-idNEW --client-secretNEW /debugNEW --topo-orderNEW --cherry-pickNEW --formatNEW --rawNEW /loginFIX /upgradeFIX --resumeIMP /modelIMP Shift+ENEW
  • Added pages parameter to the Read tool for PDFs, allowing specific page ranges to be read (e.g., pages: "1-5"). Large PDFs (>10 pages) now return a lightweight reference when @ mentioned instead of being inlined into context.
  • Added pre-configured OAuth client credentials for MCP servers that don't support Dynamic Client Registration (e.g., Slack). Use --client-id and --client-secret with claude mcp add.
  • Added /debug for Claude to help troubleshoot the current session
  • Added support for additional git log and git show flags in read-only mode (e.g., --topo-order, --cherry-pick, --format, --raw)
  • Added token count, tool uses, and duration metrics to Task tool results
  • Added reduced motion mode to the config
  • Fixed 400 errors that could occur after running /login when the conversation contained thinking blocks
  • Fixed rate limit message showing incorrect "/upgrade" suggestion for Max 20x users when extra-usage is unavailable
  • Improved memory usage for --resume (68% reduction for users with many sessions) by replacing the session index with lightweight stat-based loading and progressive enrichment
  • Changed /model to execute immediately instead of being queued
  • [VSCode] Added multiline input support to the "Other" text input in question dialogs (use Shift+Enter for new lines)
  • [VSCode] Fixed duplicate sessions appearing in the session list when starting a new conversation
v2.1.292026-01-31—
  • Fixed startup performance issues when resuming sessions that have saved_hook_context
v2.1.272026-01-30--from-prNEW /contextFIX
  • Added tool call failures and denials to debug logs
  • Added --from-pr flag to resume sessions linked to a specific GitHub PR number or URL
  • Sessions are now automatically linked to PRs when created via gh pr create
  • Fixed /context command not displaying colored output
  • Windows: Fixed bash command execution failing for users with .bashrc files
  • Windows: Fixed console windows flashing when spawning child processes
  • VSCode: Fixed OAuth token expiration causing 401 errors after extended sessions
v2.1.252026-01-29—
  • Fixed beta header validation error for gateway users on Bedrock and Vertex, ensuring CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 avoids the error
v2.1.232026-01-29—
  • Added customizable spinner verbs setting (spinnerVerbs)
  • [IDE] Fixed model options displaying incorrect region strings for Bedrock users in headless mode
v2.1.222026-01-28—
  • Fixed structured outputs for non-interactive (-p) mode
v2.1.212026-01-28—
  • Added support for full-width (zenkaku) number input from Japanese IME in option selection prompts
  • [VSCode] Added automatic Python virtual environment activation, ensuring python and pip commands use the correct interpreter (configurable via claudeCode.usePythonEnvironment setting)
  • [VSCode] Fixed message action buttons having incorrect background colors
v2.1.202026-01-27Ctrl+GNEW --add-dirNEW /contextFIX /sandboxIMP /commit-push-prIMP /copyIMP
  • Added arrow key history navigation in vim normal mode when cursor cannot move further
  • Added external editor shortcut (Ctrl+G) to the help menu for better discoverability
  • Added PR review status indicator to the prompt footer, showing the current branch's PR state (approved, changes requested, pending, or draft) as a colored dot with a clickable link
  • Added support for loading CLAUDE.md files from additional directories specified via --add-dir flag (requires setting CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1)
  • Added ability to delete tasks via the TaskUpdate tool
  • Fixed duplicate output in some commands like /context
  • Improved /sandbox command UI to show dependency status with installation instructions when dependencies are missing
  • Changed the /commit-push-pr skill to automatically post PR URLs to Slack channels when configured via MCP tools
  • Changed the /copy command to be available to all users
v2.1.192026-01-23/renameFIX /tagFIX Ctrl+SFIX
  • Added env var CLAUDE_CODE_ENABLE_TASKS, set to false to keep the old system temporarily
  • Added shorthand $0, $1, etc. for accessing individual arguments in custom commands
  • Fixed /rename and /tag not updating the correct session when resuming from a different directory (e.g., git worktrees)
  • Fixed pasted text content being lost when using prompt stash (Ctrl+S) and restore
  • [SDK] Added replay of queued_command attachment messages as SDKUserMessageReplay events when replayUserMessages is enabled
  • [VSCode] Enabled session forking and rewind functionality for all users
v2.1.182026-01-22/keybindingsNEW
  • Added customizable keyboard shortcuts. Configure keybindings per context, create chord sequences, and personalize your workflow. Run /keybindings to get started. Learn more at https://code.claude.com/docs/en/keybindings
v2.1.172026-01-22—
  • Fixed crashes on processors without AVX instruction support
v2.1.162026-01-22/compactFIX
  • Added new task management system, including new capabilities like dependency tracking
  • [VSCode] Added native plugin management support
  • [VSCode] Added ability for OAuth users to browse and resume remote Claude sessions from the Sessions dialog
  • Fixed an issue where the "context remaining" warning was not hidden after running /compact
  • [IDE] Fixed a race condition on Windows where the Claude Code sidebar view container would not appear on start
v2.1.152026-01-21/compactFIX
  • Added deprecation notification for npm installations - run claude install or see https://code.claude.com/docs/en/setup for more options
  • Fixed the "Context left until auto-compact" warning not disappearing after running /compact
v2.1.142026-01-20/feedbackFIX /contextFIX /configFIX /modelFIX /todosFIX /compactFIX /usageNEW
  • Added history-based autocomplete in bash mode (!) - type a partial command and press Tab to complete from your bash command history
  • Added search to installed plugins list - type to filter by name or description
  • Added support for pinning plugins to specific git commit SHAs, allowing marketplace entries to install exact versions
  • Fixed /feedback command generating invalid GitHub issue URLs when description is very long
  • Fixed /context command to show the same token count and percentage as the status line in verbose mode
  • Fixed an issue where /config, /context, /model, and /todos command overlays could close unexpectedly
  • Fixed slash command autocomplete selecting wrong command when typing similar commands (e.g., /context vs /compact)
  • [VSCode] Added /usage command to display current plan usage
v2.1.122026-01-17—
  • Fixed message rendering bug
v2.1.112026-01-17—
  • Fixed excessive MCP connection requests for HTTP/SSE transports
v2.1.102026-01-17--initNEW --init-onlyNEW --maintenanceNEW
  • Added new Setup hook event that can be triggered via --init, --init-only, or --maintenance CLI flags for repository setup and maintenance operations
  • Added keyboard shortcut 'c' to copy OAuth URL when browser doesn't open automatically during login
  • [VSCode] Added install count display to plugin listings
  • [VSCode] Added trust warning when installing plugins
v2.1.92026-01-16Ctrl+GNEW Ctrl+ZFIX
  • Added auto:N syntax for configuring the MCP tool search auto-enable threshold, where N is the context window percentage (0-100)
  • Added plansDirectory setting to customize where plan files are stored
  • Added external editor support (Ctrl+G) in AskUserQuestion "Other" input field
  • Added session URL attribution to commits and PRs created from web sessions
  • Added support for PreToolUse hooks to return additionalContext to the model
  • Added ${CLAUDE_SESSION_ID} string substitution for skills to access the current session ID
  • Fixed Ctrl+Z suspend not working in terminals using Kitty keyboard protocol (Ghostty, iTerm2, kitty, WezTerm)
v2.1.72026-01-14/modelFIX /themeFIX
  • Added showTurnDuration setting to hide turn duration messages (e.g., "Cooked for 1m 6s")
  • Added ability to provide feedback when accepting permission prompts
  • Added inline display of agent's final response in task notifications, making it easier to see results without reading the full transcript file
  • Fixed spinner briefly flashing when running local slash commands like /model or /theme
  • Enabled MCP tool search auto mode by default for all users. When MCP tool descriptions exceed 10% of the context window, they are automatically deferred and discovered via the MCPSearch tool instead of being loaded upfront. This reduces context usage for users with many MCP tools configured. Users can disable this by adding MCPSearch to disallowedTools in their settings.
  • [VSCode] Fixed claudeProcessWrapper setting passing the wrapper path instead of the Claude binary path
v2.1.62026-01-13/configNEW /doctorNEW /statsNEW Ctrl+GNEW /tasksIMP /mcpDEL
  • Added search functionality to /config command for quickly filtering settings
  • Added Updates section to /doctor showing auto-update channel and available npm versions (stable/latest)
  • Added date range filtering to /stats command - press r to cycle between Last 7 days, Last 30 days, and All time
  • Added automatic discovery of skills from nested .claude/skills directories when working with files in subdirectories
  • Added context_window.used_percentage and context_window.remaining_percentage fields to status line input for easier context window display
  • Added an error display when the editor fails during Ctrl+G
  • Improved the /tasks dialog to go directly to task details when there's only one background task running
  • Updated "Help improve Claude" setting fetch to refresh OAuth and retry when it fails due to a stale OAuth token
  • Removed ability to @-mention MCP servers to enable/disable - use /mcp enable <name> instead
  • [VSCode] Fixed usage indicator not updating after manual compact
v2.1.52026-01-12—
  • Added CLAUDE_CODE_TMPDIR environment variable to override the temp directory used for internal temp files, useful for environments with custom temp directory requirements
v2.1.42026-01-11Ctrl+BNEW
  • Added CLAUDE_CODE_DISABLE_BACKGROUND_TASKS environment variable to disable all background task functionality including auto-backgrounding and the Ctrl+B shortcut
v2.1.32026-01-09/configNEW /doctorNEW /clearFIX
  • Merged slash commands and skills, simplifying the mental model with no change in behavior
  • Added release channel (stable or latest) toggle to /config
  • Added detection and warnings for unreachable permission rules, with warnings in /doctor and after saving rules that include the source of each rule and actionable fix guidance
  • Fixed plan files persisting across /clear commands, now ensuring a fresh plan file is used after clearing a conversation
  • [VSCode] Added clickable destination selector for permission requests, allowing you to choose where settings are saved (this project, all projects, shared with team, or session only)
v2.1.22026-01-09Shift+TNEW --agentNEW /tasksFIX /pluginsIMP
  • Added source path metadata to images dragged onto the terminal, helping Claude understand where images originated
  • Added clickable hyperlinks for file paths in tool output in terminals that support OSC 8 (like iTerm)
  • Added support for Windows Package Manager (winget) installations with automatic detection and update instructions
  • Added Shift+Tab keyboard shortcut in plan mode to quickly select "auto-accept edits" option
  • Added FORCE_AUTOUPDATE_PLUGINS environment variable to allow plugin autoupdate even when the main auto-updater is disabled
  • Added agent_type to SessionStart hook input, populated if --agent is specified
  • Fixed remote session URL and teleport being broken when using /tasks command
  • Changed /plugins installed tab to unify plugins and MCPs with scope-based grouping
  • [SDK] Changed minimum zod peer dependency to ^4.0.0
  • [VSCode] Fixed usage display not updating after manual compact
v2.1.02026-01-07Shift+EIMP --resumeFIX Ctrl+RFIX Ctrl+BNEW /teleportNEW /remote-envNEW --disallowedToolsNEW /planNEW --toolsNEW Ctrl+VNEW Ctrl+ONEW Alt+BFIX Alt+FFIX /pathFIX /contextFIX --model haikuFIX /hooksFIX /skillsIMP /statsIMP
  • Added automatic skill hot-reload - skills created or modified in ~/.claude/skills or .claude/skills are now immediately available without restarting the session
  • Added support for running skills and slash commands in a forked sub-agent context using context: fork in skill frontmatter
  • Added support for agent field in skills to specify agent type for execution
  • Added language setting to configure Claude's response language (e.g., language: "japanese")
  • Changed Shift+Enter to work out of the box in iTerm2, WezTerm, Ghostty, and Kitty without modifying terminal configs
  • Added respectGitignore support in settings.json for per-project control over @-mention file picker behavior
  • Added IS_DEMO environment variable to hide email and organization from the UI, useful for streaming or recording sessions
  • Fixed files and skills not being properly discovered when resuming sessions with -c or --resume
  • Fixed pasted content being lost when replaying prompts from history using up arrow or Ctrl+R search
  • Reduced permission prompts for complex bash commands
  • Added wildcard pattern matching for Bash tool permissions using * at any position in rules (e.g., Bash(npm *), Bash(* install), Bash(git * main))
  • Added unified Ctrl+B backgrounding for both bash commands and agents - pressing Ctrl+B now backgrounds all running foreground tasks simultaneously
  • Added support for MCP list_changed notifications, allowing MCP servers to dynamically update their available tools, prompts, and resources without requiring reconnection
  • Added /teleport and /remote-env slash commands for claude.ai subscribers, allowing them to resume and configure remote sessions
  • Added support for disabling specific agents using Task(AgentName) syntax in settings.json permissions or the --disallowedTools CLI flag
  • Added /plan command shortcut to enable plan mode directly from the prompt
  • Added --tools flag support in interactive mode to restrict which built-in tools Claude can use during interactive sessions
  • Added Cmd+V support for image paste in iTerm2 (maps to Ctrl+V)
  • Added real-time thinking block display in Ctrl+O transcript mode
  • Fixed Alt+B and Alt+F (word navigation) not working in iTerm2, Ghostty, Kitty, and WezTerm
  • Fixed bash command prefix extraction to correctly identify subcommands after global options (e.g., git -C /path log now correctly matches Bash(git log:*) rules)
  • Fixed slash commands passed as CLI arguments (e.g., claude /context) not being executed properly
  • Fixed skill token estimates in /context to accurately reflect frontmatter-only loading
  • Fixed model picker showing incorrect selection for Bedrock/Vertex users using --model haiku
  • Fixed /hooks menu selecting wrong hook type when scrolling to a different option
  • Improved skills from /skills/ directories to be visible in the slash command menu by default (opt-out with user-invocable: false in frontmatter)
  • Improved /stats output
v2.0.762026-01-07—
  • Fixed issue with macOS code-sign warning when using Claude in Chrome integration
v2.0.752025-12-20—
  • Minor bugfixes
v2.0.742025-12-19/terminal-setupNEW /themeNEW ctrl+tNEW /plugins discoverFIX /pluginsFIX /contextIMP
  • Added LSP (Language Server Protocol) tool for code intelligence features like go-to-definition, find references, and hover documentation
  • Added /terminal-setup support for Kitty, Alacritty, Zed, and Warp terminals
  • Added ctrl+t shortcut in /theme to toggle syntax highlighting on/off
  • Added syntax highlighting info to theme picker
  • Added guidance for macOS users when Alt shortcuts fail due to terminal configuration
  • Fixed visual bug in /plugins discover where list selection indicator showed while search box was focused
  • Improved /context command visualization with grouped skills and agents by source, slash commands, and sorted token count
  • [Windows] Fixed issue with improper rendering
  • [VSCode] Added gift tag pictogram for year-end promotion message
v2.0.732025-12-19alt+yNEW ctrl+yNEW --session-idNEW --resumeNEW --continueNEW --fork-sessionNEW /themeIMP
  • Added clickable [Image #N] links that open attached images in the default viewer
  • Added alt-y yank-pop to cycle through kill ring history after ctrl-y yank
  • Added search filtering to the plugin discover screen (type to filter by name, description, or marketplace)
  • Added support for custom session IDs when forking sessions with --session-id combined with --resume or --continue and --fork-session
  • Improved /theme command to open theme picker directly
  • [VSCode] Added tab icon badges showing pending permissions (blue) and unread completions (orange)
v2.0.722025-12-17/contextFIX Ctrl+KFIX Ctrl+YFIX Alt+TIMP
  • Added Claude in Chrome (Beta) feature that works with the Chrome extension (https://claude.ai/chrome) to let you control your browser directly from Claude Code
  • Reduced terminal flickering
  • Added scannable QR code to mobile app tip for quick app downloads
  • Added loading indicator when resuming conversations for better feedback
  • Fixed /context command not respecting custom system prompts in non-interactive mode
  • Fixed order of consecutive Ctrl+K lines when pasting with Ctrl+Y
  • Changed thinking toggle from Tab to Alt+T to avoid accidental triggers
v2.0.712025-12-16/configNEW /settingsNEW --dangerously-skip-permissionsFIX
  • Added /config toggle to enable/disable prompt suggestions
  • Added /settings as an alias for the /config command
  • Fixed MCP servers from .mcp.json not loading when using --dangerously-skip-permissions
  • Bedrock: Environment variable ANTHROPIC_BEDROCK_BASE_URL is now respected for token counting and inference profile listing
  • New syntax highlighting engine for native build
v2.0.702025-12-15Ctrl+SIMP /configFIX
  • Added Enter key to accept and submit prompt suggestions immediately (tab still accepts for editing)
  • Added wildcard syntax mcp__server__* for MCP tool permissions to allow or deny all tools from a server
  • Added auto-update toggle for plugin marketplaces, allowing per-marketplace control over automatic updates
  • Added current_usage field to status line input, enabling accurate context window percentage calculations
  • Improved resolution of stats screenshots copied to clipboard (Ctrl+S) for crisper images
  • Fix thinking mode toggle in /config not persisting correctly
  • Improve UI for file creation permission dialog
v2.0.692025-12-13—
  • Minor bugfixes
v2.0.682025-12-12—
  • Add support for enterprise managed settings. Contact your Anthropic account team to enable this feature.
v2.0.672025-12-11/config /permissionsNEW /doctorIMP
  • Thinking mode is now enabled by default for Opus 4.5
  • Thinking mode configuration has moved to /config
  • Added search functionality to /permissions command with / keyboard shortcut for filtering rules by tool name
  • Show reason why autoupdater is disabled in /doctor
  • Fixed scroll position resetting after deleting a permission rule in /permissions
  • Windows: Fixed plugin MCP servers failing due to colons in log directory paths
v2.0.652025-12-11alt+pNEW
  • Added ability to switch models while writing a prompt using alt+p (linux, windows), option+p (macos).
  • Added context window information to status line input
  • Added fileSuggestion setting for custom @ file search commands
  • Added CLAUDE_CODE_SHELL environment variable to override automatic shell detection (useful when login shell differs from actual working shell)
v2.0.642025-12-10/statsIMP /renameNEW /resume <name>NEW /resumeNEW --resumeNEW --system-promptFIX --continueFIX
  • Made auto-compacting instant
  • Agents and bash commands can run asynchronously and send messages to wake up the main agent
  • /stats now provides users with interesting CC stats, such as favorite model, usage graph, usage streak
  • Added named session support: use /rename to name sessions, /resume <name> in REPL or claude --resume <name> from the terminal to resume them
  • Added support for .claude/rules/`. See https://code.claude.com/docs/en/memory for details.
  • Added image dimension metadata when images are resized, enabling accurate coordinate mappings for large images
  • Fixed --system-prompt being ignored when using --continue or --resume flags
  • Improved /resume screen with grouped forked sessions and keyboard shortcuts for preview (P) and rename (R)
  • VSCode: Added copy-to-clipboard button on code blocks and bash tool inputs
  • VSCode: Fixed extension not working on Windows ARM64 by falling back to x64 binary via emulation
  • Bedrock: Improve efficiency of token counting
  • Bedrock: Add support for aws login AWS Management Console credentials
v2.0.622025-12-09—
  • Added "(Recommended)" indicator for multiple-choice questions, with the recommended option moved to the top of the list
  • Added attribution setting to customize commit and PR bylines (deprecates includeCoAuthoredBy)
v2.0.612025-12-07—
  • Reverted VSCode support for multiple terminal clients due to responsiveness issues.
v2.0.602025-12-05--disable-slash-commandsNEW /mcp
  • Added background agent support. Agents run in the background while you work
  • Added --disable-slash-commands CLI flag to disable all slash commands
  • Added model name to "Co-Authored-By" commit messages
  • Enabled "/mcp enable [server-name]" or "/mcp disable [server-name]" to quickly toggle all servers
  • Updated Fetch to skip summarization for pre-approved websites
  • VSCode: Added support for multiple terminal clients connecting to the IDE server simultaneously
v2.0.592025-12-04--agentNEW
  • Added --agent CLI flag to override the agent setting for the current session
  • Added agent setting to configure main thread with a specific agent's system prompt, tool restrictions, and model
  • VS Code: Fixed .claude.json config file being read from incorrect location
v2.0.582025-12-03—
  • Pro users now have access to Opus 4.5 as part of their subscription!
  • Windows: Managed settings now prefer C:\Program Files\ClaudeCode if it exists. Support for C:\ProgramData\ClaudeCode will be removed in a future version.
v2.0.572025-12-03—
  • Added feedback input when rejecting plans, allowing users to tell Claude what to change
  • VSCode: Added streaming message support for real-time response display
v2.0.562025-12-01—
  • Added setting to enable/disable terminal progress bar (OSC 9;4)
  • VSCode Extension: Added support for VS Code's secondary sidebar (VS Code 1.97+), allowing Claude Code to be displayed in the right sidebar while keeping the file explorer on the left. Requires setting sidebar as Preferred Location in the config.
v2.0.552025-11-26—
  • Fixed proxy DNS resolution being forced on by default. Now opt-in via CLAUDE_CODE_PROXY_RESOLVES_HOSTS=true environment variable
  • Fixed keyboard navigation becoming unresponsive when holding down arrow keys in memory location selector
  • Improved AskUserQuestion tool to auto-submit single-select questions on the last question, eliminating the extra review screen for simple question flows
  • Improved fuzzy matching for @ file suggestions with faster, more accurate results
v2.0.542025-11-25—
  • Hooks: Enable PermissionRequest hooks to process 'always allow' suggestions and apply permission updates
  • Fix issue with excessive iTerm notifications
v2.0.522025-11-24/usageFIX
  • Fixed /usage command progress bars to fill up as usage increases (instead of showing remaining percentage)
  • Permit some uses of $! in bash commands
v2.0.512025-11-24/usageIMP
  • Added Opus 4.5! https://www.anthropic.com/news/claude-opus-4-5
  • Introducing Claude Code for Desktop: https://claude.com/download
  • To give you room to try out our new model, we've updated usage limits for Claude Code users. See the Claude Opus 4.5 blog for full details
  • Pro users can now purchase extra usage for access to Opus 4.5 in Claude Code
  • Plan Mode now builds more precise plans and executes more thoroughly
  • Usage limit notifications now easier to understand
  • Switched /usage back to "% used"
v2.0.502025-11-21—
  • Silenced a noisy but harmless error during upgrades
v2.0.492025-11-21ctrl+yNEW
  • Added readline-style ctrl-y for pasting deleted text
v2.0.472025-11-19/usageIMP
  • Improved error handling in /usage
v2.0.462025-11-19—
  • Fixed image files being reported with incorrect media type when format cannot be detected from metadata
v2.0.452025-11-18—
  • Added support for Microsoft Foundry! See https://code.claude.com/docs/en/azure-ai-foundry
  • Added PermissionRequest hook to automatically approve or deny tool permission requests with custom logic
  • Send background tasks to Claude Code on the web by starting a message with &
v2.0.432025-11-17—
  • Added permissionMode field for custom agents
  • Added tool_use_id field to PreToolUseHookInput and PostToolUseHookInput types
  • Added skills frontmatter field to declare skills to auto-load for subagents
  • Added the SubagentStart hook event
v2.0.422025-11-14—
  • Added agent_id and agent_transcript_path fields to SubagentStop hooks.
v2.0.412025-11-14--model haiku /model ctrl+r
  • Added model parameter to prompt-based stop hooks, allowing users to specify a custom model for hook evaluation
  • Fixed: Bedrock users no longer see duplicate Opus entries in the /model picker when using --model haiku
  • ctrl-r history search landing on a slash command no longer cancels the search
  • SDK: Support custom timeouts for hooks
  • Allow more safe git commands to run without approval
  • Plugins: Added support for sharing and installing output styles
  • Teleporting a session from web will automatically set the upstream branch
v2.0.372025-11-10—
  • Hooks: Added matcher values for Notification hook events
  • Output Styles: Added keep-coding-instructions option to frontmatter
v2.0.362025-11-07—
  • Fixed: DISABLE_AUTOUPDATER environment variable now properly disables package manager update notifications
  • Fixed queued messages being incorrectly executed as bash commands
  • Fixed input being lost when typing while a queued message is processed
v2.0.352025-11-06/hooksFIX
  • Improve fuzzy search results when searching commands
  • Added CLAUDE_CODE_EXIT_AFTER_STOP_DELAY environment variable to automatically exit SDK mode after a specified idle duration, useful for automated workflows and scripts
  • Migrated ignorePatterns from project config to deny permissions in the localSettings.
  • Fixed menu navigation getting stuck on items with empty string or other falsy values (e.g., in the /hooks menu)
v2.0.342025-11-05—
  • VSCode Extension: Added setting to configure the initial permission mode for new conversations
v2.0.332025-11-04—
  • Native binary installs now launch quicker.
v2.0.322025-11-03—
  • Un-deprecate output styles based on community feedback
  • Added companyAnnouncements setting for displaying announcements on startup
v2.0.312025-10-31shift+t alt+m /compactFIX
  • Windows: native installation uses shift+tab as shortcut for mode switching, instead of alt+m
  • Vertex: add support for Web Search on supported models
  • VSCode: Adding the respectGitIgnore configuration to include .gitignored files in file searches (defaults to true)
  • Fixed issue causing /compact to fail with prompt_too_long by making it respect existing compact boundaries
v2.0.302025-10-30/output-styleIMP /contextFIX --mcp-configFIX
  • Added helpful hint to run security unlock-keychain when encountering API key errors on macOS with locked keychain
  • Added allowUnsandboxedCommands sandbox setting to disable the dangerouslyDisableSandbox escape hatch at policy level
  • Added disallowedTools field to custom agent definitions for explicit tool blocking
  • Added prompt-based stop hooks
  • VSCode: Added respectGitIgnore configuration to include .gitignored files in file searches (defaults to true)
  • Enabled SSE MCP servers on native build
  • Deprecated output styles. Review options in /output-style and use --system-prompt-file, --system-prompt, --append-system-prompt, CLAUDE.md, or plugins instead
  • Fixed a bug where /context would sometimes fail with "max_tokens must be greater than thinking.budget_tokens" error message
  • Fixed --mcp-config flag to correctly override file-based MCP configurations
  • VSCode: Restored selection indicator in input footer showing current file or code selection status
v2.0.282025-10-27--max-budget-usdNEW /terminal-setupIMP
  • Plan mode: introduced new Plan subagent
  • Subagents: claude can now choose to resume subagents
  • Subagents: claude can dynamically choose the model used by its subagents
  • SDK: added --max-budget-usd flag
  • Discovery of custom slash commands, subagents, and output styles no longer respects .gitignore
  • Stop /terminal-setup from adding backslash to Shift + Enter in VS Code
  • Add branch and tag support for git-based plugins and marketplaces using fragment syntax (e.g., owner/repo#branch)
  • Various other bug fixes
v2.0.272025-10-24—
  • New UI for permission prompts
  • Added current branch filtering and search to session resume screen for easier navigation
  • VSCode Extension: Add config setting to include .gitignored files in file searches
  • VSCode Extension: Bug fixes for unrelated 'Warmup' conversations, and configuration/settings occasionally being reset to defaults
v2.0.252025-10-21/platformDEL
  • Removed legacy SDK entrypoint. Please migrate to @anthropic-ai/claude-agent-sdk for future SDK updates: https://platform.claude.com/docs/en/agent-sdk/migration-guide
v2.0.242025-10-20—
  • Claude Code Web: Support for Web -> CLI teleport
  • Sandbox: Releasing a sandbox mode for the BashTool on Linux & Mac
  • Bedrock: Display awsAuthRefresh output when auth is required
v2.0.222025-10-17—
  • IDE: Add toggle to enable/disable thinking.
  • Fix bug causing duplicate permission prompts with parallel tool calls
  • Add support for enterprise managed MCP allowlist and denylist
v2.0.212025-10-16—
  • Support MCP structuredContent field in tool responses
  • Added an interactive question tool
  • Claude will now ask you questions more often in plan mode
  • Added Haiku 4.5 as a model option for Pro users
v2.0.202025-10-16—
  • Added support for Claude Skills
v2.0.192025-10-15—
  • Auto-background long-running bash commands instead of killing them. Customize with BASH_DEFAULT_TIMEOUT_MS
v2.0.172025-10-15—
  • Added Haiku 4.5 to model selector!
  • Haiku 4.5 automatically uses Sonnet in plan mode, and Haiku for execution (i.e. SonnetPlan by default)
  • 3P (Bedrock and Vertex) are not automatically upgraded yet. Manual upgrading can be done through setting ANTHROPIC_DEFAULT_HAIKU_MODEL
  • Introducing the Explore subagent. Powered by Haiku it'll search through your codebase efficiently to save context!
  • OTEL: support HTTP_PROXY and HTTPS_PROXY
  • CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC now disables release notes fetching
v2.0.152025-10-14—
  • Fixed bug with resuming where previously created files needed to be read again before writing
  • Fixed bug with -p mode where @-mentioned files needed to be read again before writing
v2.0.142025-10-10—
  • Fix @-mentioning MCP servers to toggle them on/off
  • Improve permission checks for bash with inline env vars
  • Fix ultrathink + thinking toggle
  • Reduce unnecessary logins
  • Document --system-prompt
  • Several improvements to rendering
  • Plugins UI polish
v2.0.132025-10-09/pluginFIX
  • Fixed /plugin not working on native build
v2.0.122025-10-09/plugin install /plugin marketplace /plugin /plugin validate /doctor /modelIMP /help /resumeIMP /configIMP
  • Plugin System Released**: Extend Claude Code with custom commands, agents, hooks, and MCP servers from marketplaces
  • /plugin install, /plugin enable/disable, /plugin marketplace commands for plugin management
  • Repository-level plugin configuration via extraKnownMarketplaces for team collaboration
  • /plugin validate command for validating plugin structure and configuration
  • Plugin announcement blog post at https://www.anthropic.com/news/claude-code-plugins
  • Plugin documentation available at https://code.claude.com/docs/en/plugins
  • Comprehensive error messages and diagnostics via /doctor command
  • Avoid flickering in /model selector
  • Improvements to /help
  • Avoid mentioning hooks in /resume summaries
  • Changes to the "verbose" setting in /config now persist across sessions
v2.0.112025-10-08/add-dirFIX
  • Reduced system prompt size by 1.4k tokens
  • IDE: Fixed keyboard shortcuts and focus issues for smoother interaction
  • Fixed /add-dir command selecting wrong default tab
v2.0.102025-10-07/mcp Ctrl+GNEW
  • Rewrote terminal renderer for buttery smooth UI
  • Enable/disable MCP servers by @mentioning, or in /mcp
  • Added tab completion for shell commands in bash mode
  • PreToolUse hooks can now modify tool inputs
  • Press Ctrl-G to edit your prompt in your system's configured text editor
  • Fixes for bash permission checks with environment variables in the command
v2.0.92025-10-06—
  • Fix regression where bash backgrounding stopped working
v2.0.82025-10-04/context
  • Update Bedrock default Sonnet model to global.anthropic.claude-sonnet-4-5-20250929-v1:0
  • IDE: Add drag-and-drop support for files and folders in chat
  • /context: Fix counting for thinking blocks
  • Improve message rendering for users with light themes on dark terminals
  • Remove deprecated .claude.json allowedTools, ignorePatterns, env, and todoFeatureEnabled config options (instead, configure these in your settings.json)
v2.0.52025-10-02—
  • IDE: Fix IME unintended message submission with Enter and Tab
  • IDE: Add "Open in Terminal" link in login screen
  • Fix unhandled OAuth expiration 401 API errors
  • SDK: Added SDKUserMessageReplay.isReplay to prevent duplicate messages
v2.0.12025-09-30—
  • Skip Sonnet 4.5 default model setting change for Bedrock and Vertex
  • Various bug fixes and presentation improvements
v2.0.02025-09-29/rewind /usage Ctrl+R --agents
  • New native VS Code extension
  • Fresh coat of paint throughout the whole app
  • /rewind a conversation to undo code changes
  • /usage command to see plan limits
  • Tab to toggle thinking (sticky across sessions)
  • Ctrl-R to search history
  • Unshipped claude config command
  • Hooks: Reduced PostToolUse 'tool_use' ids were found without 'tool_result' blocks errors
  • SDK: The Claude Code SDK is now the Claude Agent SDK
  • Add subagents dynamically with --agents flag
v1.0.1262025-09-26/contextIMP
  • Enable /context command for Bedrock and Vertex
  • Add mTLS support for HTTP-based OpenTelemetry exporters
v1.0.1242025-09-25—
  • Set CLAUDE_BASH_NO_LOGIN environment variable to 1 or true to to skip login shell for BashTool
  • Fix Bedrock and Vertex environment variables evaluating all strings as truthy
  • No longer inform Claude of the list of allowed tools when permission is denied
v1.0.1232025-09-23—
  • Bash permission rules now support output redirections when matching (e.g., Bash(python:*) matches python script.py > output.txt)
  • Added SlashCommand tool, which enables Claude to invoke your slash commands. https://code.claude.com/docs/en/slash-commands#SlashCommand-tool
  • Migrated --debug logging to a file, to enable easy tailing & filtering
v1.0.1202025-09-19—
  • Fix input lag during typing, especially noticeable with large prompts
v1.0.1192025-09-18—
  • Fix Windows issue where process visually freezes on entering interactive mode
  • Support dynamic headers for MCP servers via headersHelper configuration
  • Fix thinking mode not working in headless sessions
  • Fix slash commands now properly update allowed tools instead of replacing them
v1.0.1172025-09-16Ctrl+R /add-dir
  • Add Ctrl-R history search to recall previous commands like bash/zsh
  • Fix input lag while typing, especially on Windows
  • Add sed command to auto-allowed commands in acceptEdits mode
  • Fix Windows PATH comparison to be case-insensitive for drive letters
  • Add permissions management hint to /add-dir output
v1.0.1152025-09-16/t
  • Improve thinking mode display with enhanced visual effects
  • Type /t to temporarily disable thinking mode in your prompt
  • Improve path validation for glob and grep tools
  • Show condensed output for post-tool hooks to reduce visual clutter
  • Fix visual feedback when loading state completes
  • Improve UI consistency for permission request dialogs
v1.0.1132025-09-13Ctrl+R Ctrl+O
  • Move Ctrl+R keybinding for toggling transcript to Ctrl+O
v1.0.1122025-09-12Ctrl+R
  • Transcript mode (Ctrl+R): Added the model used to generate each assistant message
  • Addressed issue where some Claude Max users were incorrectly recognized as Claude Pro users
  • Hooks: Added systemMessage support for SessionEnd hooks
  • Added spinnerTipsEnabled setting to disable spinner tips
  • IDE: Various improvements and bug fixes
v1.0.1112025-09-10/modelIMP
  • /model now validates provided model names
v1.0.1102025-09-09/terminal-setupIMP
  • /terminal-setup command now supports WezTerm
  • MCP: OAuth tokens now proactively refresh before expiration
v1.0.1092025-09-08--include-partial-messagesNEW
  • SDK: Added partial message streaming support via --include-partial-messages CLI flag
v1.0.1062025-09-04—
  • Windows: Fixed path permission matching to consistently use POSIX format (e.g., Read(//c/Users/...))
v1.0.97—/doctorIMP
  • Settings: /doctor now validates permission rule syntax and suggests corrections
v1.0.942025-08-27/memoryIMP /todosNEW
  • Vertex: add support for global endpoints for supported models
  • /memory command now allows direct editing of all imported memory files
  • SDK: Add custom tools as callbacks
  • Added /todos command to list current todo items
v1.0.932025-08-26—
  • Windows: Add alt + v shortcut for pasting images from clipboard
  • Support NO_PROXY environment variable to bypass proxy for specified hostnames and IPs
v1.0.902025-08-24—
  • Settings file changes take effect immediately - no restart required
v1.0.882025-08-22/costFIX
  • Status line input now includes exceeds_200k_tokens
  • Fixed incorrect usage tracking in /cost.
  • Introduced ANTHROPIC_DEFAULT_SONNET_MODEL and ANTHROPIC_DEFAULT_OPUS_MODEL for controlling model aliases opusplan, opus, and sonnet.
  • Bedrock: Updated default Sonnet model to Sonnet 4
v1.0.862025-08-20/contextNEW --replay-user-messagesNEW
  • Added /context to help users self-serve debug context issues
  • SDK: Added UUID support for all SDK messages
  • SDK: Added --replay-user-messages to replay user messages back to stdout
v1.0.852025-08-19—
  • Status line input now includes session cost info
  • Hooks: Introduced SessionEnd hook
v1.0.842025-08-18—
  • Fix tool_use/tool_result id mismatch error when network is unstable
  • Fix Claude sometimes ignoring real-time steering when wrapping up a task
  • @-mention: Add ~/.claude/\* files to suggestions for easier agent, output style, and slash command editing
  • Use built-in ripgrep by default; to opt out of this behavior, set USE_BUILTIN_RIPGREP=0
v1.0.832025-08-15—
  • @-mention: Support files with spaces in path
  • New shimmering spinner
v1.0.822025-08-15—
  • SDK: Add request cancellation support
  • SDK: New additionalDirectories option to search custom paths, improved slash command processing
  • Settings: Validation prevents invalid fields in .claude/settings.json files
  • MCP: Improve tool name consistency
  • Bash: Fix crash when Claude tries to automatically read large files
v1.0.812025-08-14—
  • Released output styles, including new built-in educational output styles "Explanatory" and "Learning". Docs: https://code.claude.com/docs/en/output-styles
  • Agents: Fix custom agent loading when agent files are unparsable
v1.0.802025-08-13—
  • UI improvements: Fix text contrast for custom subagent colors and spinner rendering issues
v1.0.772025-08-12/model
  • Bash tool: Fix heredoc and multiline string escaping, improve stderr redirection handling
  • SDK: Add session support and permission denial tracking
  • Fix token limit errors in conversation summarization
  • Opus Plan Mode: New setting in /model to run Opus only in plan mode, Sonnet otherwise
v1.0.732025-08-11—
  • MCP: Support multiple config files with --mcp-config file1.json file2.json
  • MCP: Press Esc to cancel OAuth authentication flows
  • Bash: Improved command validation and reduced false security warnings
  • UI: Enhanced spinner animations and status line visual hierarchy
  • Linux: Added support for Alpine and musl-based distributions (requires separate ripgrep installation)
v1.0.722025-08-08/permissions
  • Ask permissions: have Claude Code always ask for confirmation to use specific tools with /permissions
v1.0.712025-08-07Ctrl+b /statusline
  • Background commands: (Ctrl-b) to run any Bash command in the background so Claude can keep working (great for dev servers, tailing logs, etc.)
  • Customizable status line: add your terminal prompt to Claude Code with /statusline
v1.0.702025-08-06—
  • Performance: Optimized message rendering for better performance with large contexts
  • Windows: Fixed native file search, ripgrep, and subagent functionality
  • Added support for @-mentions in slash command arguments
v1.0.692025-08-05—
  • Upgraded Opus to version 4.1
v1.0.682025-08-04/pr-commentsFIX /doctorIMP
  • Fix incorrect model names being used for certain commands like /pr-comments
  • Windows: improve permissions checks for allow / deny tools and project trust. This may create a new project entry in .claude.json - manually merge the history field if desired.
  • Windows: improve sub-process spawning to eliminate "No such file or directory" when running commands like pnpm
  • Enhanced /doctor command with CLAUDE.md and MCP tool context for self-serve debugging
  • SDK: Added canUseTool callback support for tool confirmation
  • Added disableAllHooks setting
v1.0.652025-07-31—
  • IDE: Fixed connection stability issues and error handling for diagnostics
  • Windows: Fixed shell environment setup for users without .bashrc files
v1.0.642025-07-30—
  • Agents: Added model customization support - you can now specify which model an agent should use
  • Agents: Fixed unintended access to the recursive agent tool
  • Hooks: Added systemMessage field to hook JSON output for displaying warnings and context
  • SDK: Fixed user input tracking across multi-turn conversations
  • Added hidden files to file search and @-mention suggestions
v1.0.632025-07-29—
  • Windows: Fixed file search, @agent mentions, and custom slash commands functionality
v1.0.622025-07-28/add-dirIMP
  • Added @-mention support with typeahead for custom agents. @<your-custom-agent> to invoke it
  • Hooks: Added SessionStart hook for new session initialization
  • /add-dir command now supports typeahead for directory paths
v1.0.612025-07-25Ctrl+R --settingsNEW
  • Transcript mode (Ctrl+R): Changed Esc to exit transcript mode rather than interrupt
  • Settings: Added --settings flag to load settings from a JSON file
  • Settings: Fixed resolution of settings files paths that are symlinks
  • OTEL: Fixed reporting of wrong organization after authentication changes
  • Slash commands: Fixed permissions checking for allowed-tools with Bash
  • IDE: Added support for pasting images in VSCode MacOS using ⌘+V
  • IDE: Added CLAUDE_CODE_AUTO_CONNECT_IDE=false for disabling IDE auto-connection
  • Added CLAUDE_CODE_SHELL_PREFIX for wrapping Claude and user-provided shell commands run by Claude Code
v1.0.602025-07-24/agentsNEW
  • You can now create custom subagents for specialized tasks! Run /agents to get started
v1.0.592025-07-23—
  • SDK: Added tool confirmation support with canUseTool callback
  • SDK: Allow specifying env for spawned process
  • Hooks: Exposed PermissionDecision to hooks (including "ask")
  • Hooks: UserPromptSubmit now supports additionalContext in advanced JSON output
v1.0.582025-07-22—
  • Added support for reading PDFs
  • MCP: Improved server health status display in 'claude mcp list'
  • Hooks: Added CLAUDE_PROJECT_DIR env var for hook commands
v1.0.572025-07-21—
  • Added support for specifying a model in slash commands
  • Fix: Remove trailing newlines from bash output in terminal wrapping
v1.0.562025-07-18shift+t
  • Windows: Enabled shift+tab for mode switching on versions of Node.js that support terminal VT mode
  • Fixes for WSL IDE detection
  • Fix an issue causing awsRefreshHelper changes to .aws directory not to be picked up
v1.0.552025-07-17Ctrl+ZFIX
  • Clarified knowledge cutoff for Opus 4 and Sonnet 4 models
  • Windows: fixed Ctrl+Z crash
  • SDK: Added ability to capture error logging
  • Add --system-prompt-file option to override system prompt in print mode
v1.0.542025-07-16—
  • Hooks: Added UserPromptSubmit hook and the current working directory to hook inputs
  • Custom slash commands: Added argument-hint to frontmatter
  • Windows: OAuth uses port 45454 and properly constructs browser URL
  • Windows: mode switching now uses alt + m, and plan mode renders properly
  • Shell: Switch to in-memory shell snapshot to fix file-related errors
v1.0.532025-07-15—
  • Updated @-mention file truncation from 100 lines to 2000 lines
  • Add helper script settings for AWS token refresh: awsAuthRefresh (for foreground operations like aws sso login) and awsCredentialExport (for background operation with STS-like response).
v1.0.522025-07-15—
  • Added support for MCP server instructions
v1.0.512025-07-11/doctorIMP --append-system-promptIMP
  • Added support for native Windows (requires Git for Windows)
  • Added support for Bedrock API keys through environment variable AWS_BEARER_TOKEN_BEDROCK
  • Settings: /doctor can now help you identify and fix invalid setting files
  • --append-system-prompt can now be used in interactive mode, not just --print/-p.
  • Increased auto-compact warning threshold from 60% to 80%
  • OTEL resource now includes os.type, os.version, host.arch, and wsl.version (if running on Windows Subsystem for Linux)
  • Custom slash commands: Fixed user-level commands in subdirectories
  • Plan mode: Fixed issue where rejected plan from sub-task would get discarded
v1.0.482025-07-10—
  • Added progress messages to Bash tool based on the last 5 lines of command output
  • Added expanding variables support for MCP server configuration
  • Moved shell snapshots from /tmp to ~/.claude for more reliable Bash tool calls
  • Hooks: Added a PreCompact hook
  • Vim mode: Added c, f/F, t/T
v1.0.452025-07-08Ctrl+UIMP /clearIMP
  • Redesigned Search (Grep) tool with new tool input parameters and features
  • Disabled IDE diffs for notebook files, fixing "Timeout waiting after 1000ms" error
  • Updated prompt input undo to Ctrl+\_ to avoid breaking existing Ctrl+U behavior, matching zsh's undo shortcut
  • Stop Hooks: Fixed transcript path after /clear and fixed triggering when loop ends with tool call
  • Custom slash commands: Restored namespacing in command names based on subdirectories. For example, .claude/commands/frontend/component.md is now /frontend:component, not /component.
v1.0.442025-07-07/exportNEW /mcpIMP Ctrl+ZIMP Ctrl+UIMP
  • New /export command lets you quickly export a conversation for sharing
  • MCP: resource_link tool results are now supported
  • MCP: tool annotations and tool titles now display in /mcp view
  • Changed Ctrl+Z to suspend Claude Code. Resume by running fg. Prompt input undo is now Ctrl+U.
v1.0.432025-07-03—
  • Hooks: Added EPIPE system error handling
v1.0.422025-07-03/add-dirNEW
  • Added tilde (~) expansion support to /add-dir command
v1.0.412025-07-02—
  • Hooks: Split Stop hook triggering into Stop and SubagentStop
  • Hooks: Enabled optional timeout configuration for each command
  • Hooks: Added "hook_event_name" to hook input
  • New tool parameters JSON for Bash tool in tool_decision event
v1.0.402025-07-01—
  • Fixed a bug causing API connection errors with UNABLE_TO_GET_ISSUER_CERT_LOCALLY if NODE_EXTRA_CA_CERTS was set
v1.0.392025-07-01—
  • New Active Time metric in OpenTelemetry logging
v1.0.382025-06-30/github
  • Released hooks. Special thanks to community input in https://github.com/anthropics/claude-code/issues/712. Docs: https://code.claude.com/docs/en/hooks
v1.0.372025-06-27—
  • Remove ability to set Proxy-Authorization header via ANTHROPIC_AUTH_TOKEN or apiKeyHelper
v1.0.362025-06-27—
  • Web search now takes today's date into context
v1.0.352025-06-25—
  • Added support for MCP OAuth Authorization Server discovery
v1.0.342025-06-24—
  • Fixed a memory leak causing a MaxListenersExceededWarning message to appear
v1.0.332025-06-23Ctrl+ZNEW
  • Added prompt input undo functionality (Ctrl+Z and vim 'u' command)
  • Improvements to plan mode
v1.0.322025-06-23—
  • Updated loopback config for litellm
  • Added forceLoginMethod setting to bypass login selection screen
v1.0.312025-06-20—
  • Fixed a bug where ~/.claude.json would get reset when file contained invalid JSON
v1.0.302025-06-19Ctrl+rNEW Ctrl+cNEW
  • Custom slash commands: Run bash output, @-mention files, enable thinking with thinking keywords
  • Added timestamps in Ctrl-r mode and fixed Ctrl-c handling
v1.0.292025-06-18—
  • Improved CJK character support in cursor navigation and rendering
v1.0.282025-06-18—
  • Slash commands: Fix selector display during history navigation
  • Resizes images before upload to prevent API size limit errors
  • Added XDG_CONFIG_HOME support to configuration directory
  • Performance optimizations for memory usage
  • New attributes (terminal.type, language) in OpenTelemetry logging
v1.0.272025-06-17/resume
  • Streamable HTTP MCP servers are now supported
  • Remote MCP servers (SSE and HTTP) now support OAuth
  • MCP resources can now be @-mentioned
  • /resume slash command to switch conversations within Claude Code
v1.0.252025-06-16—
  • Slash commands: moved "project" and "user" prefixes to descriptions
  • Slash commands: improved reliability for command discovery
v1.0.242025-06-14/mcpIMP
  • Improved /mcp output
v1.0.232025-06-13—
  • Released TypeScript SDK: import @anthropic-ai/claude-code to get started
  • Released Python SDK: pip install claude-code-sdk to get started
v1.0.222025-06-12—
  • SDK: Renamed total_cost to total_cost_usd
v1.0.212025-06-11—
  • Fix for tool_use without matching tool_result errors
v1.0.182025-06-09--add-dirNEW /mcpNEW
  • Added --add-dir CLI argument for specifying additional working directories
  • Added streaming input support without require -p flag
  • Added CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR environment variable to freeze working directory for bash commands
  • Added detailed MCP server tools display (/mcp)
  • MCP authentication and permission improvements
  • Added auto-reconnection for MCP SSE connections on disconnect
v1.0.172025-06-06—
  • We now emit messages from sub-tasks in -p mode (look for the parent_tool_use_id property)
  • MCP server list UI improvements
  • Update Claude Code process title to display "claude" instead of "node"
v1.0.112025-06-04/upgradeNEW
  • Claude Code can now also be used with a Claude Pro subscription
  • Added /upgrade for smoother switching to Claude Max plans
v1.0.102025-06-03—
  • Added markdown table support
v1.0.82025-06-02—
  • Increased default otel interval from 1s -> 5s
  • Added support for triggering thinking non-English languages
v1.0.72025-05-30/allowed-toolsIMP /permissionsIMP /install-github-appIMP
  • Renamed /allowed-tools -> /permissions
  • Migrated allowedTools and ignorePatterns from .claude.json -> settings.json
  • Improved error handling for /install-github-app
  • Bugfixes, UI polish, and tool reliability improvements
v1.0.62025-05-29—
  • Respect CLAUDE_CONFIG_DIR everywhere
  • Reduced unnecessary tool permission prompts
  • Added support for symlinks in @file typeahead
  • Bugfixes, UI polish, and tool reliability improvements
v1.0.42025-05-28—
  • Fixed a bug where MCP tool errors weren't being parsed correctly
v1.0.12025-05-22—
  • Added DISABLE_INTERLEAVED_THINKING to give users the option to opt out of interleaved thinking.
  • Updated documentation links and OAuth process descriptions
v1.0.02025-05-22—
  • Claude Code is now generally available
  • Introducing Sonnet 4 and Opus 4 models
v0.2.1252025-05-21—
  • Breaking change: Bedrock ARN passed to ANTHROPIC_MODEL or ANTHROPIC_SMALL_FAST_MODEL should no longer contain an escaped slash (specify / instead of %2F)
  • Removed DEBUG=true in favor of ANTHROPIC_LOG=debug, to log all requests
v0.2.1172025-05-17--debugNEW
  • Introduced settings.cleanupPeriodDays
  • Introduced CLAUDE_CODE_API_KEY_HELPER_TTL_MS env var
  • Introduced --debug mode
v0.2.1082025-05-13/costFIX
  • You can now send messages to Claude while it works to steer Claude in real-time
  • Introduced BASH_DEFAULT_TIMEOUT_MS and BASH_MAX_TIMEOUT_MS env vars
  • Fixed a regression in /cost reporting
v0.2.1072025-05-09—
  • CLAUDE.md files can now import other files. Add @path/to/file.md to ./CLAUDE.md to load additional files on launch
v0.2.1062025-05-09—
  • MCP SSE server configs can now specify custom headers
v0.2.1052025-05-08/statusIMP
  • Claude can now search the web
  • Moved system & account status to /status
  • Added word movement keybindings for Vim
v0.2.1022025-05-05—
  • You can now paste multiple large chunks into one prompt
v0.2.1002025-05-02—
  • Made db storage optional; missing db support disables --continue and --resume
v0.2.982025-05-01—
  • Fixed an issue where auto-compact was running twice
v0.2.962025-05-01—
  • Claude Code can now also be used with a Claude Max subscription (https://claude.ai/upgrade)
v0.2.932025-04-30--continueNEW --resumeNEW
  • Resume conversations from where you left off from with "claude --continue" and "claude --resume"
  • Claude now has access to a Todo list that helps it stay on track and be more organized
v0.2.82—--disallowedToolsNEW
  • Added support for --disallowedTools
  • Renamed tools for consistency: LSTool -> LS, View -> Read, etc.
v0.2.75—--mcp-configNEW
  • Hit Enter to queue up additional messages while Claude is working
  • Drag in or copy/paste image files directly into the prompt
  • @-mention files to directly add them to context
  • Run one-off MCP servers with claude --mcp-config <path-to-file>
v0.2.742025-04-18—
  • Added support for refreshing dynamically generated API keys (via apiKeyHelper), with a 5 minute TTL
  • Task tool can now perform writes and run bash commands
v0.2.722025-04-17—
  • Updated spinner to indicate tokens loaded and tool usage
v0.2.702025-04-15—
  • Network commands like curl are now available for Claude to use
  • Claude can now run multiple web queries in parallel
  • Pressing ESC once immediately interrupts Claude in Auto-accept mode
v0.2.692025-04-11—
  • Fixed UI glitches with improved Select component behavior
  • Enhanced terminal output display with better text truncation logic
v0.2.672025-04-09—
  • Shared project permission rules can be saved in .claude/settings.json
v0.2.662025-04-09--output-formatNEW
  • Print mode (-p) now supports streaming output via --output-format=stream-json
v0.2.63——
  • Fixed an issue where MCP tools were loaded twice, which caused tool call errors
v0.2.612025-04-03Ctrl+nNEW
  • Navigate menus with vim-style keys (j/k) or bash/emacs shortcuts (Ctrl+n/p) for faster interaction
v0.2.592025-04-02—
  • Copy+paste images directly into your prompt
  • Bugfixes for non-interactive mode (-p)
v0.2.542025-03-25ctrl+rNEW
  • Quickly add to Memory by starting your message with '#'
  • Press ctrl+r to see full output for long tool results
  • Added support for MCP SSE transport
v0.2.532025-03-21—
  • New web fetch tool lets Claude view URLs that you paste in
v0.2.502025-03-19—
  • New MCP "project" scope now allows you to add MCP servers to .mcp.json files and commit them to your repository
v0.2.492025-03-18—
  • Previous MCP server scopes have been renamed: previous "project" scope is now "local" and "global" scope is now "user"
v0.2.472025-03-18/config
  • Press Tab to auto-complete file and folder names
  • Press Shift + Tab to toggle auto-accept for file edits
  • Automatic conversation compaction for infinite conversation length (toggle with /config)
v0.2.442025-03-15—
  • Ask Claude to make a plan with thinking mode: just say 'think' or 'think harder' or even 'ultrathink'
v0.2.412025-03-14—
  • MCP server startup timeout can now be configured via MCP_TIMEOUT environment variable
  • MCP server startup no longer blocks the app from starting up
v0.2.372025-03-11/release-notesNEW
  • New /release-notes command lets you view release notes at any time
  • claude config add/remove commands now accept multiple values separated by commas or spaces
v0.2.362025-03-10—
  • Import MCP servers from Claude Desktop with claude mcp add-from-claude-desktop
  • Add MCP servers as JSON strings with claude mcp add-json <n> <json>
v0.2.342025-03-08/vimNEW /configNEW
  • Vim bindings for text input - enable with /vim or /config
v0.2.322025-03-05—
  • Interactive MCP setup wizard: Run "claude mcp add" to add MCP servers with a step-by-step interface
  • Fix for some PersistentShell issues
v0.2.312025-03-05—
  • Custom slash commands: Markdown files in .claude/commands/ directories now appear as custom slash commands to insert prompts into your conversation
  • MCP debug mode: Run with --mcp-debug flag to get more information about MCP server errors
v0.2.302025-03-04—
  • Added ANSI color theme for better terminal compatibility
  • (Mac-only) API keys are now stored in macOS Keychain
v0.2.26—/approved-toolsNEW
  • New /approved-tools command for managing tool permissions
  • Word-level diff display for improved code readability
  • Fuzzy matching for slash commands
v0.2.21—/commands
  • Fuzzy matching for /commands