Release notes

FEATURE

Launch Desktop App Directly from Terminal to Resume Existing Sessions

If you want to switch to a windowed interface in the middle of working on the command line, you can now do so with a single command. When using Claude Code in the terminal, entering claude --desktop launches the desktop application directly in the current directory. If you want to continue a session you were just having, simply add --continue or specify an ID with --resume <id>, and the system brings the entire existing conversation into the window.

FEATURE

Preconfigure Plugins on Install for Ready-to-Use MCP Servers

Having to manually hunt through menus to fill in parameters after installing an extension plugin often interrupts your workflow. You can now use the claude plugin configure <plugin-name> command to directly view all configuration items and unfilled fields for that plugin, or pass values all at once from standard input using --values-stdin. When installing plugins that package MCP servers, you can pass parameters directly after claude plugin install --config with <server>.<key>=<value>. Previously, if a plugin's built-in server was missing configuration, the system would often silently skip running it; now, both install prompts and the plugin list will proactively remind you to configure it.

FEATURE

Stricter Plugin Identification with Clearer SSH and Marketplace URL Validation

Subtle name differences when managing community plugins could cause installations or toggles to affect the wrong plugin. Downloading plugins or marketplace listings over SSH previously ignored the programs specified by the GIT_SSH environment variable and the Git config core.sshCommand, but they are now applied. If two plugin identifiers differ only by ., -, or @, or only by casing on macOS and Windows, installation previously risked misusing an installed plugin's cache or data directory; installation is now rejected. Enabling or disabling plugins using the full name@marketplace identifier will also no longer modify settings for a differently cased variant. Git URLs for plugins, marketplaces, and the current repository remotes undergo more thorough checks, and the interface explains the reason when a marketplace URL is rejected.

FEATURE

Centralized Enterprise Policy Controls Block Project Overrides of Security Sandboxes

When a company needs to restrict which API providers Claude Code can use, administrators can specify the scope in managed settings using allowedProviders. Project settings cannot relax or disable admin-mandated sandboxes, replace proxy servers protected by managed blocklists, expand strict allowlists, or reopen files barred from reading. Sessions authenticated to the Anthropic API via ANTHROPIC_AUTH_TOKEN now load organization policies. Team, Enterprise, and sessions with unresolvable subscription tiers pause WebFetch if policies fail to load at startup. If the operating system denies read access to managed configuration files, Claude Code warns and starts without policies from that file; other read errors or unparseable files will halt the session.

FEATURE

Support Disabling Web Fetch and Clarify URL Security Check Errors

When you do not want Claude Code to fetch web data on its own, you can disable WebFetch using the CLAUDE_CODE_DISABLE_WEB_FETCH environment variable. Error messages for URL security checks have also been corrected: previously, when domain checks hit rate limits, they could be misreported as network issues or enterprise policy blocks; now, rate limiting is accurately displayed.

FEATURE

Subagents Fully Inherit Parent Permissions and Streamline Background Reporting

When using subagents to assist with tasks, managing results and permissions is now easier. Running claude -p with CLAUDE_CODE_FORK_SUBAGENT=1 executes further Agent calls from subagents in the foreground, allowing them to capture results from nested agents. With claude -p --permission-prompt-tool, permission requests from background subagents are routed to the specified prompt tool instead of being automatically rejected. Forked subagents inherit the parent's permission mode in the session, including plan mode and dontAsk, and cannot exit plan mode on their own. In auto mode, background subagents no longer prompt for a second turn after reporting, and subagents finish immediately once returning reports to their callers.

FEATURE

Auto Mode Expands to Third-Party Providers with Streamlined Command Defaults

If you connect other model providers or disable telemetry, you will now also receive a one-time prompt to switch permissions. This prompt appears when the user is configured in other modes, offering auto mode as an optional new default. Running claude -p or Python Agent SDK sessions in these environments without a specified permission mode will start directly in auto mode just like interactive sessions, which can still be overridden using --permission-mode.

FEATURE

Enforce Background Command Timeouts and Improve Session Management

Background Bash or PowerShell commands now stop after a 30-minute default timeout, configurable up to 2 hours, and Claude receives a notification if a command halts due to timeout. /tasks groups Claude Code's own background work under a "System tasks" row that expands when pressing Enter. Background sessions can now be opened with /resume or claude --resume, and accompanying text is submitted as the next conversation turn only when using claude --resume <id> "prompt". Background sessions and sessions launched by Claude Code tools cannot enable auto-memory, though it can still be turned off. Responding to a background session awaiting permissions from claude agents will also avoid accidentally approving pending commands.

