Follow Discord

Claude Code v2.1.304

448 entries read Grouped into 371 v2.1.303 → v2.1.304 Mods API: +6 added · 0 removed · 7 changed · 7 docs only Markdown JSON Follow Unofficial

Claude Code's bundled default model is now Opus 5.5 at medium effort, replacing Opus 5 at high effort. You can set CLAUDE_CODE_SKIP_PLUGIN_LOCAL_MCP_SERVERS to keep only the remote MCP servers that plugins bring. A program that runs claude mcp serve can pick which plugins load with CLAUDE_CODE_MCP_SERVE_ENABLED_PLUGINS. A new allowNestedUserNamespaces sandbox setting lets browsers or rootless podman run inside the sandbox on Linux. It is off by default because it weakens the sandbox. Plugin modules can now read and override the settings in effect through a new settings.read event.

Some work in this build is not switched on yet. In-app surveys for enterprise organizations stay off unless turned on remotely. Setting CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY skips them. Groundwork for showing skills as plugins has landed but cannot be reached. Leaving a worktree now checks whether to keep it, but that check always says no in this build. A launch option to turn off plan or auto mode is partly built, with no visible setting yet.

Creating a worktree no longer resets an existing branch with the same name. Claude Code now stops with an error instead. Your cached remote settings are no longer cleared when a proxy answers with a 204 or 404 reply. Very long timeouts are now capped instead of firing immediately. Removing one skill's hooks no longer removes matching hooks added by another skill. Claude Code no longer fetches skills from MCP servers when it connects to them.

Written by our agent from the shipped bundle, not by Anthropic.

Five to try today

Picked from 20 you can use now
  1. New environment variables for low-resource warnings, plugin MCP servers and child sessions

    New environment variables add low disk and memory warnings, limit plugin MCP servers, and pass startup and project details to child sessions

    Extensions
  2. Plugins can now supply setting values through a settings.read event

    A new settings.read event lets plugin hooks see and override your effective settings, re-checked whenever settings or plugins change

    Extensions
  3. Memory extraction can keep its place across worker restarts

    A new carry_across_restarts option lets post-turn memory extraction save and restore its progress when its worker restarts

    Sessions & agents
  4. Prompt filling and plugin hooks gain an answersPress value

    prompt.fill and suggest-prompt requests now carry answersPress, plugins get press_drawn and press_fill hook events, plus two new defaults

    Extensions
  5. New CLAUDE_CODE_ATTRIBUTION_PROJECT setting checked against claude.ai Project IDs

    Claude Code now recognises CLAUDE_CODE_ATTRIBUTION_PROJECT and drops a value that is not a valid claude.ai Project ID from saved jobs

    Elsewhere

Want the reasoning? Read walks the 43 entries that probably matter to you, each one opening to what changed and why.

Read this release → Every row →
49 of 371 shownClear
Reading as
Show only
Who it's for
Tier
Flag state
Names
Pick an entry · j / k steps through · rest on a row to peek
9 entries here

What probably matters to you

Anything you can use today, anything that visibly changes, and anything worth poking at. One line each, open for detail.

↑Improved
Use it now
Useful3 Signal3
Group of 4 Context Window unclear

Total-tokens reminder now defaults on only for models with the capability#

The total-tokens reminder now defaults to on only for models with a new total_tokens_reminder capability, and is off for others

Unclear It is not clear what sets the explicit choice, or whether the reminder style used by default has changed.

Details 0 0 Feedback
Were these the right ones to put at the top? 0 answered
Below the fold

Everything else

Smaller changes and internals, grouped as the pipeline found them. Nothing is dropped, it is only further down.

40 entries here

Improvementsopen

13 more of these are in What probably matters to you, above.

↑Improved
You'll notice
Useful2 Signal3
Group of 2 Managed Settings unclear

A managed-folder hold withholds organization-managed skills and agents#

Organization-managed skills and agents in the managed .claude folder are filtered out while a managed-folder hold is active

Unclear What turns the managed-folder hold on is not stated.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal3
Group of 2 Subagents unclear

Prompts are held back with a quiet_spell outcome after one goes unanswered#

After a permission prompt times out unanswered, later subagent prompts in the same turn return quiet_spell instead of asking again

Unclear It is not shown what the subagent does when its request is held back, for example whether it treats it as a refusal.

