Follow Discord

Claude Code v2.1.311

503 entries read Grouped into 425 v2.1.310 → v2.1.311 Mods API: +4 added · 0 removed · 3 changed · 2 docs only Markdown JSON Follow Unofficial

Claude Code can now download files with two new tools, FetchAttachment and DownloadTaskFile. Self-hosted runners get --hold-idle-file and --max-hold-min, which keep a session held while a file you update stays recent. Apps that embed Claude Code can pass a separate sign-in token for cloud sessions with CLAUDE_CODE_SESSIONS_OAUTH_TOKEN. Organizations can now list fingerprints of approved plugin releases in managed settings. A hooks plugin then loads only from a folder that matches one of them. Setting CLAUDE_CODE_PLAIN_DELTA_FAST_PATH turns on a quicker way to pass along plain streamed text when Claude Code runs without its interactive screen.

Some work in this build is not switched on yet. A built-in plugin that connects Claude to the Claude Platform developer docs is bundled but stays off. Background memory extraction can be made to run as a task you can stop, but this is off by default. Claude Code can also combine held-back pieces of a streamed reply into one update, and that is off unless switched on remotely. Several new server-controlled switches appear too, and what they control is not known.

Agent worktrees are no longer removed while another task is still working inside them. Attachments too big to hold in memory are now saved to the uploads folder instead of being rejected. Large images also get a smaller copy for Claude. Interrupting Claude Code while it reads an MCP resource or folder now cancels the read cleanly. Text with wide characters no longer overflows the terminal, because Claude Code now re-wraps such lines character by character. These are part of the fixes, and the full list is below.

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

Five to try today

Picked from 29 you can use now
  1. New --personal flag and persistentVolumeFromSessionId for cloud sessions

    Claude Code recognizes a --personal flag, and session start-up and cloud session creation gain persistentVolumeFromSessionId

    Interface
  2. New CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS variable and protections that bypass cannot waive

    A new CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS variable appears, and some permission rules are now marked as not waivable in bypass mode

    Permissions & safety
  3. New remote file-download handlers and a prompt-paint layer for plugin UIs

    Remote sessions gain handlers that place downloaded files in a session folder, and plugins can paint text and decorations into the prompt box

    Extensions
  4. New CLAUDE_CODE_PLAIN_DELTA_FAST_PATH setting for headless streaming

    New environment variable CLAUDE_CODE_PLAIN_DELTA_FAST_PATH turns on a shortcut for streamed output in headless sessions

    Extensions
  5. Organizations can pin plugin hooks by digest with pluginDigests

    Managed settings can list pluginDigests on a marketplace, so plugins in prependPlugins or appendPlugins run at the organization tier

    Extensions

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

Read this release → Every row →
411 of 425 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
135 entries here

Internal Changesopen

Continued from page 4

6 more of these are in What probably matters to you, on page 1.

2 entries hereInternals · none marked notable
2 entries hereMemory · none marked notable
·Internal
Under the hood
Useful2 Signal3
Memory unclear

Empty files read as empty, plus a new kind of background memory task#

Empty files are now read as empty text, and a new post-turn memory background task type and notice counter appear

Unclear It is not clear whether the new post-turn memory tasks are ever started or what they do.

Details 0 0 Feedback
2 entries hereMessage Queue · none marked notable
·Internal
Under the hood
Useful1 Signal2
Message Queue unclear

Queued messages now carry a list of tools used#

Messages waiting in the queue, and messages from polling, now carry a record of the tools that were used

Unclear When this record is included, and what it changes for a reader, is not stated.

Details 0 0 Feedback
2 entries hereNetwork · none marked notable
·Internal
Under the hood
Useful1 Signal0
Network unclear

Change to how a too-large download failure is judged#

A download that fails for being too large no longer always counts the same way; Claude Code now runs an extra check first

Unclear It is not known what data is being fetched ahead of time.

Details 0 0 Feedback
2 entries hereShell · none marked notable
2 entries hereTerminal UI · none marked notable
·Internal
Under the hood
Useful1 Signal1
Terminal UI unclear