FEATURE

Reliable Remote Control Messaging and Mid-Turn Visibility for Side Questions

When sending messages and attachments from other devices via remote control, file downloads that fail due to network errors, timeouts, or server errors are now retried up to twice. Queued messages are marked as read only when Claude starts processing them; if the terminal closes early, unprocessed messages are delivered upon resuming the session next time. In sessions hosted by applications such as Claude Desktop, asking side questions with /btw now shows the turn currently in progress instead of only the previous turn. Remote control clients are also prohibited from running /claude-api.

FEATURE

Identify Hostnames for Chrome Connections with Clearer Configuration Guidance

Managing browser automation across computers is now easier to identify. The local client proactively reports its computer hostname to the browser, replacing generic numeric labels when multiple devices connect. Entering /config chrome=true in the terminal guides you to open the settings panel to complete configuration, while entering chrome=false disables the connection directly. Additionally, documentation for remote control clarifies default flag behavior: remote spawned sessions do not enable browser control by default unless started with the explicit --chrome flag.

BUGFIX

Cloud Sessions Receive Full Fixes, Smoothing Environment Loading and Tool Caching

When resuming a compacted conversation in the cloud, you can now update artifact files previously read or published during that session. Creating cloud sessions or running /remote-env is no longer restricted to viewing only the 20 most recent environments. If MCP_DISCOVERY_CACHE=1 is set in cloud environment variables, restarts reuse the connector tool list, while other MCP servers are no longer cached and connect upon startup. Brief delays on opening responses and false warnings about missing upload folders before files are uploaded have also been resolved. When clicking "Run now" on a schedule and getting rejected before startup, the screen displays the same explanation found in schedule failure notifications rather than exposing raw internal error text.

BUGFIX

MCP CLI Output Filters Escape Characters and Safely Conceals Plugin Values

When managing MCP servers in the terminal, newlines and terminal escape characters within names or configuration values no longer scramble the output of claude mcp list and claude mcp get, nor do they garble not-found error messages for remove, login, and logout. Running claude mcp list now displays URLs and connection states for WebSocket servers. If type is omitted in stdio server configurations, claude mcp get still displays Type, Command, Args, and Environment. For stdio servers provided by plugins, commands, arguments, and environment variable values are concealed, revealing only variable names.

FEATURE

MCP Tool Removal Takes Immediate Effect with Accurate Lazy Loading

In SDK or -p sessions, if an MCP server is added mid-session and subsequently closed, its associated tools are now removed immediately rather than lingering for the model to use. If a tool sets _meta['anthropic/alwaysLoad'] to false, it still lazy-loads even if its parent --mcp-config, Agent SDK, or plugin server is configured with alwaysLoad. Cloud sessions and self-hosted runners also reserve widgets and related names like widgets_ for system use, requiring custom servers using those names to be renamed before loading.

FEATURE

Artifact Publishing Streamlines into One Step with Rewind Overwrite Protection

When asking AI to write documents, web pages, or generate display artifacts, creation and publishing are now faster and more secure. When editing or creating pages, the system proactively suggests publishing in the same step and streamlines subsequent prompt text to save tokens. To prevent file contents from being accidentally overwritten, the system forces a re-read of the latest source file before allowing publication whenever a prior read was interrupted, the file changed externally, or the user rewound the conversation by double-pressing Esc. A bug where transient server retries misidentified successful publications as session conflicts has also been resolved.

BUGFIX

Closing Artifact Items Preserves Links and Controls External File Publishing

Permission safeguards and version associations are now more reliable when managing lists of generated display artifacts. Clicking the close icon on an individual entry in the /artifacts popover no longer disassociates the source file from the artifact, ensuring that publishing the same file again properly updates its version instead of creating a duplicate. Even if permission prompts were bypassed beforehand, the system still asks for confirmation if an artifact file resides outside the working directory, unless that directory was explicitly allowlisted via --add-dir. Furthermore, reading artifacts created by others or uploaded resources in auto mode strictly enforces security reviews without skipping checks just because approval was granted in another mode.

FEATURE

Ultrareview Supports Partial Clone Snapshots and Requires Git 2.31 or Later