Details 0 0 Feedback
↑Improved
You'll notice
Useful3 Signal3
Skills unclear

Turning off a skill on claude.ai can turn off the matching local plugin#

When a skill is turned off in claude.ai, Claude Code can mark the synced plugin that provides it as turned off in your local settings

Unclear When this sync runs, and whether it is switched on for every account, is not stated.

Details 0 0 Feedback
↑Improved
You'll notice
Useful3 Signal3
Auth unclear

Login screen can refuse sign-in or allow only claude.ai login#

The login screen can now show a refusal notice instead of the login form, or allow only claude.ai login, and startup can show a blocked screen

Unclear It is not clear what leads to a refused login or when the blocked screen appears.

Details 0 0 Feedback
↑Improved
You'll notice
Useful3 Signal3
Plan Mode unclear

Entering plan mode can now ask you to confirm first#

In some modes, Claude now asks "Enter plan mode?" before switching, and only you can answer

Unclear Apart from the current mode, what decides whether the question is asked is not stated.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal3
Hooks unclear

Hooks that call MCP tools can be refused by the server's settings#

An mcp_tool hook can now be refused because of its MCP server's configuration, and hook matching treats Claude Code's own MCP tools like built-in ones

Unclear It is not clear which server settings cause an mcp_tool hook to be refused.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal3
Managed Settings unclear

Changes to how different sources of managed settings are combined#

How Claude Code picks between sources of managed settings has been reworked, affecting permissions, sandbox domains and MCP allow lists

Unclear It is not clear which host or settings layout triggers the held-settings handling.

Details 0 0 Feedback
↑Improved
You'll notice
Useful3 Signal2
Permissions unclear

Permission path patterns get a length limit and can match whole folders#

Over-long path patterns in permission rules are now flagged as too costly, and a pattern can also match everything inside the folder it names

Unclear The length limit is not stated, nor whether a pattern that is too long ends up as a refusal or an error.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal2
Permissions unclear

rm on a mounted drive or a drive's top level now needs your approval#

Claude Code now asks before rm removes a mounted drive, its parent folder or a top-level item on a drive; an environment variable turns this off

Unclear Exactly which paths count as a mounted drive, and whether the check runs outside Windows and WSL, is not stated.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal2
Skills unclear

Skills in the managed folder are checked before they are loaded#

Claude Code now refuses a managed skill whose files the session could have changed, that is too large or deep, or that links elsewhere

Unclear What switches this check on, and whether it applies to ordinary users, is not stated.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal2
MCP unclear

Plugin MCP servers can be loaded later by default in some cases#

Plugin MCP servers that don't set alwaysLoad can now be deferred until needed in some cases, not only those with alwaysLoad set to false

Unclear Which entry points this applies to, and what the further check tests, is not known, so it is unclear whose sessions are affected.

Details 0 0 Feedback
alwaysLoad
↑Improved
You'll notice
Useful2 Signal2
Auto Mode unclear

In auto mode, plugins can only tighten calls that a hook cannot approve#

In auto mode a plugin can no longer approve a call that a hook's allow cannot approve, and some held plugin decisions now fall back to asking you

Unclear It is not clear in which situation the add-on tool is now hidden.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal2
Plugins unclear

Mods can no longer start background work after you press Stop#

After Stop, a mod's attempt to start background work is refused, and you see a notice that a mod cannot resume work after Stop

Unclear It is not clear what counts as a mod, or whether the block also applies to background work you start yourself.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal2
Workflows unclear

Workflow scripts with an ambiguous slash are refused#

A workflow script is not run if a '/' could mean either a pattern or division; the error says to end the statement with ';'

Unclear It is not known whether this check is switched on by default.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal2
Remote Control unclear

Remote Control reattach has a stricter account check#

When reattaching a Remote Control session, Claude Code can refuse if it cannot confirm the session belongs to your account

Unclear Whether this stricter check is switched on is not stated.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal1
Permissions unclear

One kind of permission rule now matches without regard to letter case#

One type of permission rule now ignores upper and lower case when it matches, and compares names in a normalized form

Unclear It is not clear which type of permission rule this applies to, possibly rules for web domains.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal1
Permissions unclear

Deleting files on a mounted drive is now flagged as dangerous#

Claude Code's dangerous rm and rmdir check now recognises mounted drive paths such as /mnt, /Volumes, /media and /run/media

