Claude Code 2.1.271
96changes- Enable fast mode in Claude Code Remote's cloud and self-hosted runner sessions.
- Add per-command allowed_domains to auto mode's sandboxed Bash, PowerShell, and Monitor.
- Let VS Code users turn off automatically attaching the open file.
- Pause dynamic workflows at your usage limit and resume them automatically.
- Close Bash permission-check bypasses in directory-changing and subshell commands.
New features
10Fast mode in Remote sessions
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
▤ In the docsPer-command allowed_domains in auto mode
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
[VSCode] Attach Open File setting
Added an Attach Open File setting that, when turned off, stops the open file from being added to messages; selected text is still attached
omitClaudeMd for subagents
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
▤ In the docsMore changes (6) Fewer changes
Mouse support in /config panel
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
▤ In the docsRunner drain-marker-file flag
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)
--accept-command for plugin installs
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
▤ In the docsPricing multiplier for chargeback
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
▤ In the docsDesktop app spinner tips
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
[Claude Code on the web] Custom network access for environments
Added a Custom network access option to the Cloud environments editor in admin settings, with the same allowed-domains list the environment dialog on claude.ai/code offers
▤ In the docsImprovements
27Faster terminal rendering
Improved terminal rendering performance: large diffs and long transcripts render faster, with fewer slow frames
▤ In the docsPause workflows at the usage limit
Improved dynamic workflows to pause when you hit your usage limit and continue automatically when it resets, instead of dropping the affected agents
▤ In the docsAuto mode uses rules for inline !
Changed auto mode so that a skill's or slash command's inline ! shell commands follow default-mode permission rules instead of the classifier; a command no rule decides runs as a reviewed tool call
Smaller default workflow size on Pro
Changed the default dynamic workflow size to small on Pro plans and lowered the medium size guideline from 15 to 10 agents
▤ In the docsMore changes (23) Fewer changes
Skip redundant model data validation
Improved startup time slightly by skipping a redundant validation of built-in model data on every launch
Show hook progress in the spinner
Improved hook feedback: while a SessionStart, UserPromptSubmit, PreToolUse or SessionEnd hook runs, the spinner says so with elapsed time, and Esc cancels a prompt waiting on a SessionStart hook
Clearer status during long thinking
Improved the spinner status during long thinking: it now reads "deep in thought" after 45s, and shows "picking the thought back up" while recovering from the output-token limit
Fewer empty Remote Control sessions
Improved Remote Control to leave fewer empty sessions on claude.ai when setup fails on a flaky network
Clearer Claude in Chrome error message
Improved the Claude in Chrome message in cloud sessions when the browser can't be reached: it now says the computer may be asleep before it suggests an install
Progress updates for claude mcp serve
Improved claude mcp serve: a running tool call now sends a progress update every 30 seconds, so clients show it is still running and idle timeouts don't abort a long command that prints nothing
Use alwaysLoad MCP servers sooner
Improved Foundry and Claude Platform on AWS sessions: an alwaysLoad MCP server that finishes connecting mid-conversation is usable on the next turn without a tool-search round trip
▤ In the docsStyled rendering for Markdown artifacts
Improved Markdown files published as artifacts: they now render as styled document pages (title header, document typography, syntax-highlighted code)
Clearer Artifact tool publish errors
Improved Artifact tool publish errors: a publish with no file now says to write the page to a file first, and an unsupported file type is reported before a missing favicon
List capabilities on contract errors
Improved the Artifact tool's error when a page declares a capability its contract version lacks: it now lists every supported capability and notes when a newer contract version has it
Watch more artifacts at once
Improved artifact watching: a session can now watch up to 10 published artifacts at once for republishes made elsewhere, up from 5
Avoid guessed PDF page counts
Improved PDF @-mentions to say "page count unknown" instead of a page count guessed from the file size when pdfinfo cannot count the pages
Single QR code for /mobile
Improved /mobile to show a single QR code for claude.ai/mobile, which opens the right app store for your phone
▤ In the docsReview subagent hand-back calls
Changed auto mode so a subagent reports back to its caller through a dedicated hand-back call that the safety classifier reviews, instead of its last message being reviewed after the fact
Monitor watches always have a deadline
Changed Monitor watches to always have a deadline (at most 30 minutes; 10 in single-prompt -p runs) and notify Claude to re-arm, replacing the no-timeout persistent option
New IDE selection pill in the prompt
Changed the IDE selection indicator in the prompt to a small pill that wraps with the text instead of squeezing multi-line prompts; delete it with Backspace to leave the selection out
Stop refreshing unused claude.ai logins
Changed Claude apps gateway, Bedrock, Vertex AI, and Foundry sessions so that they no longer refresh a leftover claude.ai login that the session does not use
Update the bundled claude-api skill
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] Clearer Hooks dialog save errors
Improved the Hooks dialog: a save refused because of the settings file itself now opens a popup with an "Open settings file" button and the reason behind "Copy error"
[VSCode] Toggle switches match editor theme
Changed the on state of toggle switches from Claude orange to the editor theme's button color
[Claude Code on the web] New Routines page layout
Changed the Routines page on claude.ai/code to a new layout with Yours and Templates tabs and two-column routine cards that show run status, and removed its calendar view
[Claude Code on the web] Clearer Cloud environments admin page
Improved the Cloud environments admin page: it shows the default environment for Claude Tag and Claude Code, with a link to change it, and marks the recommended kind to create
[Claude Tag] Clearer Environment picker
Improved the Environment picker in Claude Tag admin settings: options are labeled Anthropic-hosted or self-hosted, with links to edit that environment or create one
Bug fixes
59Close blockReadsOutsideWorkingDirectories bypass
Fixed Bash commands with two directory changes, a subshell, or a cd+git chain skipping the prompt under permissions.blockReadsOutsideWorkingDirectories in bypass and auto mode
Prevent flag spoofing in Bash checks
Fixed Bash permission checks so that shell variable declaration flags cannot misrepresent the command being run
Bash checks missing files after options
Fixed Bash permission checks missing the file that fmt, column and similar commands read when it follows an option the checker doesn't recognize
Bash checks skipping wildcard files
Fixed Bash permission checks skipping files a wildcard expands to when the wildcard sits in a command's pattern or option value (for example grep -v dir/* file)
Stale org policy after switching accounts
Fixed a cached organization policy being reused after switching accounts, organizations, or API keys, and the policy not refreshing until the hourly check when the credential changes mid-session
Refresh tool lists after policy loads
Fixed the tool and command lists not updating when the organization policy finishes loading after startup or changes mid-session
Enforce MCP control on bad managed-mcp.json
Fixed an enterprise managed-mcp.json that can't be read or parsed being ignored: it now keeps exclusive MCP control (user, project and plugin servers don't load) and warns at startup
More changes (52) Fewer changes
Org policy through Unix-socket proxies
Fixed org policy being fetched through, and rejected by, third-party local proxies set via ANTHROPIC_UNIX_SOCKET; they are again treated like other custom gateways, including for Remote Control
Subagent calls after worker restart
Fixed cloud sessions rejecting every subagent tool call ("updatedInput … failed schema validation") when a workflow or agent approval was applied after the session's worker restarted
/fast off when org disables fast mode
Fixed /fast off answering "Fast mode unavailable" instead of turning fast mode off when the organization has fast mode disabled
Stop retrying rejected fast mode
Fixed sessions started with CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK re-sending fast requests every turn after the API rejected fast mode; the rejection now stands and its reason is shown
Fast mode fallback under retry watchdog
Fixed fast mode under CLAUDE_CODE_RETRY_WATCHDOG failing the turn on a usage-credits limit, or retrying an overload at fast speed, instead of falling back to standard speed
Stale .git/config.lock after sandbox failure
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)
Detect settings changes under file-event load
Fixed settings file changes made outside the session going unnoticed on macOS machines whose system file-event service is saturated; the watcher now falls back to polling
Resume claude -p with only MCP tools
Fixed resumed claude -p sessions whose tools all come from MCP servers failing with "At least one tool must have defer_loading=false"
Handle text/plain gateway replies
Fixed turns failing with "API returned an empty or malformed response" when an LLM gateway returns the non-streaming reply as text/plain
Avoid CPU spikes from list_changed loops
Fixed sustained high CPU usage and repeated tool-list requests when an MCP server sends list_changed notifications in a tight loop
Fix MCP OAuth client registration bugs
Fixed MCP OAuth mishandling client registrations: denying consent forced a new one, one for another redirect URI was reused, and a concurrent write could delete a valid one or keep a mismatched one
Match tools by their bare name
Fixed tool search returning no match when Claude selects an MCP tool by its bare name instead of its full mcp__server__tool name
Preserve pending MCP reconnects
Fixed Ctrl+O cancelling pending MCP server reconnects, and /mcp sent from Remote Control failing while the transcript view is open
Fix stale ToolSearch guidance for Chrome
Fixed the Claude in Chrome prompt telling the model to load tools through ToolSearch when ToolSearch is unavailable
Notify senders when messages are held
Fixed cross-session messages held by the receiving session's permission-mode policy leaving no trace: headless senders now get a delivery notice, and SendMessage results no longer imply it was read
Avoid duplicate background commands
Fixed Claude starting a second copy of a background command (such as a watch task or dev server) that was still running after the conversation was compacted
Skip cache warning on same-model switch
Fixed /model warning about losing the conversation cache when switching back to the model the conversation actually ran on
Match /reload-skills count after /cd
Fixed /reload-skills reporting a skill count that disagreed with the slash menu after /cd
Show more sessions on short terminals
Fixed /resume and /continue showing only 1-2 sessions in fullscreen mode on short terminals
Reset file-read tracking on resume
Fixed /resume and /teleport keeping the previous conversation's file-read tracking, so Claude could edit files the resumed conversation had never read
Preserve 1M context on resume
Fixed --resume dropping the 1M context window ([1m]) when the resumed session's model family differs from the configured default model
Keep /artifacts attachments after resume
Fixed artifacts attached with /artifacts disappearing from the session after --resume
Watch published artifacts in background
Fixed background sessions (claude --bg, claude agents) not watching the artifacts they publish for republishes made elsewhere
Load all items from inode-0 drives
Fixed custom agents, slash commands and output styles beyond the first not loading from a virtual drive that reports inode 0, such as an encrypted vault mounted as a Windows drive
Preserve large host config on runners
Fixed self-hosted runner sessions silently losing all host config (settings, skills, plugins, MCP servers) when the host config directory exceeds 64 MiB; added --host-config-snapshot disk|memory
Clean up synced skills after sign-out
Fixed skills synced from claude.ai staying on disk indefinitely after signing out; copies not refreshed within cleanupPeriodDays now move to the recoverable trash at the next launch
Filter spinner tips by availability
Fixed spinner tips suggesting commands that aren't available for your account type or are disabled in your session
Fix /add-dir path input keys
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
Fix leading ! reordering in text fields
Fixed text fields outside the main prompt moving a leading ! to the end of what you typed (!foo came out as foo!)
Fix /hooks crash on reserved names
Fixed the interactive /hooks menu crashing when a hook matcher is named after an inherited object property such as __proto__ or constructor
Fix stale background color glitch
Fixed a fullscreen rendering glitch where text kept a stale background color after the box around it lost its background
Fix Delete and Alt+arrow in st/rxvt
Fixed Delete in st and Alt+arrow keys in rxvt-unicode not working in attached background sessions
Fix leaked terminal capability replies
Fixed the terminal's replies to capability queries (^[[?1;2c) appearing at the shell prompt or in an editor when Claude Code exits, is suspended, or opens an editor right after starting
[VSCode] Fix Hooks/Permission save reporting
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] Fix Hooks dialog save bugs
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] Session history on mapped drives
Fixed session history showing only the current session when the workspace is on a Windows mapped network drive or SUBST drive
[VSCode] Fix Active filter hiding idle sessions
Fixed the session list's Active filter hiding open idle sessions when Open is also checked in the filter menu
[VSCode] Fix new chat reverting on refresh
Fixed a new chat switching back to the previous chat when the session list refreshed
[VSCode] Apply CLAUDE_CONFIG_DIR without reload
Fixed open tabs and the side bar keeping the old config folder until a window reload after CLAUDE_CONFIG_DIR changed in the environmentVariables setting
[VSCode] Fix console flashing on Windows
Fixed console windows flashing on Windows when the extension runs background commands such as git, ripgrep, and the sign-in status check
[VSCode] Fix delayed hover text and tooltips
Fixed the prompt cache clock's hover text appearing only after a delay, and the auto-compact icon showing the browser's own tooltip beside its popup
[Claude Code on the web] Faster restart after process exit
Fixed a cloud session sometimes taking about ten minutes to respond after its process exited while the session still looked live; sending a message now restarts it right away
[Claude Tag] Preserve context from thread activity
Fixed Claude in a channel where it stays active losing its working context about once an hour when the conversation is mostly in threads; thread activity now keeps it from being reset
[Claude Tag] Keep watching PRs after restart
Fixed a thread that asked Claude to watch a pull request no longer hearing about CI failures, comments and reviews after Claude was restarted in that thread
[Claude Tag] Stop work when first message deleted
Fixed deleting the first message of a thread Claude had already replied in not ending Claude's work there; it now stops, as it did when a message with no replies was deleted
[Claude Tag] Ignore instructions for other bots
Fixed Claude holding back a post because of an earlier instruction addressed to a different bot or assistant; only instructions addressed to Claude bind it, and it asks when unsure
[Claude Tag] Correct busy-channel reply-mode reason
Fixed the reply-mode card Claude posts on joining a busy channel saying it "sees a lot of automated posts" when the channel is only chatty or large; the card now names the real reason
[Code Review] Fix missed reviews on new commits
Fixed a pull request in a repository reviewed once per PR sometimes getting no review when a commit arrived while its review was waiting to start; it now reviews the requested commit
[Code Review] Fix duplicate finding posts
Fixed Code Review occasionally posting the same findings two or three times when GitHub reported an error for a review it had in fact created
[Code Review] Stop reposting resolved findings
Fixed follow-up reviews re-posting a security finding a person had already resolved when a later push moved the lines it was anchored to
[Code Review] Fix /ultrareview restart on reopen
Fixed reopening a finished /ultrareview cloud session in the Claude app starting the whole review over again unprompted
Windows: Fix PowerShell long temp paths
Windows: Fixed PowerShell commands failing with "Exit code 1" and no output when the session's temp output path reaches 260 characters