Uploading a local repository with /ultrareview on macOS or Linux now requires Git 2.31 or later. Projects using partial clones upload as worktree snapshots when meeting the version requirement rather than falling back to legacy methods. Older Git versions encountering partial clones missing worktree files reject the upload with an explanation instead of fetching missing files first, while repositories cloned without --filter can still upload. Symbolic references are excluded during uploads. If the current branch is a symbolic reference, the upload is rejected with an explanation; repositories that separate their Git directory via --separate-git-dir are also rejected instead of being uploaded with the older method.

BUGFIX

Ultrareview Fixes Cross-Platform Uploads and Bolsters Sensitive Credential Protection

Several special filenames and paths no longer cause errors when uploading repositories using /ultrareview. On WSL Linux volumes, modified filenames containing colons or ending with dots or spaces no longer trigger upload rejections. Slow uploads caused by certain special filenames on macOS and Linux have been resolved, and credential file checks no longer overlook files or directories containing multiple backup or editor markers. Uncommitted changes to credential files with colons before extensions, such as server:8443.key, are no longer mistakenly included in uploads. False core.worktree is set errors when project folders are temporarily unreadable, upload failures on macOS and Linux when Git worktrees configure core.longpaths, and erroneous uploads of linked worktrees when repositories reside in user profile folders on Windows have all been fixed.

FEATURE

Code Review Workflow Relaxes Constraints as GitHub Organization Lists Add Infinite Scroll

GitHub integration and rule application feedback are clearer when configuring automated pull request fixes or scheduled reviews. Code reviews and /ultrareview still run even with disableWorkflows enabled, unless the machine executing the review was configured with this key by an administrator. In the "Add repository" dialog, the organization list now supports scrolling down to load more entries instead of only showing the initial few. When custom project REVIEW.md rules cannot be applied because a pull request is too large or REVIEW.md is a symlink, the check report proactively adds an explanatory note. In addition, /autofix-pr and /schedule no longer falsely report that the GitHub App is not installed for repositories with in-progress status checks.

FEATURE

API Requests Share Retry Quotas as Non-Streaming Fallbacks Send Periodic Keepalives

When unstable network conditions cause repeated streaming failures, requests switch to a non-streaming fallback. Previously, fallbacks maintained a separate retry pool that could re-send the same request up to 21 times, but they now share retry counts with the original request. The environment variable CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES can limit retries when fallback requests time out. If an API output content filter blocks a response, the screen immediately displays the error instead of endlessly retrying for minutes. When partial messages are enabled, non-streaming fallbacks across the Anthropic API, Claude Platform on AWS, and gateways emit a ping event every 30 seconds.

FEATURE

Cloud Models Support Same-Tier Automatic Downgrades and Cache Startup States for a Day

When using Claude Code via Bedrock or Vertex AI, if an administrator removes access to the default model, sessions, conversation titles, and summaries automatically fall back to an older available model in the same tier instead of failing outright. Startup checks for both platforms also remember inaccessible models for up to a day, avoiding repeated lookups on every launch. Startup checks for Bedrock, Vertex AI, and Mantle attach headers consistent with standard requests and identify the traffic as originating from Claude Code. When using non-default ports, Bedrock, Mantle, and Claude Platform on AWS include the port in the signed Host header. If Bedrock streaming encounters model timeouts or service unavailability, the screen displays a clean error message rather than a raw JSON dump.

BUGFIX

Custom Servers Enable Million-Token Context, Mid-Session Model Switches Apply Limits Instantly

When connecting through a custom ANTHROPIC_BASE_URL, models supporting million-token context—such as Opus 4.7 and above, Sonnet 5 and above, and Fable—now use a 1M context window. If a gateway only supports 200K, you can run /autocompact 200k to adjust the compression threshold. When switching models mid-session via a set_model request, such as setModel in the Agent SDK, the new model's output token limits and automatic compact window take effect immediately. If the server responds with a rejection using an unexpected fallback model, /cost and the SDK's modelUsage attribute the usage to the model that actually responded.

FEATURE

Long Conversations Stay Responsive Without Minor Stutter, Expanding and Exiting History Runs Smoother

Terminal interactions remain responsive even when conversations accumulate numerous file searches and code modifications. In long conversations, the occasional one-second stutter in non-fullscreen mode has been fixed and no longer recurs after running /clear or compacting history. Per-turn computational performance is improved when configuring large numbers of permission denial rules and external tools. In fullscreen mode, pressing Ctrl+O to open a history containing hundreds of file reads or searches no longer freezes the screen momentarily, and exiting history in non-fullscreen mode is also smoother. Tools that are still running when history opens append their results in real time upon completion. Additionally, HTML whitespace entities used in table indentation render properly as spaces instead of printing raw entity strings on screen.

