What this read moved
1–13 of 13changelog Changed · +99 / -0 lines
This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.
from line 6
66
77Run `claude --version` to check your installed version.
88
9<Update label="2.1.275" description="September 17, 2026">
10 * Added the signed-in account to Claude apps gateway sign-in: when the gateway names it, you confirm it before the credential is saved, and `/status` shows it
11 * Added a send-now key (ctrl+enter, or ctrl+x ctrl+s) that interrupts the current turn and sends all queued messages at once; sent and queued messages show in gray until the model receives them
12 * Added a startup warning when a configured `otelHeadersHelper` fails, so sessions that silently export no telemetry are noticed
13 * Added syncing of the skills and plugins enabled on your claude.ai account to terminal sessions signed in with it; opt out with `syncClaudeAiSkills: false` or `syncClaudeAiPlugins: false`
14 * Added `/plugin install <plugin> --marketplace <source>`, which offers to add the marketplace before installing the plugin
15 * Fixed a restored memory file's age note changing between requests after a compaction or resume, which caused prompt cache misses
16 * Fixed `--forward-subagent-text` stream-json and SDK output dropping the messages of subagents spawned by a `context: fork` skill, and of forked skills invoked by a subagent or another forked skill
17 * Fixed @-mention file suggestions being buried below MCP resources when using a custom `fileSuggestion` command or typing `@.`/`@./`
18 * Fixed fullscreen mode placing background-task completion notices beneath a long turn's collapsed tool row instead of where they arrived; each notice now closes the open row
19 * Fixed `claude plugin marketplace update` deleting a GitHub marketplace's local copy when the fetch failed and the marketplace was named after its repository
20 * Fixed plugin and marketplace messages, logs and `claude plugin marketplace list` showing a password or token stored in a git, ssh or marketplace URL
21 * Fixed a resumed cloud session leaving an unanswered question open in the transcript after a queued message superseded it
22 * Fixed vim mode placing the cursor one character right after a dot-repeated "!" or a fast-typed "i!" switched a non-empty prompt into shell mode
23 * Fixed fullscreen mode freezing or blanking for several seconds when scrolling up past a large file diff
24 * Fixed a stray `</ccmemory>`-style closing tag occasionally appearing in responses
25 * Fixed plugin messages, logs and the VS Code plugin dialog showing the wrong server for some git addresses
26 * Fixed a terminal `API Error: 400` on every turn for users behind a network gateway that rewrites API error responses when a beta request header is rejected
27 * Fixed sandboxed Bash commands on Linux reporting exit code 0 for failed commands when the shell is zsh
28 * Fixed the Read tool hanging instead of reporting an error when part of a large file could not be decoded under memory pressure
29 * Fixed `--resume`, the resume picker preview, resumed background agents and the transcript view failing on a session whose saved history contains a malformed task-reminder or @-file attachment entry
30 * Fixed a crash when resuming a conversation whose transcript contains a malformed message entry, and a fullscreen crash when such a conversation received new messages while scrolled up
31 * Fixed sessions failing to resume or start when their saved transcript contains a malformed message content block
32 * Fixed Grep, Glob and @-file suggestions hanging or running out of memory on searches over the 20MB output cap, and system ripgrep reporting "no matches" instead of an error after a flood of warnings
33 * Fixed `/rewind` in a forked or background session restoring a zero-filled or truncated file when the session's file-history backups could not be fully copied
34 * Fixed fullscreen sessions sometimes exiting with "Claude Code exited after an unrecoverable interface error" when typing fast or holding a key with the slash-command dropdown open
35 * Fixed background sessions crashing and restarting their worker when a command fed through stdin ran on a machine that had run out of file descriptors
36 * Fixed a crash at launch when `~/.claude.json` holds a malformed `mcpNeedsAuthNoticed` value
37 * Fixed `--resume` and `--continue` dropping a conversation's earlier thinking when a built-in tool it started with has since been switched off by a server-side flag
38 * Fixed text selected with the mouse in the fullscreen `claude --resume` session picker never reaching the clipboard
39 * Fixed plugin reload previews replacing a running session's extracted plugin files when the plugin was loaded from a `--plugin-dir` or `--plugin-url` archive
40 * Fixed self-hosted runners with `--drain-wait-sec` losing the final result of a turn that finished during a SIGTERM drain; the runner now waits briefly for the turn to be reported
41 * Fixed `SubagentStop` hooks with a specific `matcher` firing for every stopping subagent whose agent type was empty
42 * Fixed sandboxed Bash commands being unable to write to project directories named `hooks/` or `config/`
43 * Fixed Artifact updates failing with "File not found" after a session resumes on another machine or its scratchpad is cleared: the page's last published version is restored
44 * Fixed `/update-config` writing `Write(path)` permission rules, which file permission checks don't match, instead of `Edit(path)` rules
45 * Fixed four dead documentation URLs (Pricing, Computer Use, Skills, CLI) in the bundled claude-api skill's live-sources table
46 * Improved prompt caching for a `--system-prompt` that contains a `__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__` line: the text above it is now cached globally, as the SDK's array form already is
47 * Improved the `/desktop` error when Claude Desktop does not open: it now says why and what to do next
48 * Improved the Artifact tool's publish and read results: they now say who can open the page and what the owner's Share menu offers
49 * Improved artifact publish results: they name the tab icon sent, warn when the page contains a NUL byte, and retry a flaky fetch of the newer page to merge after a stale publish
50 * Improved pasted and attached images: they are now saved where Claude can open them as files without a permission prompt, including in Desktop and VS Code
51 * Improved the Artifact tool's guidance so Claude updates a shared artifact in place when you were given edit access to it, instead of publishing a separate copy
52 * Improved plan-usage reads: editor windows and non-interactive sessions on one machine now share a read made in the last minute instead of each calling the usage endpoint
53 * Improved the `ListPlugins` tool description so Claude knows it lists plugins enabled on your claude.ai account, not plugins installed locally with `/plugin`
54 * Improved responsiveness when the terminal is slow or paused: output no longer falls further behind while the terminal catches up
55 * Improved Write and Edit results for files in the synced account-skills folder: they now say the change is not saved to your account and how to save it
56 * Updated `/logout` for Claude apps gateway sign-ins to also end the session on gateways that advertise token revocation
57 * Changed hosted sessions to keep an unanswered permission prompt up after a container restart, instead of asking again
58 * Changed the Artifact tool to ask for a one-word tab icon on a first publish instead of an emoji favicon
59 * Changed Claude in Chrome in auto mode to skip the extension's per-site check for classifier-approved calls, as bypass mode does, fixing `browser_batch` "Permission denied" after a redirect
60 * Changed plugins installed from an npm source to be fetched with `npm pack --ignore-scripts` and integrity-verified, so a package's install scripts no longer run
61 * Changed scheduled and Run now routine runs to save data to, and republish the page of, an artifact you can edit without asking; public artifacts, first publishes and deletes still ask
62 * Removed the startup notice that told you a one-off scheduled routine had run since your last session
63 * \[VSCode] Added viewing, editing and deleting a saved memory inside the Memory dialog
64 * \[VSCode] Added sending an attached image without typing any text
65 * \[VSCode] Added a Retry link to the MCP servers dialog when the server list fails to load
66 * \[VSCode] Added accept and reject buttons under each change in the proposed-change diff tab, so an edit can be reviewed change by change
67 * \[VSCode] Fixed the transcript creeping toward the bottom in small steps while a permission card waits and content keeps arriving
68 * \[VSCode] Fixed rewound and forked conversations not keeping the permission mode you had picked for the original conversation
69 * \[VSCode] Fixed an empty `CLAUDE_CONFIG_DIR` entry in the `environmentVariables` setting making Claude Code keep its files in the workspace
70 * \[VSCode] Fixed plugin install links opening the Manage plugins dialog for plugin names and marketplace addresses that can't be used in a link
71 * \[VSCode] Fixed Remote Control staying shown as connected after a turn-off that Claude Code reported as failed; it now shows as off
72 * \[VSCode] Fixed the scroll to the bottom on send stopping short of the reply when the reply starts arriving during the scroll
73 * \[VSCode] Fixed the agent map showing agents a crash left unfinished as stopped instead of failed once the session is reopened
74 * \[VSCode] Fixed the "Continuing the step" notice not appearing, and the continue limit resetting, after a reload that follows a crash with background tasks still running
75 * \[VSCode] Fixed the session list showing when a session was last reopened, such as after a window reload, instead of when its last message was sent
76 * \[VSCode] Fixed "Fork conversation from here" failing on the message right after one sent while Claude was working
77 * \[VSCode] Fixed the prompt cache clock showing too few minutes after reopening a session with a message sent while Claude was working
78 * \[VSCode] Fixed a background agent that finished while Claude was running a tool losing its completion notice, and its result on the agent map, after a window reload
79 * \[VSCode] Fixed a rare case where text selected in a git-ignored file could be sent to Claude after the extension was unresponsive for several seconds
80 * \[VSCode] Fixed renaming a running session reverting to the generated name (regression in 2.1.269)
81 * \[VSCode] Fixed some claude.ai/code sessions opening in VS Code as an empty conversation with no messages
82 * \[VSCode] Fixed slash commands typed while Claude is responding being sent to the model as text instead of running once the response finishes
83 * \[VSCode] Fixed unreadable code in the plan preview and the Hooks and Permission rules dialogs with the High Contrast Light theme
84 * \[VSCode] Fixed `/remote-control` being ignored while Remote Control is still connecting: running it again now turns Remote Control off immediately
85 * \[VSCode] Fixed the conversation pulling you back to the bottom while a reply streams after you scroll up, and added a `claudeCode.scrollToBottomOnSend` setting to turn off the jump on send
86 * \[VSCode] Fixed the Manage plugins dialog showing a password or token that was typed into a marketplace URL
87 * \[VSCode] Improved the agent map: the pill counts running agents and turns red after a failure, the main agent stays in view while the map scrolls, and agents sort by state then end time
88 * \[VSCode] Changed New session in a Claude editor tab to open in the sidebar when Preferred Location is set to Sidebar, instead of always opening another tab
89 * \[VSCode] Changed a message sent while Claude is working to wait at the bottom of the conversation until Claude starts on it
90 * \[Claude Code on the web] Added a "New routine" button to the page shown when a routine link no longer resolves, next to the link back to your routines list
91 * \[Claude Code on the web] Fixed routine "paused" and "on hold" notifications being cut off mid-sentence; the paused-subscription notice now says to turn the routine back on yourself
92 * \[Claude Code on the web] Fixed cloud environments with a very long allowed-domains list saving fine and then failing every session start; saving now fails up front and says how much to trim
93 * \[Claude Code on the web] Fixed Claude's guidance when a cloud session on a personal account is denied GitHub access: it now links to claude.ai/connect-github instead of an admin settings page
94 * \[Claude Code on the web] Improved what Claude tells you when asked to edit, delete or run a routine it didn't create: it now links to the routine's page so you can do it yourself
95 * \[Claude Tag] Added attach conditions for access bundles in Claude Tag settings: an Owner can let a bundle also apply in channels with guests or Slack Connect channels, not just member-only
96 * \[Claude Tag] Added Amazon CloudWatch, CloudWatch Logs, Amazon SNS, Google Cloud Monitoring and Cloud Logging presets to an access bundle's Credentials tab in Claude Tag admin settings
97 * \[Claude Tag] Added Datadog presets for the US3, AP1, AP2 and US1-FED sites; new Datadog connections are now limited to Datadog's read and query API routes
98 * \[Claude Tag] Fixed S3 uploads from recent AWS CLI and SDK versions failing with a 502 error when sent through an AWS connection
99 * \[Claude Tag] Fixed Claude treating a channel as inactive, and skipping untagged messages there, while it was still posting in that channel from a routine or a thread
100 * \[Claude Tag] Fixed a thread's "Claude \[task]" display name reverting to plain "Claude" after the session behind that thread was refreshed or restarted
101 * \[Claude Tag] Fixed the model you switched to in a Slack thread silently reverting to the channel's default after that thread's session was restarted or refreshed
102 * \[Claude Tag] Fixed Claude sometimes replying twice when another app or bot @mentioned it in a top-level channel message
103 * \[Claude Tag] Improved Claude's notices in Enterprise Grid channels shared across workspaces: they now say when no workspace is set up yet, or why only organization defaults apply
104 * \[Code Review] Fixed reviews occasionally dropping part of their analysis when one of the reviewing agents returned its findings in an unexpected format
105 * \[Code Review] Fixed pull requests with more than 100 Claude reviews getting a full re-review on every clean merge from the base branch instead of the lighter merge-focused review
106</Update>
107
9108<Update label="2.1.274" description="September 17, 2026">
10109 * Added a visible warning when memory usage is critical, with steps to free memory or restart safely
11110 * Added `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` to bound how long the first non-interactive turn waits for connecting MCP servers (`0` = don't wait)
from line 1814
17151814 * Changed fast mode to report on the stream when usage credits run out mid-session, instead of failing silently
17161815 * Changed Monitor: a watch that exits without producing any output now says so instead of reporting "stream ended"
17171816 * Changed the Gateway `model` field validation: non-string values are rejected with a 400 instead of being forwarded
1718 * Removed the repeated "Permission mode changed while the auto-mode classifier call was queued" notice from approval prompts
1719</Update>
17201817
1721<Update label="2.1.220" description="July 25, 2026">
1722 * Bug fixes and reliability improvements
1723</Update>
1724
1725<Update label="2.1.219" description="July 24, 2026">
1726 * Added Claude Opus 5 (`claude-opus-5`), now the default Opus model — 1M context, fast mode at $10/$50 per Mtok
1727 * Added `sandbox.network.strictAllowlist` setting to deny non-allowlisted hosts for sandboxed commands without prompting
1728 * Added `DirectoryAdded` hook that fires after `/add-dir` or the SDK `register_repo_root` control request registers a new working directory mid-session
1729 * Added `mcp_server_errors` to the headless stream-json init event, listing `--mcp-config` entries skipped by config validation; terminal runs print a startup warning
1730 * Added the `workflowSizeGuideline` settings key so the advisory Dynamic workflow size guideline can be set from any settings file; the `/config` row is hidden while one does
1731 * Added nested subagent forwarding in stream-json: subagents spawned at depth-2+ now appear when `--forward-subagent-text` is set, keyed by their spawning Agent `tool_use` id
1732 * Fixed `claude -p` text output dropping the answer already produced when a turn dies on a mid-stream API error
1733 * Added HTTP status and error text to `claude mcp list` and `/mcp` when a server fails to connect, and a warning for MCP config values with hidden leading or trailing whitespace
1734 * Fixed the Fable model row showing "Requires usage credits" for plans that include it, when a stale cache had baked the label in
1735 * Fixed the `/model` picker showing the merged Opus row as plain "Opus" instead of "Opus (1M context)"
1736 * Fixed copy-on-select inside GNU screen printing base64 into the terminal instead of copying the selection
1737 * Fixed Remote Control clients keeping a stale fast-mode status after a model switch, reconnect, or failed org check
1738 * Fixed `CLAUDE_CODE_GIT_BASH_PATH` on Windows exiting or being used as bash when the path isn't a bash/sh binary; it's now ignored with a warning
1739 * Fixed Vim mode: pressing ← on an empty prompt now returns to the agent view from NORMAL mode, not just INSERT
1740 * Fixed screen-reader mode rewriting the entire input line on every keystroke instead of echoing only the typed character
1741 * Improved the "Remote Control is only available via api.anthropic.com" error to name the specific setting that caused it
1742 * Improved `claude --teleport` to show which repo your current checkout points at when it doesn't match the session's repo
1743 * Changed dynamic workflows to default to a medium size guideline (aim for fewer than 15 agents); pick another size or unrestricted with Dynamic workflow size in `/config`
1744 * Changed managed MCP allowlist/denylist `${VAR}` entries to resolve from the startup environment and managed-settings env instead of settings-file env
1745 * Changed the `/model` picker to highlight only the newest model's name, so the highlight marks the new release rather than an arbitrary subset of the list
1746 * Added the current default workflow size to the running-workflow status line, with a pointer to `/config` for changing it
1747 * Removed Opus 4.7 from fast mode; `/fast` now applies to Opus 5 and Opus 4.8
1748 * Updated the claude-api skill to default to Claude Opus 5, with a migration path from Opus 4.8
1749 * Subagents can now spawn nested subagents up to depth 3 by default (was 1); set CLAUDE\_CODE\_MAX\_SUBAGENT\_SPAWN\_DEPTH=1 to disable nesting
1750</Update>
1751
1752<Update label="2.1.218" description="July 22, 2026">
1753 * Changed `/code-review` to run as a background subagent, so review work no longer fills your conversation and keeps stacked slash commands as its review target
1754 * Added screen-reader announcements of deleted text for word and line deletions (`Option+Delete`, `Ctrl+W`, `Cmd+Backspace`, `Ctrl+U`, `Ctrl+K`) in `--ax-screen-reader` mode
1755 * Fixed Windows paths with `\u`-prefixed segments (like `C:\Users\unicorn`) being corrupted into CJK characters in tool inputs, which made those files inaccessible
1756 * Fixed the left arrow key discarding the conversation with no undo: presses right after editing now ask to confirm, and Esc in the agent view returns to the conversation it backgrounded
1757 * Fixed multi-line paste collapsing into one line with `j` in place of newlines in terminals that encode pasted newlines as Ctrl+J
1758 * Fixed `/context` reporting stale pre-compact token usage after compacting from the message picker
1759 * Fixed `/ultrareview` failing on descriptive arguments like "review my auth changes" — they now run a review of your current branch with the text applied as a note to the findings
1760 * Fixed `/code-review ultra` silently running a local review in non-interactive sessions — it now launches the cloud review
1761 * Fixed gateway spend metering to price Bedrock application-inference-profile ARNs and other config-mapped upstream model IDs at the configured model's rates
1762 * Fixed mojibake when a long IDE selection was truncated mid-emoji, and a case where a tool executor error could be silently dropped
1763 * Fixed an engine teardown race that could start and abandon a phantom turn, and made input pushed after close consistently rejected
1764 * Fixed spurious "\[Request interrupted by user]" messages after interrupted tool calls, and an unpaired `tool_use` block left in the transcript when a tool aborted mid-response
1765 * Fixed VoiceOver reading "new line" instead of echoing the typed space at the end of the input in `--ax-screen-reader` mode
1766 * Fixed plugin and settings panels not moving the terminal cursor to the focused row, so screen readers and magnifiers can follow arrow-key navigation
1767 * Fixed crashes (maximum call stack exceeded) when a deeply nested watched directory tree was deleted or moved, and when rendering deeply nested UI trees
1768 * Fixed pull request events occasionally being lost when a session exited immediately after creating or linking a PR
1769 * Fixed the Bedrock setup wizard failing profile verification for assume-role profiles in partitioned AWS regions and on proxy-only networks
1770 * Fixed rare negative or incorrect turn duration measurements after a system clock adjustment by timing turns with a monotonic clock
1771 * Fixed the "N MCP servers need authentication" startup notice over-counting claude.ai connectors that aren't connected in claude.ai
1772 * Fixed prompt history entries being dropped or duplicated when history writes raced or failed
1773 * Fixed a retry loop that re-sent identical doomed requests after a context-overflow error with a large thinking budget; `Ctrl+B` backgrounding now applies the same background-shell caps as other paths
1774 * Fixed agent frontmatter hooks running from untrusted folders: hooks now require the agent file's own folder to have accepted workspace trust
1775 * Fixed fork-session lineage being lost after compaction in headless and SDK sessions
1776 * Fixed a resumed session failing every turn, or crashing on resume, when its history held a malformed delta attachment
1777 * Improved `/ultrareview` error feedback so Claude can correct an invalid argument instead of retrying it unchanged
1778 * Improved auto mode: the dangerous-rm, background-`&`, and suspicious-Windows-path checks no longer open permission dialogs; the auto-mode classifier adjudicates them instead
1779 * Improved sandbox command restrictions for IDE interactions
1780 * Improved trust dialogs to name the repository root the grant covers
1781 * Changed `/deep-research` to start only when invoked manually; Claude no longer launches it on its own
1782 * Changed plan mode with auto to no longer prompt for Bash commands the static analyzer can't prove read-only; the auto-mode classifier judges them instead
1783 * Added an announcement when fast mode changes as a result of switching models via `/config model=<x>` or Remote Control
1784 * Changed server-managed settings so benign feature and cost toggles no longer trigger the settings-approval prompt
1785 * Changed agent markdown files to reject agent names containing `:`, which is reserved for plugin namespacing
1786 * Changed skills with `context: fork` to run in the background by default; opt out per skill with `background: false`
1787 * Added `yes`/`no`/`on`/`off`/`1`/`0` (case-insensitive) as accepted values for skill and plugin frontmatter booleans, alongside `true`/`false`
1788 * Fixed remote sessions continuing to send heartbeats after their worker was replaced, which left long-lived desktop and IDE processes retrying a rejected request every few seconds forever
1789</Update>
1790
1791<Update label="2.1.217" description="July 21, 2026">
1792 * Added emoji shortcode autocomplete in the prompt input: type `:heart:` to insert ❤️, or `:hea` for suggestions — disable with the `emojiCompletionEnabled` setting
1793 * Added warnings when transcript writes are failing (e.g. disk full) or when session saving is off due to an inherited environment variable, instead of losing transcripts silently
1794 * Fixed a memory leak where truncated MCP tool outputs kept the full untruncated result in memory for the rest of the session
1795 * Fixed Windows auto-update failures that could leave `claude.exe` missing; failed updates now restore the preserved executable automatically
1796 * Fixed background session isolation not canonicalizing symlinked working directories, which could let sessions escape their workspace folder
1797 * Fixed auto-compact never triggering for Claude Opus 4.8 on Bedrock and `/compact` failing once over the limit
1798 * Fixed corporate mTLS, TLS-verify, OAuth scope, and proxy settings being ignored in Claude Desktop sessions
1799 * Fixed screen reader mode's startup announcement being cut off by the first prompt render, and the thinking status row re-rendering every few seconds to update elapsed time and token counts
1800 * Fixed managed settings that set `OTEL_EXPORTER_OTLP_ENDPOINT` not governing all signals — lower-scope signal-specific overrides no longer redirect telemetry away from the managed endpoint
1801 * Fixed `--resume`/`--continue` and `/resume` failing with a TypeError when a transcript has a malformed attachment entry
1802 * Fixed Remote Control sessions not showing a pending permission prompt or dialog to viewers that connected after it appeared
1803 * Fixed background shells sometimes becoming impossible to stop after a session is sent to the background (`/background` or `←`) or when the session exits on a heavily loaded machine, most visible on Windows
1804 * Fixed a `CLAUDE.md` or `SKILL.md` paths frontmatter value with many brace groups OOM-killing or stalling the CLI at startup — brace expansion is now budget-bounded
1805 * Fixed the transcript preview sitting flush against the input area when attaching to a starting background session; it now leaves the same one-line gap as the live layout, so the transcript no longer shifts when the session takes over
1806 * Improved footer PR badge links to be clickable hyperlinks even when terminal support can't be detected (e.g. over ssh/tmux); set `FORCE_HYPERLINK=0` to opt out
1807 * Changed the login-expiry warning to appear 3 days before expiry instead of 5
1808 * Capped the frontend-design plugin suggestion tip at 3 lifetime impressions instead of repeating indefinitely
1809 * Added a cap on concurrently-running subagents (default 20, override with `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS`) so one message can't fan out unbounded background agents
1810 * Changed subagents to no longer spawn nested subagents by default; set `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` to allow deeper nesting
1811 * Fixed `--max-budget-usd` not stopping background subagents: once the cap is reached, new spawns are denied and running background agents are halted
1812</Update>
1813
1814<Update label="2.1.216" description="July 20, 2026">
1815 * Added `sandbox.filesystem.disabled` setting to skip filesystem isolation while keeping network egress control
1816 * Fixed a slowdown in long sessions where message normalization cost grew quadratically with the number of turns, causing multi-second stalls and slow resumes
1817 * Fixed auto mode denying commands with "HTTP 401" classifier errors after the OAuth token expired or rotated mid-session
1818 * Fixed AskUserQuestion telling Claude to continue even when your answer asked it to wait or explain first — free-text answers now get neutral wording
1819 * Fixed Claude Code on the web re-asking the same question and dropping your answer after the session sat idle for a few minutes
1820 * Fixed @-mentions silently attaching nothing after file-modifying hooks, vim dot-repeat of `c`-operators and paste, statusline running twice on resume, and resume-picker hangs on failure
1821 * Fixed resumed background agent sessions reverting to the default agent: the agent's prompt and tool restrictions are now restored
1822 * Fixed worktree-isolated subagents redirecting git into the shared checkout via `git -C`, `--git-dir`, or `GIT_DIR`/`GIT_WORK_TREE`
1823 * Fixed worktree sessions landing in another project's leftover worktree when the working directory did not match the selected project
1824 * Fixed background sessions whose worktree has no git repository being undeletable
1825 * Fixed `claude daemon stop --any` potentially terminating an unrelated process via a stale legacy daemon lockfile
1826 * Fixed Esc-Esc at an idle prompt not opening the rewind picker in long-running sessions with background tasks
1827 * Fixed Bash command permission checking for compound statements with redirects inside `&&` lists or negations
1828 * Fixed pressing Ctrl+X twice in the agent list failing to delete a session, and deleted sessions reappearing when their background worker had died
1829 * Fixed background subagents getting cancelled when a high-priority message arrives during their startup window
1830 * Fixed mouse and focus garbage in the terminal while a GUI editor from `/memory`, `/plan`, `/keybindings`, or Ctrl+G is open; `/memory` no longer waits for the editor to close
1831 * Fixed Claude-in-Chrome 403-looping on reconnect when the session's OAuth token lacks a required scope
1832 * Fixed workflow saves and scheduled-task writes following a symlink at `.claude`, which could redirect writes outside the project
1833 * Fixed MCP re-authenticate revoking working credentials before the new sign-in succeeds, and the reconnect needs-auth message in background sessions pointing at an unusable command
1834 * Fixed read-only commands on W
claude-directory Changed · +19 / -17 lines
from line 1533
15331533| `feedback-bundles/` | Redacted transcript archives written by `/feedback` on third-party providers or when no Anthropic credentials are configured, for sending to your Anthropic account team |
15341534| `feedback/drafts/` | Queued [Claude-drafted feedback](/docs/en/tools-reference#sendfeedback-tool-behavior) awaiting your review in `/feedback`. Swept after `cleanupPeriodDays` or 30 days, whichever is shorter. When the queue is at its 10-draft limit, Claude Code deletes the oldest draft to make room. |
15351535| `usage-data/` | `report.html` and timestamped report copies written by [`/insights`](/docs/en/costs#analyze-your-usage-patterns), plus cached per-session analysis data used to build them |
1536| `skills/.trash/`, `plugins/.trash/` | [Skills](/docs/en/skills#how-synced-skills-behave) and [plugins](/docs/en/plugins-reference#synced-plugins) synced from claude.ai that Claude Code removed. Moved here instead of deleted so you can recover the files |
15361537| `todos/`, `statsig/`, `logs/` | Legacy directories from older versions. No longer written. The sweep removes their contents and then the empty directory. |
15371538
15381539Session files in `sessions/`, auto memory, and Claude Desktop and Cowork transcripts each follow their own retention rule:
from line 1634
16331634
16341635You can also delete any of the application-data paths above by hand, apart from the [state files to keep](#state-files-to-keep). New sessions are unaffected. The table below shows what you lose for past sessions.
16351636
1636| Delete | You lose |
1637| ---------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
1638| `~/.claude/projects/` | Resume, continue, and rewind for past sessions, and auto memory for every project |
1639| `~/.claude/history.jsonl` | Up-arrow prompt recall, `Ctrl+R` history search, and `!` shell-command completion |
1640| `~/.claude/paste-cache/` | Pasted text in recalled prompts; see [paste large content](/docs/en/terminal-config#paste-large-content) |
1641| `~/.claude/uploads/` | Attachments that past [Remote Control](/docs/en/remote-control) sessions refer to by path |
1642| `~/.claude/file-history/` | Checkpoint restore for past sessions |
1643| `~/.claude/stats-cache.json` | Historical totals shown by `/usage` |
1644| `~/.claude/usage-data/` | Past [`/insights`](/docs/en/costs#analyze-your-usage-patterns) reports and the cached analysis data used to build them |
1645| `~/.claude/feedback-bundles/` | Feedback and bug-report archives you haven't yet sent to your Anthropic account team |
1646| `~/.claude/feedback/drafts/` | [Claude-drafted feedback](/docs/en/tools-reference#sendfeedback-tool-behavior) you haven't sent |
1647| `~/.claude/remote-settings.json` | Nothing. Re-fetched on next launch. |
1648| `~/.claude/cache/changelog.md` | Nothing. Refreshed in the background. |
1649| `~/.claude/policy-limits.json` | Nothing. Refreshed automatically. |
1650| `~/.claude/tasks/` | Task lists that a resumed session would pick up |
1651| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/image-cache/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Nothing user-facing |
1652| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/` | Nothing. Legacy directories not written by current versions. |
1637| Delete | You lose |
1638| ---------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1639| `~/.claude/projects/` | Resume, continue, and rewind for past sessions, and auto memory for every project |
1640| `~/.claude/history.jsonl` | Up-arrow prompt recall, `Ctrl+R` history search, and `!` shell-command completion |
1641| `~/.claude/paste-cache/` | Pasted text in recalled prompts; see [paste large content](/docs/en/terminal-config#paste-large-content) |
1642| `~/.claude/uploads/` | Attachments that past [Remote Control](/docs/en/remote-control) sessions refer to by path |
1643| `~/.claude/file-history/` | Checkpoint restore for past sessions |
1644| `~/.claude/stats-cache.json` | Historical totals shown by `/usage` |
1645| `~/.claude/usage-data/` | Past [`/insights`](/docs/en/costs#analyze-your-usage-patterns) reports and the cached analysis data used to build them |
1646| `~/.claude/feedback-bundles/` | Feedback and bug-report archives you haven't yet sent to your Anthropic account team |
1647| `~/.claude/feedback/drafts/` | [Claude-drafted feedback](/docs/en/tools-reference#sendfeedback-tool-behavior) you haven't sent |
1648| `~/.claude/remote-settings.json` | Nothing. Re-fetched on next launch. |
1649| `~/.claude/cache/changelog.md` | Nothing. Refreshed in the background. |
1650| `~/.claude/policy-limits.json` | Nothing. Refreshed automatically. |
1651| `~/.claude/tasks/` | Task lists that a resumed session would pick up |
1652| `~/.claude/skills/.trash/`, `~/.claude/plugins/.trash/` | The chance to recover [synced skills](/docs/en/skills#how-synced-skills-behave) and [synced plugins](/docs/en/plugins-reference#synced-plugins) that Claude Code removed |
1653| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/image-cache/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Nothing user-facing |
1654| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/` | Nothing. Legacy directories not written by current versions. |
16531655
16541656Don't delete `~/.claude.json`, `~/.claude/settings.json`, or `~/.claude/plugins/`: those hold your auth, preferences, and installed plugins.
16551657
claude-projects Changed · +5 / -1 lines
from line 171
171171* **Pull request**: opens one when you ask, and can open one on its own for a bug fix or another concrete change.
172172* **After it opens**: watches the pull request with [auto-fix](/docs/en/claude-code-on-the-web#auto-fix-pull-requests) turned on, whether or not auto-fix is on for your other cloud sessions. It pushes fixes when CI fails, addresses review comments, and replies in the thread when checks pass and the pull request is ready for you.
173173
174The thread's card in the conversation shows a button for the pull request's next step when there is one, such as **Resolve conflicts**, **Fix CI**, **Address comments**, or **Merge it**. Clicking it sends that instruction to the thread as a message from you, so you can prompt the thread yourself instead of waiting for it to react to the pull request. **Review PR** opens the pull request on GitHub.
174When a thread has pushed a branch or opened a pull request, its card in the conversation can show a button for the next step:
175
176* **Resolve conflicts**, **Fix CI**, **Address comments**, and **Merge it** send that instruction to the thread as a message from you, so you can prompt the thread yourself instead of waiting for it to react to the pull request.
177* **Review PR** opens the pull request on GitHub.
178* **Create PR** appears when an idle thread has pushed a branch but hasn't opened a pull request. Clicking it creates the pull request from that branch directly rather than sending the thread an instruction to open one.
175179
176180To change when threads open pull requests, for example only when you ask, or which branch they start from, say so in the task or in [project instructions](#write-project-instructions).
177181
routines Changed · +6 / -6 lines
from line 154
154154
155155<Steps>
156156 <Step title="Open the routine for editing">
157 Go to [claude.ai/code/routines](https://claude.ai/code/routines), click the routine you want to trigger via API, then click the pencil icon to open **Edit routine**.
157 Go to [claude.ai/code/routines](https://claude.ai/code/routines), click the routine you want to trigger via API, then open the menu next to the routine's name and select **Edit**.
158158 </Step>
159159
160160 <Step title="Add an API trigger">
from line 228
228228
229229<Steps>
230230 <Step title="Open the routine for editing">
231 Go to [claude.ai/code/routines](https://claude.ai/code/routines), click the routine, then click the pencil icon to open **Edit routine**.
231 Go to [claude.ai/code/routines](https://claude.ai/code/routines), click the routine, then open the menu next to the routine's name and select **Edit**.
232232 </Step>
233233
234234 <Step title="Add a GitHub event trigger">
from line 295
295295From the routine detail page you can:
296296
297297* Click **Run now** to start a run immediately without waiting for the next scheduled time. You can optionally supply run-specific text, which reaches the routine the same way as the API trigger's `text` field.
298* Use the toggle in the **Repeats** section to pause or resume the schedule. Paused routines keep their configuration but don't run until you re-enable them.
299* Click the pencil icon to open **Edit routine** and change the name, prompt, repositories, environment, connectors, or any of the routine's triggers. The **Select a trigger** section is where you add or remove schedules, API tokens, and GitHub event triggers.
300* Click the delete icon to remove the routine. Past sessions created by the routine remain in your session list.
298* Use the on/off switch at the top of the page to pause or resume the schedule. Paused routines keep their configuration but don't run until you re-enable them.
299* Open the menu next to the routine's name and select **Edit** to change the name, prompt, repositories, environment, connectors, or any of the routine's triggers. The **Select a trigger** section is where you add or remove schedules, API tokens, and GitHub event triggers.
300* Open the same menu and select **Delete** to delete the routine.
301301
302302### Manage routines from the CLI
303303
from line 337
337337
338338<Steps>
339339 <Step title="Open the routine for editing">
340 On the routine's detail page, click the pencil icon to open **Edit routine**.
340 On the routine's detail page, open the menu next to the routine's name and select **Edit**.
341341 </Step>
342342
343343 <Step title="Open the environment selector">
mcp Changed · +1 / -1 lines
from line 360
360360
361361Claude Code reconnects a dropped remote server with exponential backoff: up to five attempts, starting at a one-second delay and doubling it each time. What you see depends on how you're running Claude Code:
362362
363* **In an interactive session**: `/mcp` shows the server as pending while Claude Code reconnects. After five failed attempts, Claude Code marks the server as failed, or as needing authentication when the server needs authorizing again. You can retry manually from `/mcp`.
363* **In an interactive session**: `/mcp` shows the server as pending while Claude Code reconnects. After five failed attempts, Claude Code marks the server as failed, or as needing authentication when the server needs authorizing again. When it marks the server as failed, you see an `MCP server "<name>" disconnected · open /mcp to reconnect` notification. You can retry manually from `/mcp`.
364364* **In [`claude -p`](/docs/en/headless) runs and [Agent SDK](/docs/en/agent-sdk/overview) sessions**: Claude Code reconnects on the same schedule, with no `/mcp` panel to show the attempts.
365365
366366#### Failed first connections
memory Changed · +3 / -1 lines
from line 376
376376}
377377```
378378
379The value must be an absolute path or start with `~/`. When you set it in a project's `.claude/settings.json` or `.claude/settings.local.json`, Claude Code honors it under the same [workspace trust rule as hooks in settings files](/docs/en/permissions#what-runs-before-you-trust-a-folder).
379The value must be an absolute path or start with `~/`.
380
381When you set it in a project's `.claude/settings.json` or `.claude/settings.local.json`, Claude Code honors it under the same [workspace trust rule as hooks in settings files](/docs/en/permissions#what-runs-before-you-trust-a-folder). While [`permissions.blockReadsOutsideWorkingDirectories`](/docs/en/settings-reference#permissions-blockreadsoutsideworkingdirectories) is on, Claude Code loads no auto memory from a directory that a [repository-supplied settings file](/docs/en/permissions#when-your-local-settings-file-needs-trust) chooses and saves none to it, wherever that directory sits.
380382
381383The directory contains a `MEMORY.md` index and one topic file per memory:
382384
permission-modes Changed · +1 / -1 lines
from line 626
626626
627627Claude Code also treats a glob or trailing slash directly under a shell variable, such as `rm -rf "$DIR"/*`, as a critical-path removal, because the command becomes a removal from the filesystem root when the variable is empty.
628628
629Hiding the removal inside command substitution with `$(...)` or backticks, or process substitution with `<(...)`, doesn't skip the check. Claude Code finds a critical-path removal whether it sits inside the substitution, as in `echo "$(rm -rf ~)"`, or elsewhere in the same command.
629Hiding the removal inside a subshell with `(...)`, a brace group with `{ ...; }`, command substitution with `$(...)` or backticks, or process substitution with `<(...)`, doesn't skip the check. Claude Code finds a critical-path removal whether it sits inside the nested form, as in `(rm -rf ~)` or `echo "$(rm -rf ~)"`, or elsewhere in the same command.
630630
631631### Remove-Item in PowerShell
632632
plugin-relevance Changed · +3 / -1 lines
from line 72
7272| `filesRead` | array of strings | Glob patterns matched against the paths of files Claude has read this session, for example `["**/*.tf"]`. Forward-slash normalized and case-insensitive. Maximum 10 patterns of 256 characters each. |
7373| `manifestDeps` | array of objects | Dependencies declared in package manifests Claude has read this session. Each entry is `{ "file": "...", "pattern": "..." }`, where `file` is a regular expression matched against the manifest file's path as recorded in session state, typically an absolute path, and `pattern` is a regular expression matched against that file's contents. Anchor `file` at the end, for example `[/\\\\]package\\.json$` in JSON-escaped form, because a start-anchored pattern never matches an absolute path. Paths are not separator-normalized for this signal, so Windows paths use backslashes. Manifest files larger than 512 KB are skipped. Both values are JavaScript `RegExp` source strings of at most 256 characters. `file` matches case-insensitively. `pattern` is case-sensitive. Maximum 10 entries. |
7474
75The `cli`, `hosts`, `filesRead`, and `manifestDeps` signals need session history, so they can only match on the spinner tip and the Discover tab. The `filesRead` and `manifestDeps` signals test the session's recorded file state, which also includes files Claude has written or edited and auto-loaded `CLAUDE.md` memory files.
75The `cli`, `hosts`, `filesRead`, and `manifestDeps` signals need session history, so they can only match on the spinner tip and the Discover tab.
76
77The `filesRead` and `manifestDeps` signals test the session's recorded file state, which also includes files Claude has written or edited and auto-loaded `CLAUDE.md` memory files. For these two signals, Claude Code skips paths under its own [configuration directory](/docs/en/claude-directory) and its temporary directories.
7678
7779The following example uses `manifestDeps` to suggest a Stripe plugin once Claude has read a `package.json` that depends on `stripe`. The `file` pattern uses `[/\\\\]` so it matches both forward-slash and backslash path separators, and `\\.` so the dot is literal. In JSON, each backslash in the regular expression is written twice.
7880
scheduled-tasks Changed · +1 / -1 lines
from line 204
204204* Tasks only fire while Claude Code is running and idle. Closing the terminal or letting the session exit stops them firing. [Backgrounding the session](/docs/en/agent-view#from-inside-a-session) carries `/loop` tasks over to a background session, which keeps running without a terminal.
205205* No catch-up for missed fires. If a task's scheduled time passes while Claude is busy on a long-running request, it fires once when Claude becomes idle, not once per missed interval.
206206* Starting a fresh conversation clears all session-scoped tasks. When you resume a session with `claude --resume` or `claude --continue`, Claude Code restores the tasks scheduled with `CronCreate`, except recurring tasks that have [expired](#seven-day-expiry) and one-shot tasks whose scheduled time has passed. A [self-paced `/loop`](#let-claude-choose-the-interval) isn't restored, so run `/loop` again to restart it. Background Bash and monitor tasks are never restored on resume.
207* With [feature-flag fetching off](/docs/en/env-vars#features-that-need-feature-flag-fetching), Claude Code stores a task you asked to keep across sessions in the project's `.claude` directory. When that directory or the task file in it is a symlink, Claude Code returns an error instead of scheduling the task.
207* With [feature-flag fetching off](/docs/en/env-vars#features-that-need-feature-flag-fetching), Claude Code stores a task you asked to keep across sessions in the project's `.claude/scheduled_tasks.json` file. When the `.claude` directory or that file is a symlink, Claude Code returns an error instead of scheduling the task. A saved task runs only in the project folder where you created it. If you copy the file into another folder, such as a new worktree, sessions there list the copied tasks but don't run them, so create the task again in that folder.
208208
209209For cron-driven automation that needs to run unattended:
210210
settings-reference Changed · +1 / -1 lines
This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.
from line 1553
15531553}
15541554```
15551555
1556If only a repository's checked-in settings file adds a directory, the block still applies to reads there. Files Claude Code itself needs stay readable, such as your skills, plugins, rules, agents, commands, and the `CLAUDE.md` memory file under `~/.claude/`.
1556If only a repository's checked-in settings file adds a directory, the block still applies to reads there. When [`autoMemoryDirectory`](#automemorydirectory) comes from the project's `.claude/settings.json`, or from a `.claude/settings.local.json` [treated as repository-supplied](/docs/en/permissions#when-your-local-settings-file-needs-trust), Claude Code loads no [auto memory](/docs/en/memory#storage-location) from that directory and saves none to it. Files Claude Code itself needs stay readable, such as your skills, plugins, rules, agents, commands, and the `CLAUDE.md` memory file under `~/.claude/`.
15571557
15581558When the [sandbox](/docs/en/sandboxing) is on, the block also denies sandboxed commands read access to home directories and mounted-volume roots outside the working directories. A retry that needs approval to [run outside the sandbox](/docs/en/sandboxing#the-unsandboxed-retry-escape-hatch) prompts you even in `bypassPermissions` mode. Files a tool reads from your home directory, such as `~/.gitconfig`, are denied with the rest; re-open a specific path with [`sandbox.filesystem.allowRead`](#sandbox-filesystem-allowread) when a tool needs it.
15591559
from line 3229
32293229* **Scope**: [`Any file`](#scopes)
32303230* **Type**: Boolean
32313231 * `true`: the plan approval menu gets a first option, **Yes, clear context and …**, that approves the plan and clears the conversation context
3232 * `false`: the plan approval menu shows no clear-context option
3233* **Default**: `false`
3234
3235```json settings.json theme={null}
3236{
3237 "showClearContextOnPlanAccept": true
3238}
3239```
3240
3241### `showTurnDuration`
3242
3243Show or hide the turn duration message after each response, such as "Cooked for 1m 6s · done 6:05 PM". The clock after "done" shows when the turn finished; [`timeFormat`](#timeformat) and [`timeZ
3232 * `false`: the plan approval menu shows n
skills Changed · +2 / -0 lines
from line 209
209209
210210To stop syncing on a machine, set [`syncClaudeAiSkills`](/docs/en/settings-reference#syncclaudeaiskills) to `false` in your user settings. Claude Code stops downloading, and the next time it starts it moves the skills it already synced to `~/.claude/skills/.trash/` and no longer loads them. Your organization can turn syncing off for everyone by turning off Skills on claude.ai. To stop syncing while leaving Skills on, it can set the same key in [managed settings](/docs/en/managed-settings).
211211
212If your organization turns Skills off on claude.ai, Claude Code removes the downloaded skills and they stop loading. The removed skills move to `~/.claude/skills/.trash/`, where you can recover the files until the [retention sweep](/docs/en/claude-directory#cleaned-up-automatically) deletes them. Once your organization turns Skills back on, Claude Code downloads the skills you enabled at the next sync.
213
212214#### When a synced skill name matches another command
213215
214216You can invoke a synced skill by its full name, `/anthropic-skills:<name>`, or by its short name, `/<name>`. When another command uses that short name, `/<name>` runs the other command, and the synced skill runs only as `/anthropic-skills:<name>`. With a local `deploy` skill and a synced `deploy`, `/deploy` runs the local skill and `/anthropic-skills:deploy` runs the synced one. Before v2.1.269, a synced skill had only its short name.
vs-code Changed · +2 / -0 lines
from line 113
113113
114114 Claude's latest to-do list stays visible, and so does the text a pending question from Claude is asking about; this requires Claude Code v2.1.225 or later. While Claude runs [subagents](/docs/en/sub-agents), live progress rows with their latest activity appear under the tool-call group that started them. This requires Claude Code v2.1.269 or later.
115115 * To report a bug, click **Report a problem** at the bottom of the menu, or type `/bug` or `/feedback` with an optional description that prefills the report. When you submit the report and you're signed in to Anthropic on a first-party connection, Claude Code sends it to Anthropic. On a third-party provider, or without Anthropic credentials, the dialog still opens, but submitting shows an error and sends nothing: unlike the CLI's `/bug`, the extension doesn't write a local archive. Requires Claude Code v2.1.229 or later.
116
117 If your organization's policy turns product feedback off, **Report a problem** doesn't appear in the menu, and `/bug` and `/feedback` show a `Feedback is turned off by your organization's policy or this environment's settings.` notice instead of opening the report.
116118* **Side questions**: type `/btw` followed by a question to ask about your session [without adding to the conversation](/docs/en/interactive-mode#side-questions-with-%2Fbtw). The answer opens in a panel beside the chat, where you can ask follow-up questions. The thread survives window reloads. Claude Code keeps the newest 20 exchanges and expires stored threads on the [`cleanupPeriodDays`](/docs/en/settings-reference#cleanupperioddays) schedule, as long as Claude Code can [safely determine the retention period](/docs/en/claude-directory#cleaned-up-automatically). To clear a thread, click the trash icon in the panel. Requires Claude Code v2.1.227 or later.
117119* **Context indicator**: the prompt box shows how much of Claude's context window you're using. Claude automatically compacts when needed, or you can run `/compact` manually.
118120* **Prompt cache clock**: a clock icon next to the context indicator estimates how much time the conversation's [prompt cache](/docs/en/prompt-caching) has left before it expires. It counts down from the cache's five-minute or one-hour [lifetime](/docs/en/prompt-caching#cache-lifetime), and each response that uses the cache restarts the countdown. Apart from compaction, the [actions that invalidate the cache](/docs/en/prompt-caching#actions-that-invalidate-the-cache) don't reset the clock, so it can still show minutes left after you switch models.
web-quickstart Changed · +1 / -1 lines
from line 57
5757
5858<Steps>
5959 <Step title="Visit claude.ai/code">
60 Go to [claude.ai/code](https://claude.ai/code) and sign in with your claude.ai account. On macOS or Windows, the first screen offers the Claude Code desktop app and other ways to install Claude Code. To stay in the browser, click **Continue on web** at the bottom of the page.
60 Go to [claude.ai/code](https://claude.ai/code) and sign in with your claude.ai account.
6161 </Step>
6262
6363 <Step title="Sign in with GitHub">