Unclear Whether a flagged command is blocked outright or only needs your approval is not stated.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal1
Permissions

Paths on a mounted drive can now be refused#

A path check gains a new reason for refusing paths on a mounted drive, and a refused dialog answer now passes through unchanged

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal1
Sandbox unclear

Sandbox blocks reading credential paths and rewords its old bubblewrap warning#

The sandbox now also blocks reading paths taken from credentials, and the warning about an old bubblewrap no longer mentions leftover mount points

Unclear It is not clear whether the oldest bubblewrap version that triggers the warning has actually changed.

Details 0 0 Feedback
↑Improved
You'll notice
Useful2 Signal1
Elsewhere

File pattern matching has been rewritten#

The matcher for file patterns such as * and ** has been rewritten, so unusual patterns may now match differently

Details 0 0 Feedback
Verbatim
Official · Anthropic

Anthropic’s official release notes

Published verbatim by Anthropic for v2.1.304. Text is unmodified from the upstream changelog. Everything else on this page came out of the bundle instead, which is why the two lists don't match.

Of these 76 bullets, 13 name something an entry on this page also names, 24 name something no entry here does, and 39 name nothing specific enough to line up either way. The pairings are made on names both sides wrote down, a flag or a setting or a slash command, so read one as probably the same thing rather than as a fact, and read the middle number as candidates rather than as a miss count.

  • Added a transcript line when a plugin that runs first skips one of your mod's hooks, naming the event and the plugin Nothing to match on
  • 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 No entry names this
  • Added e.isReadOnly to a mod's tool.check event, set when the tool call is read-only No entry names this
  • 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 No entry names this
  • Added /claude-api managed-agents-secure, which compares a Managed Agents agent's settings with Anthropic's published security guide, without changing anything Probably claude-api-managed-agents-secure-guard-on-ant-commands
  • Added the names of the tools called earlier to the compaction summary in the transcript view (Ctrl+O) Nothing to match on
  • 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 Nothing to match on
  • 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 Probably policy-limits-re-fetch-after-an-api-refusal-anthropic-api-k, auto-compact-window-dialog-shows-an-extra-warning-line
  • Fixed sandboxed commands failing to start on Linux when a sandbox.filesystem.denyRead glob contains brackets that are not a character class, such as a [user-id] route folder No entry names this
  • 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 Probably dangerous-rm-detection-for-mounted-drive-paths
  • Fixed CLAUDE_CODE_TRANSCRIPT_LOCAL_GC dropping messages from the saved transcript when the disk filled up while the file was being trimmed No entry names this
  • Fixed a plugin keeping a headless run going past --max-turns, Stop, or ended input by spawning subagents or re-running a finished one No entry names this
  • Fixed a failed mod reload removing the tools and commands of the version that stays loaded, and its messages being wrong or silent about whether the previous version is still loaded Nothing to match on
  • Fixed a click on a mod's button being lost when buttons with the same label and no key were redrawn unchanged Nothing to match on
  • Fixed mod sharing in the built-in plugin-authoring skill stopping at the secret scan on machines with managed settings and on Team and Enterprise plans No entry names this
  • Fixed scheduled Cowork cloud sessions waiting five minutes again for each subagent whose WebFetch needed a URL approval that nobody was there to give Nothing to match on
  • Fixed Write results and rejected edits showing a file outside the working directory as ../../…; they now show ~/… or the full path No entry names this
  • Fixed a claude.ai Directory plugin's skills not running as commands when picked from the "/" menu in Cowork cloud sessions Nothing to match on
  • Fixed Remote Control permanently withholding a desktop conversation's history when a different account was signed in to the terminal Nothing to match on #98620[BUG] Remote Control: reattach checks the shared ~/.claude.json account instead of the session's own, splitting sessions on claude.ai Open
  • Fixed Remote Control failing to start from Claude Desktop when DISABLE_TELEMETRY or DO_NOT_TRACK is set on a paid plan No entry names this #100339[DOCS] Desktop app: DISABLE_TELEMETRY blocks Remote Control with a generic "initialization failed", contrary to the docs Open
  • Fixed model switches, messages and interrupts waiting behind a context usage check in SDK and desktop sessions Nothing to match on
  • Fixed context_management: Extra inputs are not permitted errors behind LLM gateways; Claude Code now resends the request without that field No entry names this
  • 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 No entry names this
  • Fixed unsandboxed Bash commands in Claude Desktop Code tab sessions on macOS and Linux not seeing environment variables exported in shell startup files such as ~/.zshrc Nothing to match on #92515Claude Desktop passes only PATH from the login shell to Claude Code sessions; every other variable is dropped Open
  • Fixed the Consumer Terms notice being skipped for a day or longer after a server error Nothing to match on
  • Fixed /privacy-settings offering choices that may not apply to you after a network or server error No entry names this
  • Fixed a "Context limit reached" or "Prompt is too long" error after stopping a turn while Claude Code was compacting a conversation the API had rejected as too long No entry names this #96744[Bug] Context limit reached state persists after /compact command failure Open
  • Fixed subagents sometimes forgetting their most recent work when they were messaged or resumed right after finishing Nothing to match on
  • Fixed claude --help text for --tools, --resume, --debug, --json-schema, --disable-slash-commands, --system-prompt-snapshot and claude update to match actual behavior Probably usage-rate-limit-message-shows-hold-time, tools-help-text-default-now-means-the-default-set, json-schema-help-says-it-only-works-with-print, sandbox-runtime-probes-bwrap-style-binary-for-disable-user, misc-ui-custom-api-key-prompt-disable-slash-commands-tex, claude-update-description-mentions-package-manager-installs, await-claim-now-rejected-with-sdk-url, resume-help-text-now-says-session-id-or-name, system-prompt-snapshot-now-defaults-off-under-bare-outside
  • Fixed claude --worktree removing the worktree and its branch without asking at exit when HEAD was detached or on another branch, which could lose commits No entry names this
  • Fixed resumed and cloud sessions sending Claude the whole skill list again each time plugins reloaded at startup Nothing to match on
  • Fixed an interrupt not ending a Read that waits on an idle pipe or device named like an image Nothing to match on
  • 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 No entry names this
  • Fixed a PreToolUse hook's deny reason being replaced by a timeout error when an Agent SDK callback hook on the same tool call timed out Nothing to match on
  • Fixed Bash and PowerShell deleting a large command's output file when it could not be copied to the session's tool-results folder, unless the disk is full Nothing to match on
  • Fixed notes typed into a multiple-choice question with previews being cut off with "…" in terminals under about 100 columns, hiding what was typed (anthropics/claude-code#82768) Nothing to match on
  • 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 Probably dynamic-loop-wakeups-carry-an-owner-and-plugin, schedulewakeup-and-loop-plugin-aware-scheduling-and-missed
  • Fixed agent teams: approving a shutdown request from the main session no longer exits the whole CLI Nothing to match on #96226Lead session exits cleanly seconds after a teammate approves a shutdown_request (2.1.280, in-process teammate) Open
  • Fixed a skill's once hook also removing another skill's identical hook after it ran Nothing to match on
  • Fixed transcript mode's { and } landing the prompt on an inconsistent row, or off screen, instead of the transcript's first row Nothing to match on
  • 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 Probably auto-compact-window-setting-shows-a-note-about-the-env-var, claude-code-auto-compact-window-parsing-with-km-shorthand-a
  • Fixed Ctrl+C in the agents view clearing a text selection without copying it when pressed before the mouse button was released Nothing to match on
  • Improved /usage to say when a rate limit on usage data ends instead of "try again in a moment" Probably usage-rate-limit-message-shows-hold-time, usage-credit-purchase-flow-gains-offers-discount-tiers-and, usage-credit-promo-offer-starry-waterfall-read
  • Improved the lines shown when a mod written in the session loads, reloads or fails to load Nothing to match on
  • Improved artifacts with several views: when you ask for links to them, Claude now writes out each view's link and explains that the address bar stays the same as you switch views Nothing to match on
  • Improved cloud sessions: a new conversation's first turn no longer waits for the local (stdio) MCP servers of plugins synced from claude.ai, unless a server sets alwaysLoad: true No entry names this
  • Improved how a remote session recovers its status when the server refuses a status update that carried other session data Nothing to match on
  • Improved session file size in auto mode: the safety classifier's context is no longer stored with every request Nothing to match on
  • Improved the claude -p invalid-settings warning: a file that did not load lists only what stopped it, and long lists are capped per file Probably claude-test-plugin-checks-agents-and-renders-a-pane
  • Improved resume of large compacted sessions in SDK and headless mode: the first request after resuming is sent sooner Nothing to match on
  • Improved responsiveness and throughput when many subagents are running at the same time Nothing to match on
  • Improved memory use when sending requests in long or resumed conversations Nothing to match on
  • 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 No entry names this
  • 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 Nothing to match on
  • Changed mods' settings.read hooks to receive each settings layer and rewrite the merged settings, so a managed mod can make an organization's setting a ceiling, including the cleanupPeriodDays the retention sweep uses Probably remote-settings-unknowable-pause-for-retention-cleanup-disk, hooks-module-settingsread-merge-is-re-raised-when-plugins-o, new-settingsread-plugin-event-mods-runtime, queue-and-plugin-input-hold-refactor-with-a-plugin-settings
  • 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 No entry names this
  • Changed the question that turns on the mods Claude writes in a session to plain text with no link or session id; it stays up when a new turn starts, and Claude tells you what loaded when you turn them on Nothing to match on
  • Changed tool search to be on by default behind a custom ANTHROPIC_BASE_URL; a 400 or 422 from the gateway is retried without it Probably tool-search-refusal-by-a-custom-anthropic-base-url-endpoint
  • Changed compaction to send Claude the skill list again afterwards; /reload-skills now sends only new or changed skills No entry names this
  • Changed skill hooks: the skills of one source (a repo, your own folder, or a plugin) can register at most 1,024 hooks and 16,384 matcher characters per session Nothing to match on
  • Changed skills under a policy that allows hooks from plugins only: a skill used in the main conversation whose hooks are kept out no longer gets its allowed-tools No entry names this
  • Updated the /claude-api skill to use the ant CLI on Claude Platform on AWS instead of falling back to the SDK or curl Probably claude-api-managed-agents-secure-guard-on-ant-commands
  • Removed the notes from claude plugin validate that predicted where a mod's hooks would run No entry names this
  • Removed the "(research preview)" label from the /fast dialog title on Opus 5.5 Probably fast-mode-label-drops-research-preview-conditionally
  • [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 Nothing to match on
  • [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 No entry names this
  • [VSCode] Fixed a session closed while it was starting keeping its Claude Code process running until the start ended Nothing to match on
  • [VSCode] Fixed a mod's drawings disappearing from a long-open panel until the next turn on machines that also run an older Claude Code Nothing to match on
  • [VSCode] Fixed Past conversations hiding sessions when claudeCode.claudeProcessWrapper is set No entry names this
  • [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 Probably internal-workflows-ui-and-entrypoint-tweaks
  • [Cloud sessions] Fixed folders in the composer's @ list showing no name in cloud sessions, where picking one added only a space instead of a mention Nothing to match on
  • [Claude Tag] Fixed Claude going silent in a thread when its channel becomes shared across Enterprise Grid workspaces mid-task; it now posts a one-time note to @-mention it in a new thread Nothing to match on
  • [Claude Tag] Fixed @Claude !fork typed outside a thread getting no visible reply; Claude now shows you a private note saying to run it from inside a thread No entry names this
  • [Code Review] Added review levels to Code Review: Owners choose Quick, Standard (the default), or Deep for the organization, and can give individual repositories their own level Nothing to match on
  • [Code Review] Added an option in Code Review admin settings to review every repository in a GitHub organization, including ones added later, without selecting them one by one Nothing to match on
  • [Code Review] Fixed pull requests opened within a minute or two of an admin turning on Code Review being silently skipped; they are now retried and reviewed Nothing to match on

A model matched these bullets to the GitHub issues they fix, so a link can be wrong.

System prompt

4 of 29 tool descriptions changed. 2 of 27 tool schemas changed. The appended system-reminder blocks moved: 14 lines added, 1 line removed.

Claude Code, interactive mode

One prompt change in this release could not be quoted from the build, so no entry on this page describes it.

Documentation

What the docs did around this release

622 documentation changes were recorded within 24 hours either side of this release, nearest first. The closest 12 are below. They're here because they happened near this release in time. That's not a claim that this release caused the edit, or that the page documents anything in it.

Switches

Every name in this release

The 47 literal strings found in the bundle, with the number of entries that name each one. Picking one searches for it. A name is here because this build's code mentions it, which is not the same as it working or being finished.

Slash commands

CLI flags

Environment variables

Settings and names in the code

Feedback