BUGFIX

URL Passwords Masked Reliably, Malformed History Records Fixed

When viewing logs or transcripts, URL passwords containing @ or encoded as %40 are now fully masked without exposing partial or full passwords. After editing in an external editor via Ctrl+G in Vim mode, returning to NORMAL mode and pressing x or r will not corrupt paste markers at the end of the prompt text. Saved session transcripts containing missing fields or malformed compact markers and resurrection entries will no longer fail compaction or session resumption, drop history, or crash outright.

BUGFIX

Hooks No Longer Hang on Background Subprocesses, Cancellation Intercepts Commands Promptly

When extending workflows via hooks, if a background process launched by a synchronous hook keeps its output pipe open, Claude Code now proceeds shortly after the hook itself exits instead of waiting indefinitely. Commands or hooks canceled while preparing to launch will no longer run to completion. Upon exiting plan mode, both hooks and SDK permission callbacks can read the plan written in the same turn. If agent(), parallel(), or pipeline() calls in a workflow fail, even if awaited later or unawaited entirely, they are no longer treated as unhandled Promise rejections that terminate background sessions.

BUGFIX

Smarter Sandbox Allow Rules, Upgraded Permission Checks and System Variable Protections

When executing inline scripts like python3 -c or node -e, the sandbox no longer prompts for approval simply because content contains an = character. Allow rules in .claude/settings.local.json are no longer blocked when Git trace2 is configured outside a repository. If the PowerShell command parser fails to start, permission checks do not skip deny and ask rules, nor do they cache the failure. When approving an Edit from the IDE diff view or modifying the edit during approval, edits targeting devices like /dev/null now complete properly. Windows project and local settings can no longer use env to configure variables related to ALLUSERSPROFILE, SystemDrive, or CommonProgramFiles, requiring user or managed settings instead.

BUGFIX

Fixes for Authentication and CLI Commands, Expanded Image Preview and Conversion Support

During daily login and session resumption, the terminal no longer hangs after the browser indicates a successful login, and two sessions simultaneously claiming a stale lock from a crash will no longer occasionally fail authentication. CLAUDE_CODE_RESUME_INTERRUPTED_TURN will not rerun turns that ended due to --max-turns. When aliases place options before claude attach, logs, stop, respawn, or rm, command names are no longer mistaken for new prompt text. Fetching remote data via worktrees or /teleport fails fast instead of hanging the terminal when encountering SSH key passphrase or new host confirmation prompts. When Claude sends BMP, HEIC, HEIF, AVIF, or TIFF images, the Claude app now displays previews if Claude Code can convert them.

BUGFIX

Evaluation Tools Prevent Symlink Traversal, Truncated Responses Scored Separately

When evaluating models with /claude-api, the evaluation runner and report generator now prevent writes from traversing pre-existing symlinks or hard links placed at output file paths. Responses truncated upon hitting the max_tokens limit, which were previously blended into average scores, are now flagged as truncated and computed separately. This distinction makes it easy to separate complete responses from unfinished outputs when reviewing results.

FEATURE

VS Code Adds Proactive Problem Diagnostics, Visual Configuration Forms for Plugin Management

When working on projects in the VS Code sidebar, Claude can now inspect errors and warnings in the Problems panel at any time without waiting for a file edit to finish. When managing plugins, installing plugins with custom options prompts for unconfigured fields, which can later be edited via the gear icon. If an operation fails, popups explain why and only present actionable fixes when available. Prompts now ask for confirmation before removing marketplaces or disabling plugins enabled in shared project .claude/settings.json files. If reloading the window interrupts a conversation, the restored tab indicates at the bottom that no further responses will follow.

FEATURE

VS Code Warns on Multi-Window Collisions, Restored Conversations No Longer Open Blank

Session state is now better protected when opening multiple editor windows or browsing past history. When attempting to open a conversation already running in another window or application, the system asks for confirmation instead of opening duplicate copies without warning. Clicking entries in the conversation history list will not overwrite an ongoing live conversation. Tabs reloaded after an extension restart no longer remain blank, displaying recovery instructions instead. If a conversation becomes permanently unrecoverable, an error message explains the cause and provides an option to start a new chat.

FEATURE

VS Code Prevents Dropped Messages During Replies, Tab Names Update on Conversation Renames