A UI option now checks the backgroundColor value it is given#

A display option now accepts backgroundColor only as a theme colour name, a raw colour or "transparent"

Unclear Where a reader would set this option is not stated.

Details 0 0 Feedback
Verbatim
Official · Anthropic

Anthropic’s official release notes

Published verbatim by Anthropic for v2.1.311. 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 92 bullets, 18 name something an entry on this page also names, 22 name something no entry here does, and 52 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 --hold-idle-file and --max-hold-min to self-hosted-runner, to keep an idle session while your host reports processes it left running Probably self-hosted-runner-holds-idle-release-while-a-left-running-p, self-hosted-runner-logs-a-leftover-hold-line-in-its-watchdog, self-hosted-runner-can-hold-sessions-while-a-host-file-stays
  • Added a tip for the Explanatory output style, shown when you ask Claude for explanations Nothing to match on
  • Fixed long freezes at startup and after reading or editing files when a CLAUDE.md file holds a very long list item Nothing to match on
  • Fixed interrupting Claude not taking effect until a timeout while an MCP server had not answered a resource read or a skill was still downloading Nothing to match on
  • Fixed standard-context sessions stopping with "Usage credits required for 1M context" when a request ran over 200K tokens; Claude Code now compacts the conversation and continues No entry names this
  • Fixed Write and Edit stalling for up to 5 seconds after they ran, and reporting 0 lines changed, when changing thousands of lines in a file Nothing to match on
  • Fixed subagents being unable to use MCP tools from servers that finish connecting after the subagent starts Nothing to match on
  • Fixed Claude seeing stale MEMORY.md and CLAUDE.md content right after automatic compaction when those files were edited earlier in the session Nothing to match on #92949[BUG] Auto-compaction re-injects the CLAUDE.md/MEMORY.md copy from the last user prompt, not the on-disk file; disk re-read only happens at the next prompt Open
  • Fixed claude -p and SDK sessions saving transcript messages out of order or keeping messages that were taken back No entry names this
  • Fixed SubagentStop hooks running about twice a minute for each running subagent instead of once when it finishes No entry names this
  • Fixed the @ file picker ignoring .ignore/.rgignore negation rules that re-include git-ignored files Nothing to match on
  • Fixed a subagent's isolated worktree being removed while a background subagent it started was still working in it Nothing to match on #94221Worktree auto-cleanup removes a worktree still used by a running nested background agent Open
  • Fixed background agents in auto mode that wait on their own shells starting a new main conversation turn on every wake Nothing to match on
  • Fixed the Bash tool description claiming the working directory always persists between calls Nothing to match on
  • Fixed the environment block naming a shell commands don't run in, such as fish when the Bash tool uses zsh Nothing to match on
  • Fixed claude mcp add, claude mcp remove and /mcp naming the current folder instead of the project entry in ~/.claude.json that holds a local-scope server when run below a repository root Probably mcp-clear-authentication-verifies-the-clear-and-reconnects, slack-mcp-server-gets-a-channel-posting-instruction, claude-api-skill-moved-into-a-plugin-gated-by-tengu-peppy-cr, new-bundled-plugin-cc-plugin-claude-platform-registered-in-t
  • Fixed claude mcp list and claude mcp get showing the error code twice on failed-connection lines (for example ENOENT: ENOENT: …) No entry names this
  • Fixed Remote Control sessions staying on "Connecting" for about two minutes when a network proxy blocks a startup request No entry names this
  • Fixed messages that Claude sends to a cloud or Remote Control session appearing as your own message in the Claude mobile apps Nothing to match on
  • Fixed Claude not being told the cause when a file attached to a message sent over Remote Control or to a cloud session could not be saved because the disk was full, or that a message's attachments past the first 20 were left out Nothing to match on
  • Fixed WebFetch and WebSearch hanging on a stalled response in Cowork cloud sessions; an unfinished request now fails after 300 seconds Nothing to match on
  • Fixed a background session that crashed between turns not being restarted while it was attached, pinned, or had a scheduled task or wake-up set Nothing to match on
  • Fixed the "background service did not respond" error suggesting the disabled claude daemon restart; it now suggests claude daemon stop --any and says it ends background sessions No entry names this
  • Fixed claude respawn <id> starting the background service before reporting that no background session matches the id No entry names this
  • Fixed /effort not warning about a prompt cache miss in plan mode when the plan model differs from the session model Probably effort-line-can-say-it-may-wait-for-your-next-message, effort-step-keybinding-with-cache-miss-confirmation, shiftupdown-bound-to-effort-increasedecrease-in-chat-keyb
  • Fixed /ide saying the VS Code extension was installed before the install finished or when it failed Probably ide-extension-install-flow-and-prompt-footer-spacing, ide-installs-the-extension-with-progress-ui
  • Fixed the Write tool's file preview skipping rows and miscounting hidden lines when a line is wider than the terminal Nothing to match on
  • Fixed ↑ in an agent's chat tab recalling a message that was still waiting to be delivered, so resending it sent a second copy Nothing to match on
  • Fixed Cowork cloud sessions losing their connectors and most tools after a restart when a plugin or your settings named an agent; Cowork cloud sessions now ignore that setting Nothing to match on
  • Fixed agent teams sessions showing an empty task list when coming back with --resume, --continue, /resume or --session-id, including after /clear or a crash, and /branch writing to the original session's list Probably team-lead-process-recorded-clear-keeps-task-list-link, resume-restores-prompt-waits
  • Fixed pasting text that mentions an image file, such as ! open /tmp/shot.png or /review look at /tmp/shot.png, attaching the image and dropping its path from the prompt Probably review-ultra-help-text-clarified #101693Option to disable automatic conversion of image file paths into [Image #N] attachments in the prompt input Open
  • Fixed the feedback draft card showing its 1/2/0 and Esc shortcuts while the prompt has text, when those keys act on the prompt instead of the card Nothing to match on
  • Fixed a lone backslash in quotes or brackets, like "\" or (\), disappearing from Claude's responses No entry names this
  • Fixed agent teammates compacting their history when DISABLE_COMPACT is set Probably disable-compact-env-var-now-treated-specially-by-the-setting, disable-compact-now-also-stops-teammate-in-process-auto-comp
  • Fixed the rewind menu offering "Summarize from here" and "Summarize up to here" when DISABLE_COMPACT is set Probably disable-compact-env-var-now-treated-specially-by-the-setting, disable-compact-now-also-stops-teammate-in-process-auto-comp
  • Fixed a finished /code-review, or another skill that runs in a sub-agent, running a second time when a cloud or background session restarts Probably review-ultra-help-text-clarified
  • Fixed long hidden thinking being cut off as idle on Google Vertex AI, Microsoft Foundry and Claude Platform on AWS, where the endpoint sends thinking progress updates Nothing to match on
  • Fixed /ide saying it had installed the JetBrains plugin when nothing was installed Probably ide-extension-install-flow-and-prompt-footer-spacing, ide-installs-the-extension-with-progress-ui
  • Fixed Claude Pro and Max subscribers being told to ask their admin when their subscription can't be used; the message now points to billing settings Nothing to match on #104116Personal Pro subscription blocked in Claude Code with “organization has disabled Claude subscription access” — affects all projects/sessions, not isolated to one dir Open #91834Claude Code CLI blocked — "Your organization has disabled Claude subscription access" Open
  • Fixed the diff pane opening by itself after an edit in wide fullscreen terminals when it had nothing to show Nothing to match on #101395diff: the pane opens by itself with no file to list Closed
  • Fixed /mcp showing a remote server as failed after "Clear authentication" when the server works without sign-in Probably mcp-clear-authentication-verifies-the-clear-and-reconnects, slack-mcp-server-gets-a-channel-posting-instruction, claude-api-skill-moved-into-a-plugin-gated-by-tengu-peppy-cr, new-bundled-plugin-cc-plugin-claude-platform-registered-in-t
  • Fixed /mcp showing "authenticated" for a remote server that Claude Code sends no credentials to Probably mcp-clear-authentication-verifies-the-clear-and-reconnects, slack-mcp-server-gets-a-channel-posting-instruction, claude-api-skill-moved-into-a-plugin-gated-by-tengu-peppy-cr, new-bundled-plugin-cc-plugin-claude-platform-registered-in-t #98942[BUG] Claude Code marks an anonymous MCP server authenticated when it lists a tool Open
  • Fixed a --plugin-dir folder of plugins loading as one plugin when an empty .mcp.json was at its top Probably empty-mcpjson-is-skipped-claudemd-files-naming-devices-a
  • Fixed /usage never showing large prompt-cache misses under "What's contributing to your limits usage?" No entry names this
  • Fixed status line links staying plain text in background sessions after you open them from a terminal that supports links Nothing to match on
  • Fixed the /rewind confirmation saying the conversation "will be forked" when the later messages are removed from the conversation Probably rewindfork-confirmation-text-now-says-messages-will-be-remo
  • Fixed the /rewind warning that wrongly said manual and Bash edits are never affected by a code restore No entry names this
  • Fixed plan approval in screen reader mode sending feedback you had dismissed with Escape Nothing to match on
  • Fixed Claude Code retrying requests the API marked not to retry, which could hold a turn for minutes or, in unattended retry mode (CLAUDE_CODE_RETRY_WATCHDOG), indefinitely No entry names this
  • Linux: Fixed sandboxed Bash commands failing with bwrap: Can't create file when a --plugin-dir folder was also an added directory and permissions.blockReadsOutsideWorkingDirectories was on No entry names this
  • Self-hosted runner: Fixed a session failing to start when a rate limit (HTTP 429, or a git wrapper that exits 75) blocks an added read-only repository; it now starts without that repository Nothing to match on
  • Improved startup time for Pro and Max accounts by skipping two network requests on launches within an hour of the last check Nothing to match on
  • Improved /teleport and claude --teleport to warn when a compacted cloud session loads from its last compaction, so the messages it summarized aren't in the local copy No entry names this
  • Improved the messages shown when a background session's process exits: they no longer promise a restart that isn't coming, and they say how to resume the session Nothing to match on
  • Improved artifacts with several views: Claude now routes each view on the link's #name and no longer says the address bar stays the same as you switch views Nothing to match on
  • Improved shell commands that reach their timeout: the result now shows the output so far and says the command is still running in the background Nothing to match on
  • Improved compaction: when the model's reply has no summary in it, Claude Code now usually asks for the summary once more before it replaces the conversation Nothing to match on
  • Improved the Artifact tool's choice between a page and a document: explainers and visual or interactive work become artifact pages; documents are for writing people keep editing or pass around Nothing to match on
  • Improved startup time for launches whose only arguments are options and their values, such as claude --model opus No entry names this
  • Improved the "Connection dropped" API error: it now says where to look first (the proxy or gateway in use, else VPN or firewall; Anthropic API only, Bedrock, Vertex and Foundry are unchanged) No entry names this
  • Improved screen reader mode: deleting a rule in /permissions says "Deleted allow rule …" right away Probably artifacts-withheld-bearer-refusal-message-changed
  • Improved the message shown when a pasted sign-in code is refused: it now says the code may have expired or been used, and to sign in again Nothing to match on
  • Improved Slack connector sends: Claude now checks a channel's topic for posting rules before messaging a channel you didn't name Nothing to match on
  • Improved screen reader mode: Claude's questions are listed as "Questions: Color (answered), Pages", without arrows or symbols No entry names this
  • Changed ultrathink in the interactive terminal to run its turn at xhigh effort on Opus 5.5, Sonnet 5.5, Haiku 5.5 and Fable 5.1 through Anthropic's API; typed while Claude is working, it raises the rest of that turn Nothing to match on
  • Changed the ultrathink rainbow to appear only where the keyword can raise effort, and not when the word is quoted or part of a file path Nothing to match on
  • Changed Ctrl+D in agent view to match the prompt: on an empty input, pressing it twice exits Nothing to match on
  • Changed --output-format json and stream-json output to write DEL, C1 control and Unicode format characters inside strings as \uXXXX escapes; parsed values are unchanged No entry names this
  • Changed model names and IDs to drop the [1m] suffix and its label on models where the suffix has no effect; the suffix is still accepted Probably model-name-resolution-no-longer-special-cases-the-1m-suffix
  • Changed startup warnings about permission rules in settings files to show once per user until the rule changes Nothing to match on
  • Changed /code-review to tell Claude to put the effort level first and use max only when asked Probably review-ultra-help-text-clarified
  • Changed DISABLE_COMPACT in settings files and in a mod's $.env.set so they can only turn compaction off, not back on Probably disable-compact-env-var-now-treated-specially-by-the-setting, disable-compact-now-also-stops-teammate-in-process-auto-comp
  • Changed Claude Code on Bedrock, Mantle, Vertex, and Foundry to load model settings from a signed file on downloads.claude.ai; set CLAUDE_CODE_MODEL_CATALOG=off to turn this off No entry names this
  • Changed sessions that set CLAUDE_CODE_SYNC_SKILLS with feature-flag fetching off to reuse a claude.ai skills list up to 10 minutes old that another session on the machine fetched No entry names this
  • Changed clicks on scrollbar arrows and bars in fullscreen lists to act when the mouse button is released, so moving off the scrollbar before letting go cancels the click Nothing to match on
  • Changed claude purge to say it deletes data only on this computer, not anything stored by Anthropic No entry names this
  • [VSCode] Added syntax coloring to code blocks in Claude's replies, in light, dark and high contrast dark themes Nothing to match on
  • [VSCode] Added a "Running UserPromptSubmit hooks" spinner status and screen reader announcement for slow UserPromptSubmit hooks No entry names this
  • [VSCode] Fixed custom skills and custom slash commands sent from the VS Code or JetBrains panel leaving out the open file or selected lines that ordinary messages include (anthropics/claude-code#102799) Nothing to match on
  • [VSCode] Fixed the extension host freezing while the login shell ran its start-up files to read PATH on macOS and Linux Nothing to match on
  • [VSCode] Fixed clicking an image in a tool result, or closing its preview, also opening the result's text in an editor tab Nothing to match on
  • [VSCode] Fixed voice dictation continuing to record after a message was sent with the Send button; sending now stops dictation first, as pressing Enter already did Nothing to match on
  • [VSCode] Changed the extension to start Claude Code sessions with DISABLE_TELEMETRY set while VS Code's telemetry setting is off, so they send no usage metrics or error reports and fetch no feature flags No entry names this
  • [VSCode] Changed the session list side bar to load Web sessions when the Web tab is first opened, not at startup Nothing to match on
  • [Cloud sessions] Fixed routines in Anthropic-hosted environments staying locked after their owner left the organization and rejoined; the owner can now turn them back on Nothing to match on
  • [Cloud sessions] Fixed a failed routine API token delete or regenerate showing nothing if the edit dialog had already closed; it now shows an error toast Nothing to match on
  • [Cloud sessions] Fixed cloud environment dialogs, including the admin dialog, accepting duplicate names; they now refuse a name another listed environment already has Nothing to match on
  • [Claude Tag] Added a Skills view to Claude Tag analytics showing how often Claude runs each attached skill in Slack channels and which go unused, with Usage links in admin settings Nothing to match on
  • [Claude Tag] Improved Claude Tag routines that run in a new session: a run with nothing to report can now end without posting a throwaway message to the channel Nothing to match on
  • [Claude Tag] Changed Claude Tag admin settings to show a lock instead of # for private Slack channels that your own Slack account can see Nothing to match on
  • [Code Review] Improved Code Review's check run to say no further automatic review will start when the model still can't analyze a change on the automatic retry Nothing to match on
  • [Code Review] Improved Code Review reliability: a review whose session fails to start because of a transient server fault is now retried once automatically, and its check run says so Nothing to match on

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

System prompt

1 of 30 tool descriptions changed. The appended system-reminder blocks moved: 4 lines added, 5 lines removed.

Claude Code, interactive mode

12 prompt changes in this release could not be quoted from the build, so no entry on this page describes them.

Documentation

What the docs did around this release

437 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 79 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