In VS Code, messages sent while Claude is replying no longer disappear after reopening a session. Renaming a conversation via /rename, a SessionStart hook, or claude.ai updates the editor tab label immediately with the new title. After switching accounts, the "Web" tab in the session list displays sessions for the current account rather than stale records from the previous account. Going back during login and reselecting the same sign-in method allows you to leave the authorization code screen and proceed normally.

BUGFIX

VS Code Chat Fixes Eliminate Command Menu and Shortcut Conflicts

Pressing Enter after typing a slash command in the VS Code chat panel now runs the selected command instead of drifting to unrelated fuzzy search results or becoming unresponsive. Pressing Esc after clicking an item in the command menu now closes only the menu without aborting the active turn. Text following references to Claude Code or IDE tags is no longer truncated, and the panel no longer hangs when long sessions prune the oldest history entries. After a window reload, reasons for hook blocks or stopped questions are preserved. Restored tabs will not mistakenly rerun interrupted turns if VS Code launched with CLAUDE_CODE_RESUME_INTERRUPTED_TURN set while Continue After Reload is disabled.

FEATURE

VS Code Subagent Map Delivers Accurate Info and Eliminates 10-Minute File Edit Freezes

Several issues with the agent map and file operations are fixed when orchestrating multiple agents for complex tasks in VS Code. The agent map now accurately displays the actual model running for each subagent instead of mislabeling it with the session model. Real-time messages sent to running agents and latest logs appear fully, preventing lost conversations during concurrent multi-agent runs. When the editor becomes unresponsive due to autosave before file tools execute, operations no longer hang for 10 minutes on each read, write, or edit before skipping. In addition, uninstalling project plugins from the plugin management interface accurately removes only the targeted plugin without accidentally deleting other installations or failing.

FEATURE

Enterprise Plans Enable Direct Messaging and Preserve Slack Fallback Model Notes

When using Claude Tag in enterprise messaging software, members on Enterprise Standard Chat or Usage-Based Chat seats with Cowork can now message Claude directly one-on-one without needing a separate Claude Code seat. The admin Default model setting and channel Configure page now list only the models your organization has permission to use, preventing failed saves or session creation errors. When Claude responds in Slack using a fallback model, the message displays a note below indicating the active model and reason, and editing the message later no longer erases this annotation.

Original changelog

Original changelogLaunch Desktop App Directly from Terminal to Resume Existing Sessions
Added `claude --desktop` to open the Claude desktop app on the current directory, or on a session with `--continue` / `--resume <id>`
Original changelogPreconfigure Plugins on Install for Ready-to-Use MCP Servers
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
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
Original changelogStricter Plugin Identification with Clearer SSH and Marketplace URL Validation
Fixed plugin and marketplace installs and updates over SSH ignoring the ssh program set in `GIT_SSH` or in your git config's `core.sshCommand`
Fixed `claude plugin disable` and `enable` with a full `name@marketplace` id changing a settings entry in another letter case instead of the installed plugin's own
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
Improved plugin marketplace errors to name why a git address is refused instead of citing enterprise policy
Improved validation of git URLs for plugins, marketplaces and the current repository's remote
Original changelogCentralized Enterprise Policy Controls Block Project Overrides of Security Sandboxes
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)
Fixed Claude Code refusing to start when the OS denies reading the managed settings file; it now warns and starts without that file's policies. Other read errors and unparseable files stop every session
Fixed sessions that authenticate with `ANTHROPIC_AUTH_TOKEN` against the Anthropic API never loading the organization's policy
Changed Team and Enterprise sessions, and sessions whose sign-in plan Claude Code can't determine, to withhold WebFetch until the organization policy loads if it couldn't be loaded at startup
Changed sandbox settings so project settings cannot widen or turn off an admin-required sandbox, replace the proxy behind a managed deny list, extend a strict allowlist, or reopen managed read-denies
Original changelogSupport Disabling Web Fetch and Clarify URL Security Check Errors
Added `CLAUDE_CODE_DISABLE_WEB_FETCH` environment variable to turn off the WebFetch tool
Fixed WebFetch reporting a rate-limited domain safety check as a network or enterprise policy block
Original changelogSubagents Fully Inherit Parent Permissions and Streamline Background Reporting
Fixed `claude -p` with `CLAUDE_CODE_FORK_SUBAGENT=1`: a subagent's own Agent call now runs in the foreground, so the subagent gets the child's result
Fixed `claude -p --permission-prompt-tool`: a background subagent's permission request now goes to the prompt tool instead of being auto-denied
Fixed fork subagents not keeping the session's plan mode or `dontAsk` mode: a fork now runs under its parent's permission mode and cannot exit plan mode
Fixed background subagents in auto mode prompting a second, redundant reply after each report
Improved subagents in auto mode: a subagent's run now ends as soon as it hands its report back to its caller, instead of taking extra turns that reach no one
Original changelogAuto Mode Expands to Third-Party Providers with Streamlined Command Defaults
Changed the one-time offer to make auto mode your default permission mode to also show on third-party providers and with telemetry off, when your user settings default to another mode
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
Original changelogEnforce Background Command Timeouts and Improve Session Management
Fixed a reply sent from `claude agents` to a background session waiting on a permission prompt sometimes approving the pending command
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
Changed background Bash and PowerShell commands to stop after a time limit (their `timeout` with `run_in_background`, default 30 min, max 2 h); Claude is notified when one is stopped
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 `/tasks` to fold background work Claude Code runs for itself under one "System tasks" row; press Enter on it to show those tasks
Original changelogReliable Remote Control Messaging and Mid-Turn Visibility for Side Questions
Fixed files attached to a message sent over Remote Control being left out after a single failed download; a network error, timeout or server error is now retried up to twice
Fixed Remote Control marking a message as read as soon as it arrived instead of when Claude started on it, and losing a message still queued when the terminal quit (it now arrives on the next resume)
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
Changed `/claude-api` so it can no longer be run from Remote Control clients
Original changelogIdentify Hostnames for Chrome Connections with Clearer Configuration Guidance
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
Improved Claude in Chrome: the native host now reports your computer's name, so connected browsers can be labeled by computer instead of "Browser 1" / "Browser 2"
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
Original changelogCloud Sessions Receive Full Fixes, Smoothing Environment Loading and Tool Caching
Fixed cloud sessions that restarted after their conversation was compacted refusing the next update to an artifact the session had already read or published
Fixed cloud session creation and `/remote-env` reading only the newest 20 of an account's environments
Fixed the first reply in cloud sessions arriving tens of milliseconds late, a regression in 2.1.283
Fixed cloud sessions reporting the uploads folder as missing before any file had been uploaded
[Cloud sessions] Fixed Run now on a routine showing internal error text when the run is refused before it starts; it now shows the same explanation as the routine's failure notification
[Cloud sessions] Changed `MCP_DISCOVERY_CACHE=1`, when set in your cloud environment's variables rather than a settings file, to reuse your connectors' tool lists after a session restart; other MCP servers are no longer cached and connect at startup
Original changelogMCP CLI Output Filters Escape Characters and Safely Conceals Plugin Values
Fixed `claude mcp list` and `claude mcp get`, and the not-found error of `claude mcp remove`, `login` and `logout`, printing line breaks and terminal escape sequences from MCP server names and values
Fixed `claude mcp list` leaving out WebSocket (`ws`) MCP servers; each is now listed with its URL and health status
Fixed `claude mcp get` showing no Type, Command, Args, or Environment for stdio servers whose config entry omits the `type` field
Changed `claude mcp get` to hide the command, arguments, and environment values of stdio MCP servers provided by plugins; variable names are still shown
Original changelogMCP Tool Removal Takes Immediate Effect with Accurate Lazy Loading
Fixed switching off an MCP server added mid-session in SDK and `-p` sessions leaving its tools available
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 the MCP server name `widgets` to be reserved in cloud sessions and on self-hosted runners: your own server under it, or a close spelling such as `widgets_`, no longer loads, so rename it
Original changelogArtifact Publishing Streamlines into One Step with Rewind Overwrite Protection
Fixed Artifact tool publishes after a conversation rewind (Esc Esc) overwriting a file's newer content that Claude had read only in the rewound turns; the publish is now refused until Claude re-reads the file
Fixed the Artifact tool so that publishing a page no longer lets Claude overwrite its source file without re-reading it when Claude's earlier read was cut short or the file had changed since
Fixed the Artifact tool sometimes reporting a publish as a conflict with another session after retrying a temporary server error, when the first attempt had actually succeeded
Improved Artifact tool results: they now suggest publishing in the same step as writing or editing the page, which can save a round trip
Improved Artifact tool publish results to use fewer tokens: the note on updating an artifact is shorter, and where to find your artifacts is no longer repeated after every publish
Original changelogClosing Artifact Items Preserves Links and Controls External File Publishing
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 auto mode skipping its classifier for Artifact tool asset uploads and reads of someone else's artifact when you had approved that artifact earlier in another permission mode
Original changelogUltrareview Supports Partial Clone Snapshots and Requires Git 2.31 or Later
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
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
Original changelogUltrareview Fixes Cross-Platform Uploads and Bolsters Sensitive Credential Protection
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
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
Windows: Fixed `/ultrareview` uploading a linked worktree of a repository rooted at your home folder in some cases
Original changelogCode Review Workflow Relaxes Constraints as GitHub Organization Lists Add Infinite Scroll
Fixed `/autofix-pr` and `/schedule` saying the Claude GitHub App is not installed on a repository whose install status had not been checked yet
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)
[Code Review] Fixed the organization menu in Code Review's "Add a repository" dialog showing only a few of your GitHub organizations; it now loads more as you scroll
[Code Review] Improved the Code Review check run to say when your repository's REVIEW.md wasn't applied, for example on a very large pull request or when REVIEW.md is a symbolic link
Original changelogAPI Requests Share Retry Quotas as Non-Streaming Fallbacks Send Periodic Keepalives
Added `CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES` environment variable to cap re-sends of a non-streaming fallback request that timed out
Fixed responses blocked by the API's output content filter being re-sent and retried, sometimes for minutes, instead of showing the filter's error right away
Fixed a failing API request being retried up to 21 times when streaming kept failing; the non-streaming fallback now shares the request's retry budget instead of getting a fresh set of retries
Improved SDK liveness during a non-streaming fallback request: with partial messages on, a `ping` stream event is now sent every 30 seconds on the Anthropic API, Claude Platform on AWS and gateways
Original changelogCloud Models Support Same-Tier Automatic Downgrades and Cache Startup States for a Day
Fixed Amazon Bedrock mid-stream `modelTimeoutException` and `serviceUnavailableException` errors showing a raw JSON body instead of the error message
Improved Bedrock and Vertex AI sessions to switch to an older available model of the same tier, instead of failing, when an admin removes access to the default model; session titles and summaries now fall back with it
Improved Bedrock and Vertex start-up model checks: models your account cannot use are now remembered for up to a day instead of being re-checked on every launch
Improved Bedrock, Vertex and Mantle start-up model checks to send the same User-Agent, x-app and session ID headers as regular requests
Changed Bedrock, Mantle and Claude Platform on AWS requests to a base URL with a non-default port to include the port in the SigV4-signed Host header
Changed Bedrock, Vertex and Mantle start-up model checks to identify themselves as Claude Code, like other Claude Code requests
Original changelogCustom Servers Enable Million-Token Context, Mid-Session Model Switches Apply Limits Instantly
Fixed switching models mid-session with a `set_model` request (such as the Agent SDK's `setModel`) leaving the new model on the built-in output-token limit and auto-compact window until restart
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
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
Original changelogLong Conversations Stay Responsive Without Minor Stutter, Expanding and Exiting History Runs Smoother
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 `&nbsp;` showing as literal text in the terminal when a reply uses it to indent text, such as row labels in a markdown table
Fixed a brief freeze (up to a second) partway through long sessions outside fullscreen mode, which came back after `/clear` or `/compact`
Improved per-turn performance when many permission deny rules and MCP tools are configured
Improved responsiveness when leaving the ctrl+o transcript view in long sessions when fullscreen rendering is off
Original changelogURL Passwords Masked Reliably, Malformed History Records Fixed
Fixed redacted logs and transcripts showing part of a URL password that contains `@`, or all of it when the URL writes its `@` as `%40`
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 compacting or resuming a session failing, opening without its history, or crashing when its saved transcript holds a compaction marker or loop wakeup entry with missing or malformed fields
Original changelogHooks No Longer Hang on Background Subprocesses, Cancellation Intercepts Commands Promptly
Fixed hooks and SDK permission callbacks seeing a missing or outdated plan on ExitPlanMode when the plan was written in the same response
Fixed a failed `agent()`, `parallel()` or `pipeline()` call that a workflow script awaits later, or not at all, being treated as an unhandled promise rejection, which could end a background session
Fixed synchronous hooks hanging Claude Code while a background process the hook started (for example `some-daemon &`) kept its output open; the hook now finishes shortly after its own process exits
Fixed a cancelled shell command or hook still starting, and running to its end, when the cancel arrived while it was being set up
Original changelogSmarter Sandbox Allow Rules, Upgraded Permission Checks and System Variable Protections
Fixed sandbox auto-allow asking for approval on every run of many inline scripts (`python3 -c`, `node -e`) just because they contain `=`
Fixed the PowerShell tool's permission check skipping deny and ask rules, and caching that failure for later checks, when its command parser failed to start (for example when the machine was out of memory)
Fixed `.claude/settings.local.json` allow rules being held back outside a git repository when git's trace2 output is configured
Fixed an approved Edit never going through when its target is a device, such as a file symlinked to /dev/null, and the approval came from the IDE diff view or changed the edit
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
Original changelogFixes for Authentication and CLI Commands, Expanded Image Preview and Conversion Support
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 a rare auth failure when two sessions recover a login refresh lock left by a crashed process at the same time
Fixed `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` re-running a turn that had ended at `--max-turns`
Fixed sign-in that could wait forever after the browser showed success
Fixed `claude attach`, `logs`, `stop`, `respawn` and `rm` starting a new session with the command name as its prompt when options came before it, such as from a shell alias
Improved pictures Claude sends as BMP, HEIC, HEIF, AVIF or TIFF files: the Claude apps now show a preview where Claude Code can convert them
Original changelogEvaluation Tools Prevent Symlink Traversal, Truncated Responses Scored Separately
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
Original changelogVS Code Adds Proactive Problem Diagnostics, Visual Configuration Forms for Plugin Management
[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] Improved the Manage plugins dialog: a failed plugin action now opens a popup that explains it and, where there is one, offers the fix
[VSCode] Changed the Manage plugins dialog to ask before removing a marketplace or turning off a plugin that your project's shared `.claude/settings.json` turns on
Original changelogVS Code Warns on Multi-Window Collisions, Restored Conversations No Longer Open Blank
[VSCode] Fixed opening Past conversations replacing a live conversation with its saved copy
[VSCode] Fixed a Claude tab reloaded after an extension restart staying blank instead of saying how to recover
[VSCode] Fixed opening a conversation that is already open in another window or app starting a second copy of it without warning; it now asks first
[VSCode] Fixed tabs stuck on a conversation that can't be resumed: the error now says so and offers to start a new conversation
Original changelogVS Code Prevents Dropped Messages During Replies, Tab Names Update on Conversation Renames
[VSCode] Fixed a message sent while Claude was working disappearing from the conversation after the session was reopened
[VSCode] Fixed the session list's Web tab showing the previous account's sessions after an account switch
[VSCode] Fixed sign-in staying on the authorization-code step after going back and choosing the same sign-in method again
[VSCode] Fixed the editor tab keeping an old name after a session was renamed with /rename, by a SessionStart hook, or on claude.ai
Original changelogVS Code Chat Fixes Eliminate Command Menu and Shortcut Conflicts
[VSCode] Fixed pressing Enter after typing a slash command running an unrelated menu item picked by fuzzy match, or doing nothing
[VSCode] Fixed a message that quotes a Claude Code or IDE tag losing the rest of its text in the chat
[VSCode] Fixed restored tabs re-running an interrupted turn when VS Code was started with `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` set, even with Continue After Reload off
[VSCode] Fixed Escape stopping the running turn instead of closing the command menu after clicking one of its rows
[VSCode] Fixed a hook's reason for blocking or stopping a prompt disappearing after a window reload
[VSCode] Fixed the chat panel stalling when a long session trims its oldest rows
Original changelogVS Code Subagent Map Delivers Accurate Info and Eliminates 10-Minute File Edit Freezes
[VSCode] Fixed an open agent transcript losing the agent's newer messages during a long session
[VSCode] Fixed every file Read, Write and Edit stalling for ten minutes and then being skipped when the editor stops responding to the extension's automatic save before the tool runs
[VSCode] Fixed the agent map labeling a sub-agent with the session's model instead of the model it actually ran on (e.g. under `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` or an agent's own `model`)
[VSCode] Fixed uninstalling a plugin from the Manage plugins dialog, which removed the wrong installation or failed for a plugin installed for the project
[VSCode] Fixed the conversation disappearing from a session when many agents run
[VSCode] Fixed the agent map's transcript view leaving out messages sent to a running agent
Original changelogEnterprise Plans Enable Direct Messaging and Preserve Slack Fallback Model Notes
[Claude Tag] Added direct messages with Claude for members on an Enterprise plan Standard or Usage-Based Chat seat who also have Cowork; a seat that includes Claude Code is no longer required
[Claude Tag] Fixed the Default model setting in admin settings and a channel's Configure page offering models your organization can't use, which made saves or new sessions fail
[Claude Tag] Fixed the note under Claude's Slack messages saying it answered on a fallback model, and why, disappearing when Claude later edited that message