[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"package:cask:claude-code:en":3,"releases:stats:cask:claude-code:en":479,"releases:cask:claude-code:1:false:false:en":480,"releases-count:cask:claude-code:true:en":698},{"accentColor":4,"artifacts":5,"autoUpdates":34,"categories":35,"conflictsWith":41,"dependsOn":45,"deprecated":34,"description":52,"descriptionEn":53,"developer":54,"disabled":34,"displayName":55,"downloadSha256":56,"downloadSize":57,"downloadUrl":58,"editorChoice":34,"formulaeUrl":59,"homepage":60,"iconUrl":61,"installCommand":62,"installs":63,"installs30d":64,"isFont":34,"isLibrary":34,"kegOnly":34,"kind":67,"latestRelease":68,"machineTranslated":34,"name":55,"names":76,"platforms":78,"primaryCategory":439,"rank30d":440,"releaseCount":441,"releaseStats":442,"repoUrl":448,"screenshots":449,"sourceLocale":40,"sourceUrl":462,"summary":463,"summaryTranslation":464,"supports":467,"tags":469,"tap":477,"token":77,"version":107,"versionChangedAt":478},"#DA7757",{"apps":6,"binaries":7,"entries":9,"pkgs":33},[],[8],"claude",[10,17],{"declaration":11,"phase":14,"sources":15,"target":13,"type":16},{"binary":12,"target":13},[8],"$HOMEBREW_PREFIX\u002Fbin\u002Fclaude","install",[8],"binary",{"declaration":18,"phase":30,"sources":31,"type":32},{"zap":19},[20],{"rmdir":21,"trash":22},"~\u002F.claude",[23,24,25,26,27,28,29],"~\u002F.cache\u002Fclaude","~\u002F.claude.json*","~\u002F.config\u002Fclaude","~\u002F.local\u002Fbin\u002Fclaude","~\u002F.local\u002Fshare\u002Fclaude","~\u002F.local\u002Fstate\u002Fclaude","~\u002FLibrary\u002FCaches\u002Fclaude-cli-nodejs","cleanup",[],"zap",[],false,[36],{"icon":37,"machineTranslated":34,"name":38,"slug":39,"sourceLocale":40},"lucide:code-xml","Developer Tools","developer-tools","zh-CN",{"casks":42,"formulae":44},[43],"claude-code@latest",[],{"arch":46,"casks":49,"formulae":50,"requirements":51},[47,48],"arm64","x86_64",[],[],{},"Claude Code is Anthropic's agentic coding tool. Describe a task in natural language to explore a codebase, understand complex code, implement features, debug problems, edit files, and run commands and tests.\n\nIt works in the terminal and integrates with IDEs such as VS Code. CLAUDE.md stores project instructions; MCP, plugins, custom commands, and subagents extend its capabilities. Permissions and organizational policies govern edits and commands. Review changes and run tests before shipping.\n\nOn Mac, install with brew install --cask claude-code, then run claude in your project and sign in. This cask tracks the stable channel; claude-code@latest is a separate, conflicting cask. Update with brew upgrade claude-code. Use claude --version and claude doctor to check the installation.\n\nOfficial requirements include macOS 13+, 4 GB RAM, an x64 or ARM64 processor, and internet access. The Homebrew installation uses a native binary and does not require a separate Node.js installation. Access requires an eligible paid Claude subscription, Claude Console account, or supported third-party API provider; model availability and limits depend on your account.\n\nThis listing is the CLI, not the Claude desktop chat app. Official VS Code screenshots illustrate its IDE integration, which requires the extension to be installed separately.\n\nRepository: https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\nSetup: https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fsetup\nChangelog: https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FCHANGELOG.md","Terminal-based AI coding assistant","Anthropic","Claude Code","51f09bd1e021d9fa8a1864c179799bd37cb39962a937935c5cf6823398e86db4",223821616,"https:\u002F\u002Fdownloads.claude.ai\u002Fclaude-code-releases\u002F2.1.285\u002Fdarwin-arm64\u002Fclaude","https:\u002F\u002Fformulae.brew.sh\u002Fcask\u002Fclaude-code","https:\u002F\u002Fclaude.com\u002Fproduct\u002Fclaude-code","https:\u002F\u002Fcdn.opennavo.com\u002Ficons\u002Fuploads\u002F7241633e5a39\u002F45e8db9dc147-256.png","brew install --cask claude-code",{"d30":64,"d365":65,"d90":66},32347,1150253,167090,"cask",{"brewCommittedAt":69,"hasNotes":34,"isLatest":70,"isPrerelease":34,"sections":71,"source":72,"translation":73,"version":75},"2026-10-08T07:06:29Z",true,[],"homebrew",{"status":74},"none","2.1.286",[55,77],"claude-code",[79,108,133,159,184,210,235,261,286,312,337,363,388,414],{"arch":48,"artifacts":80,"conflictsWith":95,"dependsOn":98,"downloadSha256":103,"downloadUrl":104,"macos":105,"requiresRosetta":34,"tag":106,"version":107},{"apps":81,"binaries":82,"entries":83,"pkgs":94},[],[8],[84,88],{"declaration":85,"phase":14,"sources":87,"target":13,"type":16},{"binary":86,"target":13},[8],[8],{"declaration":89,"phase":30,"sources":93,"type":32},{"zap":90},[91],{"rmdir":21,"trash":92},[23,24,25,26,27,28,29],[],[],{"casks":96,"formulae":97},[43],[],{"arch":99,"casks":100,"formulae":101,"requirements":102},[48],[],[],{},"24835f7ca4b4338c33ad21c98a3402d9c22f89b8055075d18828e97973844ec3","https:\u002F\u002Fdownloads.claude.ai\u002Fclaude-code-releases\u002F2.1.285\u002Fdarwin-x64\u002Fclaude","27","golden_gate","2.1.285",{"arch":47,"artifacts":109,"conflictsWith":124,"dependsOn":127,"downloadSha256":56,"downloadUrl":58,"macos":105,"requiresRosetta":34,"tag":132,"version":107},{"apps":110,"binaries":111,"entries":112,"pkgs":123},[],[8],[113,117],{"declaration":114,"phase":14,"sources":116,"target":13,"type":16},{"binary":115,"target":13},[8],[8],{"declaration":118,"phase":30,"sources":122,"type":32},{"zap":119},[120],{"rmdir":21,"trash":121},[23,24,25,26,27,28,29],[],[],{"casks":125,"formulae":126},[43],[],{"arch":128,"casks":129,"formulae":130,"requirements":131},[47],[],[],{},"arm64_golden_gate",{"arch":48,"artifacts":134,"conflictsWith":149,"dependsOn":152,"downloadSha256":103,"downloadUrl":104,"macos":157,"requiresRosetta":34,"tag":158,"version":107},{"apps":135,"binaries":136,"entries":137,"pkgs":148},[],[8],[138,142],{"declaration":139,"phase":14,"sources":141,"target":13,"type":16},{"binary":140,"target":13},[8],[8],{"declaration":143,"phase":30,"sources":147,"type":32},{"zap":144},[145],{"rmdir":21,"trash":146},[23,24,25,26,27,28,29],[],[],{"casks":150,"formulae":151},[43],[],{"arch":153,"casks":154,"formulae":155,"requirements":156},[48],[],[],{},"26","tahoe",{"arch":47,"artifacts":160,"conflictsWith":175,"dependsOn":178,"downloadSha256":56,"downloadUrl":58,"macos":157,"requiresRosetta":34,"tag":183,"version":107},{"apps":161,"binaries":162,"entries":163,"pkgs":174},[],[8],[164,168],{"declaration":165,"phase":14,"sources":167,"target":13,"type":16},{"binary":166,"target":13},[8],[8],{"declaration":169,"phase":30,"sources":173,"type":32},{"zap":170},[171],{"rmdir":21,"trash":172},[23,24,25,26,27,28,29],[],[],{"casks":176,"formulae":177},[43],[],{"arch":179,"casks":180,"formulae":181,"requirements":182},[47],[],[],{},"arm64_tahoe",{"arch":48,"artifacts":185,"conflictsWith":200,"dependsOn":203,"downloadSha256":103,"downloadUrl":104,"macos":208,"requiresRosetta":34,"tag":209,"version":107},{"apps":186,"binaries":187,"entries":188,"pkgs":199},[],[8],[189,193],{"declaration":190,"phase":14,"sources":192,"target":13,"type":16},{"binary":191,"target":13},[8],[8],{"declaration":194,"phase":30,"sources":198,"type":32},{"zap":195},[196],{"rmdir":21,"trash":197},[23,24,25,26,27,28,29],[],[],{"casks":201,"formulae":202},[43],[],{"arch":204,"casks":205,"formulae":206,"requirements":207},[48],[],[],{},"15","sequoia",{"arch":47,"artifacts":211,"conflictsWith":226,"dependsOn":229,"downloadSha256":56,"downloadUrl":58,"macos":208,"requiresRosetta":34,"tag":234,"version":107},{"apps":212,"binaries":213,"entries":214,"pkgs":225},[],[8],[215,219],{"declaration":216,"phase":14,"sources":218,"target":13,"type":16},{"binary":217,"target":13},[8],[8],{"declaration":220,"phase":30,"sources":224,"type":32},{"zap":221},[222],{"rmdir":21,"trash":223},[23,24,25,26,27,28,29],[],[],{"casks":227,"formulae":228},[43],[],{"arch":230,"casks":231,"formulae":232,"requirements":233},[47],[],[],{},"arm64_sequoia",{"arch":48,"artifacts":236,"conflictsWith":251,"dependsOn":254,"downloadSha256":103,"downloadUrl":104,"macos":259,"requiresRosetta":34,"tag":260,"version":107},{"apps":237,"binaries":238,"entries":239,"pkgs":250},[],[8],[240,244],{"declaration":241,"phase":14,"sources":243,"target":13,"type":16},{"binary":242,"target":13},[8],[8],{"declaration":245,"phase":30,"sources":249,"type":32},{"zap":246},[247],{"rmdir":21,"trash":248},[23,24,25,26,27,28,29],[],[],{"casks":252,"formulae":253},[43],[],{"arch":255,"casks":256,"formulae":257,"requirements":258},[48],[],[],{},"14","sonoma",{"arch":47,"artifacts":262,"conflictsWith":277,"dependsOn":280,"downloadSha256":56,"downloadUrl":58,"macos":259,"requiresRosetta":34,"tag":285,"version":107},{"apps":263,"binaries":264,"entries":265,"pkgs":276},[],[8],[266,270],{"declaration":267,"phase":14,"sources":269,"target":13,"type":16},{"binary":268,"target":13},[8],[8],{"declaration":271,"phase":30,"sources":275,"type":32},{"zap":272},[273],{"rmdir":21,"trash":274},[23,24,25,26,27,28,29],[],[],{"casks":278,"formulae":279},[43],[],{"arch":281,"casks":282,"formulae":283,"requirements":284},[47],[],[],{},"arm64_sonoma",{"arch":48,"artifacts":287,"conflictsWith":302,"dependsOn":305,"downloadSha256":103,"downloadUrl":104,"macos":310,"requiresRosetta":34,"tag":311,"version":107},{"apps":288,"binaries":289,"entries":290,"pkgs":301},[],[8],[291,295],{"declaration":292,"phase":14,"sources":294,"target":13,"type":16},{"binary":293,"target":13},[8],[8],{"declaration":296,"phase":30,"sources":300,"type":32},{"zap":297},[298],{"rmdir":21,"trash":299},[23,24,25,26,27,28,29],[],[],{"casks":303,"formulae":304},[43],[],{"arch":306,"casks":307,"formulae":308,"requirements":309},[48],[],[],{},"13","ventura",{"arch":47,"artifacts":313,"conflictsWith":328,"dependsOn":331,"downloadSha256":56,"downloadUrl":58,"macos":310,"requiresRosetta":34,"tag":336,"version":107},{"apps":314,"binaries":315,"entries":316,"pkgs":327},[],[8],[317,321],{"declaration":318,"phase":14,"sources":320,"target":13,"type":16},{"binary":319,"target":13},[8],[8],{"declaration":322,"phase":30,"sources":326,"type":32},{"zap":323},[324],{"rmdir":21,"trash":325},[23,24,25,26,27,28,29],[],[],{"casks":329,"formulae":330},[43],[],{"arch":332,"casks":333,"formulae":334,"requirements":335},[47],[],[],{},"arm64_ventura",{"arch":48,"artifacts":338,"conflictsWith":353,"dependsOn":356,"downloadSha256":103,"downloadUrl":104,"macos":361,"requiresRosetta":34,"tag":362,"version":107},{"apps":339,"binaries":340,"entries":341,"pkgs":352},[],[8],[342,346],{"declaration":343,"phase":14,"sources":345,"target":13,"type":16},{"binary":344,"target":13},[8],[8],{"declaration":347,"phase":30,"sources":351,"type":32},{"zap":348},[349],{"rmdir":21,"trash":350},[23,24,25,26,27,28,29],[],[],{"casks":354,"formulae":355},[43],[],{"arch":357,"casks":358,"formulae":359,"requirements":360},[48],[],[],{},"12","monterey",{"arch":47,"artifacts":364,"conflictsWith":379,"dependsOn":382,"downloadSha256":56,"downloadUrl":58,"macos":361,"requiresRosetta":34,"tag":387,"version":107},{"apps":365,"binaries":366,"entries":367,"pkgs":378},[],[8],[368,372],{"declaration":369,"phase":14,"sources":371,"target":13,"type":16},{"binary":370,"target":13},[8],[8],{"declaration":373,"phase":30,"sources":377,"type":32},{"zap":374},[375],{"rmdir":21,"trash":376},[23,24,25,26,27,28,29],[],[],{"casks":380,"formulae":381},[43],[],{"arch":383,"casks":384,"formulae":385,"requirements":386},[47],[],[],{},"arm64_monterey",{"arch":48,"artifacts":389,"conflictsWith":404,"dependsOn":407,"downloadSha256":103,"downloadUrl":104,"macos":412,"requiresRosetta":34,"tag":413,"version":107},{"apps":390,"binaries":391,"entries":392,"pkgs":403},[],[8],[393,397],{"declaration":394,"phase":14,"sources":396,"target":13,"type":16},{"binary":395,"target":13},[8],[8],{"declaration":398,"phase":30,"sources":402,"type":32},{"zap":399},[400],{"rmdir":21,"trash":401},[23,24,25,26,27,28,29],[],[],{"casks":405,"formulae":406},[43],[],{"arch":408,"casks":409,"formulae":410,"requirements":411},[48],[],[],{},"11","big_sur",{"arch":47,"artifacts":415,"conflictsWith":430,"dependsOn":433,"downloadSha256":56,"downloadUrl":58,"macos":412,"requiresRosetta":34,"tag":438,"version":107},{"apps":416,"binaries":417,"entries":418,"pkgs":429},[],[8],[419,423],{"declaration":420,"phase":14,"sources":422,"target":13,"type":16},{"binary":421,"target":13},[8],[8],{"declaration":424,"phase":30,"sources":428,"type":32},{"zap":425},[426],{"rmdir":21,"trash":427},[23,24,25,26,27,28,29],[],[],{"casks":431,"formulae":432},[43],[],{"arch":434,"casks":435,"formulae":436,"requirements":437},[47],[],[],{},"arm64_big_sur",{"icon":37,"machineTranslated":34,"name":38,"slug":39,"sourceLocale":40},2,91,{"brewLag":443,"cadence":447,"count30d":440},{"compared":444,"earlierCount":445,"medianMinutes":446},90,1,153722867,"irregular","https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code",[450,457],{"caption":451,"height":452,"machineTranslated":34,"sourceLocale":40,"theme":453,"thumbUrl":454,"url":455,"width":456},"Official VS Code integration: chat with Claude Code beside your editor",591,"dark","https:\u002F\u002Fcdn.opennavo.com\u002Fscreenshots\u002Fuploads\u002Fscreenshot\u002F0647b4436950\u002F72d35e3d85a7-640.png","https:\u002F\u002Fcdn.opennavo.com\u002Fscreenshots\u002Fuploads\u002Fscreenshot\u002F0647b4436950\u002F72d35e3d85a7-1280.png",1280,{"caption":458,"height":459,"machineTranslated":34,"sourceLocale":40,"theme":453,"thumbUrl":460,"url":461,"width":456},"Official VS Code integration: review diffs and approve or reject edits",729,"https:\u002F\u002Fcdn.opennavo.com\u002Fscreenshots\u002Fuploads\u002Fscreenshot\u002Fd5ebdd87fb9c\u002F1b0b5fd26a79-640.png","https:\u002F\u002Fcdn.opennavo.com\u002Fscreenshots\u002Fuploads\u002Fscreenshot\u002Fd5ebdd87fb9c\u002F1b0b5fd26a79-1280.png","https:\u002F\u002Fgithub.com\u002Fhomebrew\u002Fhomebrew-cask\u002Fblob\u002FHEAD\u002FCasks\u002Fc\u002Fclaude-code.rb","Anthropic's AI coding assistant for exploring codebases, editing files, running commands and tests, and managing Git workflows from the terminal.",{"locale":465,"machineTranslated":34,"sourceLocale":40,"status":466},"en-US","manual",{"arm64":70,"requiresRosetta":34,"status":468,"x86_64":70},"known",[470,471,472,473,474,475,476],"AI 编程","开发工具","命令行","代码重构","测试","Git","MCP","homebrew\u002Fcask","2026-10-07T09:38:27.243348Z",null,{"current":445,"records":481,"size":695,"stats":696,"total":441},[482,485,498,510,521,532,543,554,565,576,587,598,609,620,631,642,653,662,673,684],{"brewCommittedAt":69,"hasNotes":34,"isLatest":70,"isPrerelease":34,"sections":483,"source":72,"translation":484,"version":75},[],{"status":74},{"bodyMarkdown":486,"brewCommittedAt":487,"hasNotes":70,"id":488,"isLatest":34,"isPrerelease":34,"machineTranslated":34,"publishedAt":478,"sections":489,"source":494,"sourceLocale":40,"summary":495,"title":496,"translation":497,"version":107},"- Added `CLAUDE_CODE_DISABLE_WEB_FETCH` environment variable to turn off the WebFetch tool\n- Added `claude --desktop` to open the Claude desktop app on the current directory, or on a session with `--continue` \u002F `--resume \u003Cid>`\n- Added `claude plugin configure \u003Cplugin>` to show a plugin's options and which are unset, or save new values read from stdin with `--values-stdin`\n- Added `\u003Cserver>.\u003Ckey>=\u003Cvalue>` to `claude plugin install --config`, so a bundled `.mcpb` MCP server's own settings can be set at install time and it starts without visiting `\u002Fplugin` → Configure\n- Added `allowedProviders` managed setting to limit which API providers a machine may use (Anthropic API, a custom endpoint, Bedrock, Mantle, Vertex AI, Foundry, Claude Platform on AWS, or a Cloud gateway)\n- Added `CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES` environment variable to cap re-sends of a non-streaming fallback request that timed out\n- Fixed `claude -p` with `CLAUDE_CODE_FORK_SUBAGENT=1`: a subagent's own Agent call now runs in the foreground, so the subagent gets the child's result\n- Fixed plugin and marketplace installs and updates over SSH ignoring the ssh program set in `GIT_SSH` or in your git config's `core.sshCommand`\n- Fixed Claude Code refusing to start when the OS denies reading the managed settings file; it now warns and starts without that file's policies. Other read errors and unparseable files stop every session\n- Fixed cloud sessions that restarted after their conversation was compacted refusing the next update to an artifact the session had already read or published\n- Fixed `claude plugin disable` and `enable` with a full `name@marketplace` id changing a settings entry in another letter case instead of the installed plugin's own\n- Fixed files attached to a message sent over Remote Control being left out after a single failed download; a network error, timeout or server error is now retried up to twice\n- Fixed switching models mid-session with a `set_model` request (such as the Agent SDK's `setModel`) leaving the new model on the built-in output-token limit and auto-compact window until restart\n- Fixed redacted logs and transcripts showing part of a URL password that contains `@`, or all of it when the URL writes its `@` as `%40`\n- Fixed SSH passphrase and new-host prompts from worktree and `\u002Fteleport` fetches taking over the terminal; these fetches now fail fast instead of asking\n- Fixed switching off an MCP server added mid-session in SDK and `-p` sessions leaving its tools available\n- Fixed `claude -p --permission-prompt-tool`: a background subagent's permission request now goes to the prompt tool instead of being auto-denied\n- Fixed `claude mcp list` and `claude mcp get`, and the not-found error of `claude mcp remove`, `login` and `logout`, printing line breaks and terminal escape sequences from MCP server names and values\n- Fixed sandbox auto-allow asking for approval on every run of many inline scripts (`python3 -c`, `node -e`) just because they contain `=`\n- Fixed fork subagents not keeping the session's plan mode or `dontAsk` mode: a fork now runs under its parent's permission mode and cannot exit plan mode\n- Fixed `claude remote-control --help` saying `--[no-]chrome` defaults to the machine's `\u002Fchrome` setting; spawned sessions keep Claude in Chrome off unless `--chrome` is passed\n- Fixed background subagents in auto mode prompting a second, redundant reply after each report\n- Fixed cloud session creation and `\u002Fremote-env` reading only the newest 20 of an account's environments\n- Fixed Remote Control marking a message as read as soon as it arrived instead of when Claude started on it, and losing a message still queued when the terminal quit (it now arrives on the next resume)\n- Fixed installing a plugin with `claude plugin install` or `\u002Fplugin` putting it into an installed plugin's cache or data folder when their ids differ only in `.`, `-`, `@` or (macOS, Windows) capitals; the install is now refused\n- Fixed hooks and SDK permission callbacks seeing a missing or outdated plan on ExitPlanMode when the plan was written in the same response\n- Fixed the first reply in cloud sessions arriving tens of milliseconds late, a regression in 2.1.283\n- Fixed sessions that authenticate with `ANTHROPIC_AUTH_TOKEN` against the Anthropic API never loading the organization's policy\n- Fixed a failed `agent()`, `parallel()` or `pipeline()` call that a workflow script awaits later, or not at all, being treated as an unhandled promise rejection, which could end a background session\n- Fixed synchronous hooks hanging Claude Code while a background process the hook started (for example `some-daemon &`) kept its output open; the hook now finishes shortly after its own process exits\n- Fixed WebFetch reporting a rate-limited domain safety check as a network or enterprise policy block\n- Fixed the fullscreen ctrl+o transcript freezing briefly when opened on turns with hundreds of file reads or searches; tool calls still running when the transcript opens now show their results when they finish\n- Fixed Amazon Bedrock mid-stream `modelTimeoutException` and `serviceUnavailableException` errors showing a raw JSON body instead of the error message\n- Fixed `\u002Fautofix-pr` and `\u002Fschedule` saying the Claude GitHub App is not installed on a repository whose install status had not been checked yet\n- Fixed dismissing a row (x) in `\u002Fartifacts` unlinking its file from the artifact, so publishing the same file again created a new artifact instead of updating it\n- Fixed Artifact tool publishes after a conversation rewind (Esc Esc) overwriting a file's newer content that Claude had read only in the rewound turns; the publish is now refused until Claude re-reads the file\n- Fixed an `Artifact` allow rule (\"don't ask again\") letting the Artifact tool publish a file outside the working directories without asking; add the file's folder with `--add-dir` for the rule to cover it\n- Fixed `\u002Fcost` and SDK `modelUsage` reporting a turn under the wrong model when the server answered a refusal with a different fallback model than the client expected\n- Fixed the Artifact tool so that publishing a page no longer lets Claude overwrite its source file without re-reading it when Claude's earlier read was cut short or the file had changed since\n- Fixed auto mode skipping its classifier for Artifact tool asset uploads and reads of someone else's artifact when you had approved that artifact earlier in another permission mode\n- Fixed a misleading \"core.worktree is set\" error from `\u002Fultrareview` when the project folder briefly could not be read\n- Fixed `\u002Fultrareview` on macOS and Linux failing to upload the working tree from a git worktree whose per-worktree config sets `core.longpaths`\n- Fixed the Artifact tool sometimes reporting a publish as a conflict with another session after retrying a temporary server error, when the first attempt had actually succeeded\n- Fixed `\u002Fultrareview` uploads including uncommitted changes to credential files whose name has a colon before the extension, such as `server:8443.key`\n- Fixed a rare auth failure when two sessions recover a login refresh lock left by a crashed process at the same time\n- Fixed the PowerShell tool's permission check skipping deny and ask rules, and caching that failure for later checks, when its command parser failed to start (for example when the machine was out of memory)\n- Fixed `\u002Fultrareview` uploads on macOS and Linux running slowly on some unusual file names, and their credential-file check missing file or folder names with many backup or editor marks\n- Fixed a cancelled shell command or hook still starting, and running to its end, when the cancel arrived while it was being set up\n- Fixed vim mode: after editing in the external editor (Ctrl+G), `x` or `r` in NORMAL mode no longer breaks a pasted-text placeholder at the end of the prompt\n- Fixed responses blocked by the API's output content filter being re-sent and retried, sometimes for minutes, instead of showing the filter's error right away\n- Fixed plugins silently skipping a bundled `.mcpb` MCP server that still needs configuration: `\u002Fplugin`, the install message and `claude plugin install` now say so and point to Configure\n- Fixed compacting or resuming a session failing, opening without its history, or crashing when its saved transcript holds a compaction marker or loop wakeup entry with missing or malformed fields\n- WSL: Fixed `\u002Fultrareview` refusing to upload a checkout on a Linux volume when a changed file's name has a colon or ends in a dot or space\n- Fixed `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` re-running a turn that had ended at `--max-turns`\n- Fixed sign-in that could wait forever after the browser showed success\n- Windows: Fixed `\u002Fultrareview` uploading a linked worktree of a repository rooted at your home folder in some cases\n- Fixed cloud sessions reporting the uploads folder as missing before any file had been uploaded\n- Fixed a reply sent from `claude agents` to a background session waiting on a permission prompt sometimes approving the pending command\n- Fixed `claude attach`, `logs`, `stop`, `respawn` and `rm` starting a new session with the command name as its prompt when options came before it, such as from a shell alias\n- Fixed `claude mcp list` leaving out WebSocket (`ws`) MCP servers; each is now listed with its URL and health status\n- Fixed `claude mcp get` showing no Type, Command, Args, or Environment for stdio servers whose config entry omits the `type` field\n- Fixed `.claude\u002Fsettings.local.json` allow rules being held back outside a git repository when git's trace2 output is configured\n- Fixed the `\u002Fclaude-api` eval runner scaffold and report builder writing through a symlink or hard link planted at an output file\n- Fixed the `\u002Fclaude-api` eval runner scaffold counting responses cut off at `max_tokens` in the score averages; they are now marked truncated and counted separately\n- Fixed `&nbsp;` showing as literal text in the terminal when a reply uses it to indent text, such as row labels in a markdown table\n- Fixed a brief freeze (up to a second) partway through long sessions outside fullscreen mode, which came back after `\u002Fclear` or `\u002Fcompact`\n- Fixed an approved Edit never going through when its target is a device, such as a file symlinked to \u002Fdev\u002Fnull, and the approval came from the IDE diff view or changed the edit\n- Fixed a failing API request being retried up to 21 times when streaming kept failing; the non-streaming fallback now shares the request's retry budget instead of getting a fresh set of retries\n- Improved Claude in Chrome: the native host now reports your computer's name, so connected browsers can be labeled by computer instead of \"Browser 1\" \u002F \"Browser 2\"\n- Improved Bedrock and Vertex AI sessions to switch to an older available model of the same tier, instead of failing, when an admin removes access to the default model; session titles and summaries now fall back with it\n- Improved plugin marketplace errors to name why a git address is refused instead of citing enterprise policy\n- Improved validation of git URLs for plugins, marketplaces and the current repository's remote\n- Improved Artifact tool results: they now suggest publishing in the same step as writing or editing the page, which can save a round trip\n- Improved Remote Control: a `\u002Fbtw` side question asked of a session hosted by an app such as Claude Desktop now sees the turn in progress, not only the last finished one\n- Improved pictures Claude sends as BMP, HEIC, HEIF, AVIF or TIFF files: the Claude apps now show a preview where Claude Code can convert them\n- Improved subagents in auto mode: a subagent's run now ends as soon as it hands its report back to its caller, instead of taking extra turns that reach no one\n- Improved Bedrock and Vertex start-up model checks: models your account cannot use are now remembered for up to a day instead of being re-checked on every launch\n- Improved Artifact tool publish results to use fewer tokens: the note on updating an artifact is shorter, and where to find your artifacts is no longer repeated after every publish\n- Improved SDK liveness during a non-streaming fallback request: with partial messages on, a `ping` stream event is now sent every 30 seconds on the Anthropic API, Claude Platform on AWS and gateways\n- Improved `\u002Fresume` and `claude --resume` on a session that is running in the background: they now open that session instead of refusing, and a prompt given with `claude --resume \u003Cid> \"prompt\"` is sent to it as its next turn\n- Improved per-turn performance when many permission deny rules and MCP tools are configured\n- Improved responsiveness when leaving the ctrl+o transcript view in long sessions when fullscreen rendering is off\n- Improved Bedrock, Vertex and Mantle start-up model checks to send the same User-Agent, x-app and session ID headers as regular requests\n- Changed MCP tools so a tool that sets its own `_meta['anthropic\u002FalwaysLoad']` to false stays deferred when its `--mcp-config`, Agent SDK or plugin server is set to `alwaysLoad`\n- Changed background Bash and PowerShell commands to stop after a time limit (their `timeout` with `run_in_background`, default 30 min, max 2 h); Claude is notified when one is stopped\n- Changed Code Review's pull request reviews and `\u002Fultrareview` to run when `disableWorkflows` is on, unless the machine running the review has it set by its own administrator (MDM or the managed-settings file)\n- Changed sessions behind a custom `ANTHROPIC_BASE_URL` to use the 1M context window of models that have one (Opus 4.7+, Sonnet 5+, Fable); run `\u002Fautocompact 200k` if your gateway stops at 200K\n- Changed Team and Enterprise sessions, and sessions whose sign-in plan Claude Code can't determine, to withhold WebFetch until the organization policy loads if it couldn't be loaded at startup\n- Changed \u002Fmemory so that Auto-memory can no longer be turned on from a background session or from a session one of Claude Code's own tools started; turning it off there still works\n- Changed the one-time offer to make auto mode your default permission mode to also show on third-party providers and with telemetry off, when your user settings default to another mode\n- Changed `claude -p` and Python Agent SDK sessions on third-party providers or with telemetry off to start in auto mode when no permission mode is configured, like interactive sessions; `--permission-mode` still overrides it\n- Changed Bedrock, Mantle and Claude Platform on AWS requests to a base URL with a non-default port to include the port in the SigV4-signed Host header\n- Changed the MCP server name `widgets` to be reserved in cloud sessions and on self-hosted runners: your own server under it, or a close spelling such as `widgets_`, no longer loads, so rename it\n- Changed `\u002Fultrareview` on macOS and Linux to leave symbolic refs out when uploading a local checkout; a checkout whose current branch is a symbolic ref is now refused with an explanation\n- Windows: Changed project and local settings `env` to no longer set `ALLUSERSPROFILE`, `SystemDrive`, or the `CommonProgramFiles` variables; set them in user or managed settings instead\n- Changed `\u002Ftasks` to fold background work Claude Code runs for itself under one \"System tasks\" row; press Enter on it to show those tasks\n- Changed `\u002Fultrareview` on macOS and Linux to require git 2.31 or newer to upload a local repository; checkouts made with `--separate-git-dir` are now refused instead of being uploaded with an older method\n- Changed `\u002Fultrareview` uploads on macOS and Linux to send a partial clone as a working-tree snapshot on git 2.31 or newer, instead of falling back or refusing when git's version looked too old\n- Changed `\u002Fultrareview` uploads on macOS and Linux to refuse, instead of fetching, a partial clone missing some of its working tree's files on older git versions; a clone made without `--filter` uploads\n- Changed Bedrock, Vertex and Mantle start-up model checks to identify themselves as Claude Code, like other Claude Code requests\n- Changed `claude mcp get` to hide the command, arguments, and environment values of stdio MCP servers provided by plugins; variable names are still shown\n- Changed `\u002Fclaude-api` so it can no longer be run from Remote Control clients\n- Changed `\u002Fconfig chrome=true` to direct you to the \u002Fconfig panel instead of enabling Claude in Chrome by default; `\u002Fconfig chrome=false` still turns it off when it was on\n- Changed sandbox settings so project settings cannot widen or turn off an admin-required sandbox, replace the proxy behind a managed deny list, extend a strict allowlist, or reopen managed read-denies\n- [VSCode] Added a note under a restored tab's last message when a window reload interrupted it and no reply will follow\n- [VSCode] Added a plugin options form to Manage plugins: installing a plugin that has options asks for the unset ones, and a gear on its row changes them later\n- [VSCode] Added an on-demand diagnostics tool so Claude in the panel can read the Problems panel's current errors and warnings at any time, not only right after it edits a file\n- [VSCode] Fixed pressing Enter after typing a slash command running an unrelated menu item picked by fuzzy match, or doing nothing\n- [VSCode] Fixed an open agent transcript losing the agent's newer messages during a long session\n- [VSCode] Fixed a message that quotes a Claude Code or IDE tag losing the rest of its text in the chat\n- [VSCode] Fixed a message sent while Claude was working disappearing from the conversation after the session was reopened\n- [VSCode] Fixed the session list's Web tab showing the previous account's sessions after an account switch\n- [VSCode] Fixed restored tabs re-running an interrupted turn when VS Code was started with `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` set, even with Continue After Reload off\n- [VSCode] Fixed Escape stopping the running turn instead of closing the command menu after clicking one of its rows\n- [VSCode] Fixed opening Past conversations replacing a live conversation with its saved copy\n- [VSCode] Fixed a Claude tab reloaded after an extension restart staying blank instead of saying how to recover\n- [VSCode] Fixed opening a conversation that is already open in another window or app starting a second copy of it without warning; it now asks first\n- [VSCode] Fixed a hook's reason for blocking or stopping a prompt disappearing after a window reload\n- [VSCode] Fixed tabs stuck on a conversation that can't be resumed: the error now says so and offers to start a new conversation\n- [VSCode] Fixed every file Read, Write and Edit stalling for ten minutes and then being skipped when the editor stops responding to the extension's automatic save before the tool runs\n- [VSCode] Fixed the agent map labeling a sub-agent with the session's model instead of the model it actually ran on (e.g. under `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` or an agent's own `model`)\n- [VSCode] Fixed uninstalling a plugin from the Manage plugins dialog, which removed the wrong installation or failed for a plugin installed for the project\n- [VSCode] Fixed sign-in staying on the authorization-code step after going back and choosing the same sign-in method again\n- [VSCode] Fixed the chat panel stalling when a long session trims its oldest rows\n- [VSCode] Fixed the conversation disappearing from a session when many agents run\n- [VSCode] Fixed the editor tab keeping an old name after a session was renamed with \u002Frename, by a SessionStart hook, or on claude.ai\n- [VSCode] Fixed the agent map's transcript view leaving out messages sent to a running agent\n- [VSCode] Improved the Manage plugins dialog: a failed plugin action now opens a popup that explains it and, where there is one, offers the fix\n- [VSCode] Changed the Manage plugins dialog to ask before removing a marketplace or turning off a plugin that your project's shared `.claude\u002Fsettings.json` turns on\n- [Cloud sessions] Fixed Run now on a routine showing internal error text when the run is refused before it starts; it now shows the same explanation as the routine's failure notification\n- [Cloud sessions] Changed `MCP_DISCOVERY_CACHE=1`, when set in your cloud environment's variables rather than a settings file, to reuse your connectors' tool lists after a session restart; other MCP servers are no longer cached and connect at startup\n- [Claude Tag] Added direct messages with Claude for members on an Enterprise plan Standard or Usage-Based Chat seat who also have Cowork; a seat that includes Claude Code is no longer required\n- [Claude Tag] Fixed the Default model setting in admin settings and a channel's Configure page offering models your organization can't use, which made saves or new sessions fail\n- [Claude Tag] Fixed the note under Claude's Slack messages saying it answered on a fallback model, and why, disappearing when Claude later edited that message\n- [Code Review] Fixed the organization menu in Code Review's \"Add a repository\" dialog showing only a few of your GitHub organizations; it now loads more as you scroll\n- [Code Review] Improved the Code Review check run to say when your repository's REVIEW.md wasn't applied, for example on a very large pull request or when REVIEW.md is a symbolic link\n\nSource: https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FCHANGELOG.md","2026-09-30T21:46:49Z",176,[490],{"area":491,"items":492},"Changes",[493],"Full official release notes are preserved below.","editorial","Added `CLAUDE_CODE_DISABLE_WEB_FETCH` environment variable to turn off the WebFetch tool","Claude Code 2.1.285",{"locale":465,"machineTranslated":34,"sourceLocale":40,"status":466},{"bodyMarkdown":499,"brewCommittedAt":500,"hasNotes":70,"id":501,"isLatest":34,"isPrerelease":34,"machineTranslated":34,"publishedAt":502,"sections":503,"source":494,"sourceLocale":40,"summary":506,"title":507,"translation":508,"version":509},"- Added Claude Opus 5.5 (`claude-opus-5-5`), now the default Opus model — 1M context, $4\u002F$20 per Mtok with $0.20\u002FMtok cache reads\n- Added mouse support to more lists in fullscreen mode: the wheel scrolls the `\u002Fskills` list, and a skill's state options in `\u002Fplugin` can be clicked\n- Added `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` to change the 2,048-character cap on MCP tool descriptions and server instructions for every MCP server in the session\n- Added hook output sizes and the number of oversized outputs saved to a file to the `hook_execution_complete` OpenTelemetry event\n- Fixed writes through a symlinked path being judged by their in-tree spelling: the prompt names where the write lands, and `acceptEdits`, allow rules and auto mode no longer approve one landing outside\n- Fixed auto mode retrying an action over and over when a safety check declined to review it; the action is now denied once, noting that retrying won't help\n- Fixed auto mode denying actions over and over without pause when a safety check gave no answer; retries now back off, and the turn stops with a message after ten in a row\n- Fixed Write calls failing validation when a model sends `path`, `file_text`, `file_content` or a stray `description` instead of `file_path` and `content`\n- Fixed Ctrl+C or Ctrl+D pressed twice in most dialogs (`\u002Fmodel`, `\u002Feffort`, `\u002Fconfig`, `\u002Fstatus`, `\u002Fusage`, `\u002Fplugin`, `\u002Fsandbox`, `\u002Fpermissions`, `\u002Fartifacts`, `\u002Fmobile`, `\u002Flogin`, `\u002Fupgrade`, `\u002Fusage-credits`, `\u002Finstall-github-app`, `\u002Fsetup-bedrock`, `\u002Fsetup-vertex`) quitting Claude Code instead of closing the dialog\n- Fixed a click that only brought the terminal window to the front also triggering the item under the pointer — in search pickers, tab bars, agent\u002Fworkflow rows, slash-command links and suggestion dropdowns\n- Fixed a stray `n` closing dialogs and a stray `y` confirming them; Enter and Esc accept and cancel (bind `y`\u002F`n` to `confirm:yes`\u002F`confirm:no` in `keybindings.json` to restore)\n- Fixed text fields in dialogs losing a typed letter, digit or Space to a keybinding on that key\n- Fixed the prompt line staying scrambled on Windows terminals after invisible characters were removed on Enter; the screen is now repainted so you review the exact text that will be sent\n- Fixed the invisible-character cleanup removing the zero-width non-joiner that Persian and Arabic text uses to attach a suffix to a Latin word or number, such as the plural of \"PDF\"\n- Fixed voice dictation not stopping on Ctrl+C (the prompt cleared but the microphone kept recording), Esc not cancelling while a transcript was processing, and held Space starting dictation from the transcript view and vim NORMAL mode\n- Fixed a model switch made from a host app (Claude Desktop, VS Code, SDK) while Claude is working causing a prompt-cache miss on the next prompt\n- Fixed resumed fork subagents rebuilding their tool list instead of re-sending the one they first used, which broke prompt caching for that agent\n- Fixed subagent hand-back messages showing an internal provenance preamble when expanded outside verbose mode\n- Fixed `installed_plugins.json` keeping the install-time commit after updating a plugin from a GitHub repository or git URL that tracks a branch or tag\n- Fixed skills in `~\u002F.claude\u002Fskills\u002F` being moved to `~\u002F.claude\u002Fskills\u002F.trash\u002F` when a `manifest.json` in that folder listed their names\n- Fixed the session feedback survey showing no hover highlight on light and ANSI themes\n- Fixed `\u002Fworkflows` briefly showing a one-row list before opening the only run\n- Fixed the mouse wheel not scrolling selection lists with hidden options (such as `\u002Fmodel` and `\u002Fpermissions`) in fullscreen mode\n- Fixed a skill you switched off showing the same red ✘ as a plugin that failed to load in `\u002Fplugin` and `\u002Fskills`; off now shows a dim ◯\n- Fixed multi-select option descriptions being indented under the option number instead of under the label\n- Fixed the search box in `\u002Fplugin`, `\u002Fskills` and `\u002Fmcp` losing its right border in fullscreen mode\n- Fixed `\u002Fmcp` showing △ in the server list but ⚠ in the detail view for the same server; the list, detail views and `\u002Fplugin` now all show ⚠\n- Fixed Home and End doing nothing in the `\u002Fconfig` settings list and in selection lists such as `\u002Fmodel`, `\u002Fmemory` and permission prompts\n- Fixed PgUp\u002FPgDn in the `\u002Fskills` menu wrapping past the first or last skill instead of stopping there\n- Fixed Tab silently changing the selected setting's value in the `\u002Fconfig` list; it now does nothing there\n- Fixed conversations failing on every turn with a \"role 'system' must precede an 'assistant' message\" API error\n- Fixed conversations with the advisor on failing every turn with API Error 400 \"Input tag 'advisor_20260301'\" behind a proxy or gateway that doesn't support it; the request now retries without it\n- Fixed a session failing on every turn and `\u002Fcompact` when its saved history held a malformed notice about MCP tools that could not be loaded\n- Fixed a crash when resuming a session whose saved transcript holds a malformed system message or a memory-saved notice without its file list\n- Fixed one cause of long-running fullscreen sessions exiting with \"Claude Code exited after an unrecoverable interface error\": a damaged cached message list is now rebuilt\n- Fixed Claude Code hanging when a settings file, or a file it re-reads after an edit, is replaced by a named pipe mid-read\n- Fixed `\u002Fconfig` crashing and some on\u002Foff preferences being misread when a preference that has moved to `settings.json` still holds a value like `null` or `\"false\"` in `~\u002F.claude.json`\n- Fixed resuming a session with unfinished background agents, shells or workflows starting a model turn on its own before you typed anything\n- Fixed messages sent to a background subagent being silently lost in headless and SDK sessions when the subagent was finishing its turn\n- Fixed a finished subagent's report being lost when the conversation that launched it was compacted before the report was read\n- Fixed background subagents being unable to use the LSP tool when an LSP plugin is active\n- Fixed background shell tasks reporting benign non-zero exits (e.g. grep with no matches) as failures\n- Fixed background sessions (`claude --bg`) being unable to run git, hooks, plugins and other helper programs when an environment variable handed to the session contained a NUL character\n- Fixed Ctrl+C needing three or four presses to exit while background subagents are running; two presses now exit\n- Fixed IDE selection being dropped when a sent prompt comes back into the input, such as pressing Esc to edit it, rewinding to it, or pressing Esc while startup hooks run\n- Fixed a `!` shell-mode prompt stashed with Ctrl+S coming back as a plain prompt when restored, and `\u002F` listing file paths right after stashing one\n- Fixed `claude agents` showing a blank, unresponsive screen instead of an error when the temp directory is full, not writable or owned by another user\n- Fixed an MCP server re-added under the same name after `claude mcp remove` still showing as needing authentication instead of reconnecting\n- Fixed background plugin marketplace auto-update ignoring git credential helpers, so private-repo marketplaces were re-cloned every run or never updated\n- Fixed `claude plugin update` clearing a plugin's recorded commit and moving it to version \"unknown\" when the official marketplace's snapshot file is a link or too large\n- Fixed the Artifact tool silently disappearing when your organization's policy can't be loaded (for example behind a web proxy); Claude now says what's blocking it\n- Fixed artifact republishes silently resetting stored database access rules or dropping the viewer profile scope when that capability was re-sent without them; they are now refused\n- Fixed `\u002Fultrareview` reporting a stopped cloud review as completed or as an error to retry, and waiting out the full timeout when its session was deleted or the signed-in account changed\n- Fixed the Claude app showing a missing or stale context usage figure for Remote Control and cloud sessions right after \u002Fcompact or \u002Fclear\n- Fixed the Claude app's diff view for Remote Control and cloud sessions dropping a branch's committed files whenever there are also uncommitted changes\n- Fixed cloud and self-hosted runner sessions failing with \"Authentication failed\" after waiting out a long overload during which the session's access token was rotated\n- Fixed memory write conflicts in Cowork sessions showing Claude only the start and end of a memory file over about 10,800 characters, so the retried write dropped the middle\n- Self-hosted runner: Fixed lifecycle-hook commits failing to sign under `--configure-git`\n- Windows: Fixed background cleanup deleting a directory symlink or junction used to relocate `~\u002F.claude\u002Fsession-env`, `image-cache` or another cleaned-up folder\n- Self-hosted runner: Fixed a turn that ended right at a `--retire-at` release losing its finished signal; the runner now briefly waits for the turn to be reported before stopping the session\n- Reverted `ctrl+l` \u002F `cmd+k` in fullscreen mode clearing the transcript view (added in 2.1.260); they redraw the screen again\n- Improved `\u002Fpermissions`: focus returns to the rule list after viewing, adding or deleting a rule, and the delete-rule and remove-directory confirmations now default to No\n- Improved `\u002Fpermissions` tab navigation: ←\u002F→ and Tab pressed in a rule list now switch tabs without moving focus to the tab bar\n- Improved `\u002Fcost` cache-miss causes to name thinking mode and thinking display changes\n- Improved the Artifact tool so that when Claude cannot read an artifact link it was given, it tells the user before continuing\n- Improved `\u002Finstall-github-app`: the GitHub CLI check and repository selection steps now show \"Esc to cancel\"\n- Improved the `\u002Fartifacts` and `\u002Fworkflows` lists: a scrollbar at the right edge shows how much of a long list is hidden and where you are in it\n- Improved the workflow progress tree: running agents and phases now show a dim dot instead of ⟳\n- Improved `\u002Fplugin`'s Add Marketplace form in fullscreen: it no longer draws a box inside the pane, and its text and key hints line up with the rest of `\u002Fplugin`\n- Improved the `\u002Fworkflows` detail view in fullscreen: it no longer draws a second horizontal rule under the pane's divider\n- Improved code blocks that don't name a language: they are now colored like inline code, so commands stand out from the surrounding text\n- Improved `\u002Fbtw` asked while a tool is still running: the side question now knows that call is in progress instead of reading it as a failed one\n- Improved the UserPromptSubmit hook timeout notice and the debug log to name which hook command timed out\n- Improved `@` file suggestions: a file whose name contains the query now ranks above one that only matches across its folder names\n- Improved artifact pages: no Print buttons, confirm dialogs or device features the viewer blocks, email and phone details shown as text, and dark mode that reaches form controls and scrollbars\n- Improved `\u002Fultrareview` uploads: renamed copies of key files, such as `id_rsa copy` or `kubeconfig (1).yaml`, now also stay on your machine\n- Improved the cross-session messaging startup warning to explain that `--debug-file` writes a debug log to a path you choose\n- Changed the default model on Pro and Team Standard plans from Sonnet to Opus, matching Max, Team Premium, and Enterprise\n- Changed an effort level saved before `\u002Feffort` became per-model to no longer apply to newly released models such as Opus 5.5; they start at their default until you pick a level\n- Changed Opus 4.7, Opus 4.8 and Fable 5 to stop holding their launch-default effort over `\u002Feffort` in `-p` or the Agent SDK, a project, managed or `--settings` `effortLevel`, or a per-model level\n- Changed `\u002Fautocompact`'s footer hint to name ←\u002F→, the keys that adjust other ordered values\n- Changed `\u002Ffast`'s footer to name Space as the toggle key\n- Self-hosted runner: Changed git in lifecycle hooks to ignore hook folders and programs named in the runner's shared git files; local-path and `git:\u002F\u002F` remotes there now need `GIT_ALLOW_PROTOCOL`\n- Changed plugin marketplaces whose name imitates a reserved marketplace name to be refused when added, and to stop loading if one was already added\n- Changed `PermissionRequest` hooks: an agent-type hook no longer runs there, since its answer could never allow or deny the request; it now shows an error pointing to command or http hooks\n- [VSCode] Added a Status dialog, with a typed `\u002Fstatus`, showing the session's version, account, model and server details\n- [VSCode] Added a Sandbox dialog for the sandbox mode, the unsandboxed fallback and excluded commands, opened from the panel menu or by typing `\u002Fsandbox`\n- [VSCode] Added a Claude in Chrome dialog (extension status, the install, reconnect and permissions pages, the enabled-by-default setting), opened from the panel menu or by typing `\u002Fchrome`\n- [VSCode] Added Export conversation, with a typed `\u002Fexport`, to copy or save the conversation as plain text\n- [VSCode] Added each skill's source, token estimate and on\u002Foff state to the Slash commands dialog, with a click to change the state, and a typed `\u002Fskills` that opens it\n- [VSCode] Added a typed `\u002Fplan` that switches to plan mode, sends a first planning prompt, or shows the session's plan\n- [VSCode] Improved pasted-text handling in the chat box: a paste over 800 characters or over 2 line breaks is now marked so Claude can tell it from what you typed\n- [VSCode] Improved prompt handling in the chat box: invisible Unicode formatting and tag characters are removed from pasted text with a notice, and from anything else before it is sent\n- [VSCode] Changed \"Open in New Tab\" to open Claude beside the editor group you are working in rather than after the last group\n- [VSCode] Fixed the effort chip showing a stale saved effort level instead of the level the session runs at\n- [VSCode] Fixed Claude Code never starting when the Python extension hangs while activating; it now starts after 60 seconds without the Python environment\n- [VSCode] Fixed the plan approval card never offering auto mode: when auto mode is available, its first option is now \"Yes, and use auto mode\", as in the terminal\n- [VSCode] Fixed arrow-key navigation in the session list stopping after archiving or unarchiving a session from the keyboard\n- [VSCode] Fixed paste marker lines showing in your own messages after reopening a session\n- [Claude Code on the web] Changed the admin Routines on\u002Foff setting to live under Admin settings → Capabilities → Remote sessions; the Claude Code admin page now links to it\n- [Claude Code on the web] Fixed `gh` and GitHub API calls inside a cloud session on a GitHub Enterprise Server repository failing after about eight hours; the token now renews automatically\n- [Claude Code on the web] Fixed a routine that resumes an existing session running with its old prompt and name when it was edited moments before the scheduled run started\n- [Claude Code on the web] Fixed file links in a cloud session transcript that point outside the session's working directory opening a file card that never loads; they're now disabled and say why\n- [Claude Code on the web] Fixed auto mode refusing to retry a tool call because an approval prompt that expired unanswered, or was superseded by a newer message, had been recorded as your rejection\n- [Claude Code on the web] Improved cloud sessions viewed in the Claude app: Claude now saves files meant for you where the app can open them\n- [Claude Code on the web] Removed the empty repository picker shown when starting a session on a self-hosted environment in an organization where an admin has turned GitHub off\n- [Claude Tag] Added Slack's native Working indicator, Stop button and thread title to Claude's threads in channels; the indicator stays up until Claude finishes, and Stop interrupts the task\n- [Claude Tag] Added a short notice in the Slack channel when a guest joining, or the last guest leaving, changes how Claude responds there under a Restrict or Channel only guest setting\n- [Claude Tag] Fixed scheduled routines silently failing to run in Slack workspaces that were connected to Claude before the workspace joined its Enterprise Grid\n- [Claude Tag] Fixed Claude asking you to re-upload a Slack file when a brief file-scanning outage, not the file, was the problem; it now retries the scan and is told when the scanner is down\n- [Claude Tag] Fixed a bullet in Claude's Slack reply whose text starts with +, - or * rendering as an empty bullet with a stray nested item; it now shows as one bullet with the character kept\n- [Claude Tag] Fixed the Slack notice for a failed cloud environment setup script sometimes being a generic \"mention me to retry\"; it now names the setup script and says to fix it first\n- [Claude Tag] Improved the GitHub banner in Claude Tag admin settings to say why GitHub isn't connected: not signed in, app not linked or not installed, sign-in expired, or SSO not authorized\n- [Code Review] Improved the Code Review check run to say when REVIEW.md instructions were cut or left out of a review for exceeding a size limit, naming the file and the limit\n\nSource: https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FCHANGELOG.md","2026-09-30T01:24:51Z",177,"0001-01-01T00:00:00Z",[504],{"area":491,"items":505},[493],"Added Claude Opus 5.5 (`claude-opus-5-5`), now the default Opus model — 1M context, $4\u002F$20 per Mtok with $0.20\u002FMtok cache reads","Claude Code 2.1.280",{"locale":465,"machineTranslated":34,"sourceLocale":40,"status":466},"2.1.280",{"bodyMarkdown":511,"brewCommittedAt":512,"hasNotes":70,"id":513,"isLatest":34,"isPrerelease":34,"machineTranslated":34,"publishedAt":502,"sections":514,"source":494,"sourceLocale":40,"summary":517,"title":518,"translation":519,"version":520},"- Added AGENTS.md support: in a project with no CLAUDE.md, Claude Code reads AGENTS.md instead; change it under \"Project instructions\" in `\u002Fconfig`\n- Added `CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1` for Claude apps gateways whose only egress is a forward proxy: every outbound request hands the proxy the hostname instead of resolving it locally\n- Added an optional `headers:` map on Claude apps gateway upstreams, to send static headers to a proxy you run in front of a provider\n- Added a line saying a background task's update is waiting when it finishes while a panel such as `\u002Ftasks` is open\n- Fixed `claude -p` and Agent SDK sessions that could hang with no result after an internal error; they now report the error and exit with code 1\n- Fixed conversations failing every request with \"text content blocks must be non-empty\" when an earlier assistant turn held an empty text block beside other content, including after `--resume`\n- Fixed being unexpectedly logged out when an older Claude Code build (for example an IDE extension's bundled CLI) runs on the same machine as the current one\n- Fixed interactive start-up hanging or showing an error for `ANTHROPIC_API_KEY` users when `~\u002F.claude.json` holds a malformed `customApiKeyResponses` value\n- Fixed update checks erroring every 30 minutes, and `claude update` hanging when a minimum or maximum version is set, if a proxy returns an invalid version; a malformed `minimumVersion` is now ignored\n- Fixed `claude update` on winget- or apk-managed installs reporting \"up to date\" when the version lookup failed\n- Fixed `claude plugin install` sometimes failing and breaking the installed copy when reinstalling a plugin version that a session or another program was using; an unchanged copy is now left alone\n- Fixed Grep and Glob reporting no matches when the search could not start because the system was out of processes, memory or file handles; they now return an error saying so\n- Fixed the Write tool silently ending the turn as a declined permission when the target path is an existing directory; it now reports a clear error\n- Fixed the Edit tool treating an escaped backslash followed by `uXXXX` text as a `\\uXXXX` escape, which could make an edit of a non-ASCII character rewrite an escaped backslash sequence instead\n- Fixed the Edit tool reporting \"Invalid regular expression: regular expression too large\" instead of \"String not found in file\" when a very large edit containing non-ASCII text did not match the file\n- Fixed a turn ending early with \"Path contains null bytes\" when a tool call's file path contained `\\u0000` written as an escape sequence; escaped control characters now stay as literal text\n- Fixed background sessions (`claude --bg`) exiting when a plugin's LSP server exited or closed its stdin\n- Fixed a crash (\"Type error\") when opening `\u002Fmcp` or `\u002Fplugin manage` with a malformed `claudeAiMcpEverConnected` value in `~\u002F.claude.json`\n- Fixed a crash at launch when `~\u002F.claude.json` holds a malformed `theme` value\n- Fixed a crash (\"unrecoverable interface error\") when the prompt held text containing terminal color codes, for example a prompt recalled from history or text loaded from the external editor\n- Fixed a crash when resuming a session whose saved history holds an assistant message stored as a plain string\n- Fixed sessions on slow or heavily loaded machines sometimes exiting with \"Claude Code exited after an unrecoverable interface error\" when the first spinner appeared\n- Fixed a rare case where the screen could stop updating for the rest of the session after an internal rendering error\n- Fixed a rare case on Windows where a turn could stop with an error such as \"Out of memory\" right after Claude replied, so that reply's tool calls never ran\n- Fixed sessions continued after `\u002Fclear` (restart, `--continue`, `--resume`) missing part of their first message when a SessionStart hook printed output, causing a full prompt-cache miss\n- Fixed messages from other agents (such as a subagent's SendMessage) that arrived mid-turn showing up below the \"Ran N shell commands\" row instead of where they arrived\n- Fixed the \"copied\" notice not appearing after drag-selecting text in the fullscreen `\u002Fresume` picker and other panels that cover the prompt area\n- Fixed `$TMPDIR` expanding empty in Bash commands that run outside the sandbox while sandboxing is enabled\n- Fixed WebFetch and WebSearch in Cowork cloud sessions not telling Claude why a request was refused, such as a used-up fetch budget or an admin policy\n- Fixed the Claude apps gateway's telemetry relay ignoring a collector hostname or domain listed in `NO_PROXY` when a proxy is set\n- Fixed one malformed `strictKnownMarketplaces` or `blockedMarketplaces` entry silently disabling the whole enterprise marketplace policy\n- Fixed failed auto-updates leaving large staged downloads behind in `~\u002F.cache\u002Fclaude\u002Fstaging`\n- Fixed `\u002Fplugin` not stripping terminal control characters from messages on the Installed tab, such as the error of a failed plugin update\n- Fixed `\u002Fplugin` → Installed and `\u002Fskills` crashing when a skill or legacy command is named like a built-in Object property such as `constructor` or `toString`\n- Fixed `\u002Fplugin` closing with no message when every install in a multi-select failed\n- Fixed uninstalled plugins reappearing as \"failed to load\" rows in `\u002Fplugin` Installed, and Remove not clearing such a row\n- Fixed plugins from the official marketplace being recorded without their commit in `installed_plugins.json`, and `installed_plugins.json` keeping the old commit after updating a pinned-commit plugin\n- Fixed plugin reload previews keeping every previewed copy of a plugin archive unpacked until exit, and overwriting the cached `--plugin-url` archive a reload falls back to when its download fails\n- Fixed Remote Control session bookkeeping failing when `~\u002F.claude.json` holds a malformed placeholder record\n- Fixed the error after a revoked claude.ai login blaming an expired Anthropic profile; it now leads with `\u002Flogin`\n- Fixed typed or pasted text occasionally coming out scrambled in the `claude agents` dispatch input during key repeat or very fast input\n- Fixed a crash (\"unrecoverable interface error\") when resuming a session whose saved transcript contains a stop hook summary without a well-formed hook list\n- Fixed Enter on a selected agent panel row doing nothing when `keybindings.json` rebinds Enter in the Chat context, for example to `chat:queueSubmit`\n- Fixed PDF page reads on Windows failing when the working folder's path is long (about 120 characters or more)\n- Fixed a headless resume (`claude -p --resume`, the SDK, a VS Code extension window reload) starting the session's cost and usage totals at zero; headless sessions now save their totals at exit\n- Fixed project skills from the main repository not loading in `--worktree` sessions when `.claude\u002Fskills` is untracked\n- Fixed a `sandbox.excludedCommands` glob exempting an entire compound Bash command from the sandbox when only one part matched; every part must now match\n- Fixed resumed subagents and teammates re-rendering the MCP tool definitions they had loaded, which broke prompt caching for that agent\n- Fixed rate-limited artifact publishes telling Claude to stop retrying; Claude is now told nothing was published and when to send the same publish again\n- Fixed attachments recorded earlier in a conversation being re-rendered after a resume or relaunch, which dropped extended thinking and missed the prompt cache\n- Fixed Console sign-in showing only \"Request failed with status code 400\" when the server refuses to create an API key; it now shows the server's message\n- Fixed messages typed while Claude is still working sometimes being ignored by the model\n- Improved session start-up for SDK and headless (`-p`) use: the first turn no longer waits on the per-directory CLAUDE.md lookup\n- Improved the Claude apps gateway's loopback error messages to name `CLAUDE_GATEWAY_ALLOW_LOOPBACK`\n- Improved `\u002Fplugin` Installed: an MCP server listed apart from its plugin now shows which plugin it belongs to\n- Improved `claude plugin install` on an already-installed plugin: it now says when the marketplace offers a newer version and names the `claude plugin update` command\n- Improved the startup notice overflow line under the logo: it now reads \"N more notices hidden\" instead of \"+N more · \u002Fstatus\"\n- Improved prompt handling: invisible Unicode formatting and tag characters in a prompt are removed and the cleaned prompt is shown for review before it is sent\n- Improved `\u002Fultrareview` when there's nothing to review: messages say which case you're in, offer a command that reviews your latest commit, and a new repository's first commit is reviewed in full\n- Improved artifact link handling so Claude reads claude.ai artifact links with the Artifact tool instead of WebFetch when that tool is available\n- Improved the dangerous-rm permission prompt to name the flagged rm command and suggest a `${VAR:?}` guard, so headless runs can recover\n- Improved the Artifact tool's permission prompts: shorter sentences, pages and artifacts named by title or file name, and links listed after the text\n- Changed Fable to always appear in `\u002Fmodel` on the Anthropic API; it is greyed out only when your organization's settings disable it\n- Changed the Bash sandbox instructions on Bedrock, Vertex and Foundry to the first-party wording, which frames the sandbox as the boundary of what the task was given\n- Changed `\u002Fultrareview` in non-interactive sessions to refuse when the repository has no base branch or shared history\n- Changed subagent results to reach the main agent under a header marking them as subagent output, with the result indented, so text in a subagent's result cannot pass as the session's own instructions\n- Changed workflow scripts' computed `agent()` prompts on Bedrock, Vertex and Foundry to reach the subagent framed as script-authored text, so the safety classifier does not read them as the user\n- Removed the background Haiku auto-title request from `claude -p` runs launched outside an SDK or IDE\n- Removed the deprecated TaskOutput tool; Claude reads a background task's output file with Read instead, and the `taskOutputMaxChars` setting and `TASK_MAX_OUTPUT_LENGTH` no longer have any effect\n- [VSCode] Added a Sign out row to the panel menu, with `\u002Flogout` in the typed command menu\n- [VSCode] Added background shells and other running tasks to the agent map, each with a Stop, and a typed `\u002Ftasks` that opens it\n- [VSCode] Added a Copy response button on responses and a typed `\u002Fcopy`\n- [VSCode] Added a one-time notice when inactive sessions are archived automatically, and an \"Unarchive all\" action on the Archived sessions group\n- [VSCode] Added the session's cost and token usage to the Account & usage dialog and the session manager where plan limits do not apply (Vertex, Bedrock, Foundry, API key)\n- [VSCode] Fixed the \"General config\" menu row showing `\u002Fconfig` usage text instead of opening settings, and made typed `\u002Fmcp`, `\u002Fhooks`, `\u002Fmemory`, `\u002Frewind` and similar commands open their dialogs\n- [VSCode] Fixed the effort slider's level not persisting into later sessions on a model that already had a level saved with `\u002Feffort`\n- [VSCode] Fixed Auto missing from the mode picker for conversations opened in an already-used panel when the saved model setting is a differently-cased alias such as \"Sonnet\"\n- [VSCode] Fixed `\u002Ffast` not saving fast mode as the default, so it was lost when the extension relaunched Claude Code\n- [Claude Code on the web] Added Personal and Organization sections to the environment picker on Team and Enterprise plans, and admins can now share a personal environment with the organization\n- [Claude Code on the web] Changed organization environments to open as a read-only summary from the Code tab on Team and Enterprise plans, with editing under Admin settings → Cloud environments\n- [Claude Code on the web] Fixed a cloud environment saved with Custom network access and no domains silently reverting to Trusted; the dialog now asks for at least one domain\n- [Claude Code on the web] Changed the admin Claude Code setting labeled \"Web\" to \"Cloud sessions\" and removed the redundant read-only Mobile row beneath it\n- [Claude Tag] Fixed routines created in a Slack channel on an Enterprise Grid org-wide install failing to read other public channels in their workspace when they ran\n- [Claude Tag] Fixed the \"Learn more\" links on credential presets in Claude Tag access bundles to open each vendor's credential-setup page instead of a generic API reference\n- [Claude Tag] Changed the Pylon credential preset in Claude Tag access bundles so admins can point it at Pylon's EU host\n- [Claude Tag] Fixed Google Cloud credential forms in Claude Tag access bundles: a refused key file now says why, the website and scopes stay locked, and a rejected rotation keeps the pasted key\n- [Claude Tag] Fixed the network events log in Claude Tag admin settings showing no response status for requests through connections that use AWS signing, client certificates or a custom CA\n\nSource: https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FCHANGELOG.md","2026-09-28T18:53:39Z",178,[515],{"area":491,"items":516},[493],"Added AGENTS.md support: in a project with no CLAUDE.md, Claude Code reads AGENTS.md instead; change it under \"Project instructions\" in `\u002Fconfig`","Claude Code 2.1.277",{"locale":465,"machineTranslated":34,"sourceLocale":40,"status":466},"2.1.277",{"bodyMarkdown":522,"brewCommittedAt":523,"hasNotes":70,"id":524,"isLatest":34,"isPrerelease":34,"machineTranslated":34,"publishedAt":502,"sections":525,"source":494,"sourceLocale":40,"summary":528,"title":529,"translation":530,"version":531},"- Added a visible warning when memory usage is critical, with steps to free memory or restart safely\n- 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)\n- Added `effort` attribute to the `claude_code.llm_request` OpenTelemetry trace span, matching the `api_request` event\n- Added `claude_code.managed_settings_resolved` OTel event: managed-settings sources and policy helper state; redacted settings and digests with `OTEL_LOG_MANAGED_SETTINGS=1`\n- Added `store.connect_timeout_seconds` to the Claude apps gateway config to lengthen the Postgres connect timeout (default 5 seconds), and improved the boot error when the database is unreachable to point to `store.postgres_url` and the configured timeout\n- Added `enduser.sub`, the IdP subject, to the telemetry Claude Desktop and Cowork send through a Claude apps gateway\n- Added a Claude apps gateway warning when a replica has more requests open than the 256 it sends upstream at once, and a startup log line showing that limit\n- Added click-to-expand for collapsed teammate and agent messages in fullscreen mode\n- Fixed sessions getting stuck endlessly retrying \"unexpected tool_use_id\" 400 errors: corrupted transcripts now self-heal where possible, and otherwise a clear error (with a `\u002Frewind` hint) ends the loop\n- Fixed MCP servers configured as `http` that only speak legacy HTTP+SSE failing to connect when they answer the first request with 422 or another 4xx error\n- Fixed Streamable HTTP MCP tool calls timing out after about 5 minutes even when a longer per-server `timeout` was set\n- Fixed MCP prompts and resources not refreshing when a server sends list-changed notifications without declaring `listChanged`\n- Fixed MCP tool calls refused with 403 insufficient_scope being reported as an expired sign-in: the error now names the missing permissions and points to `\u002Fmcp` re-authentication\n- Fixed hook-driven sessions (such as an active `\u002Fgoal`) ending with \"Prompt is too long\" instead of compacting when the context overflowed again after a reactive compaction\n- Fixed an active `\u002Fgoal` being lost when resuming (`--continue` \u002F `--resume`) a session that had compacted\n- Fixed `claude agents` losing `--model`, `--effort`, `--permission-mode`, `--allow-dangerously-skip-permissions` and `--agent` after an auto-update relaunch\n- Fixed a per-turn slowdown when a language server publishes project-wide diagnostics for thousands of files\n- Fixed subagents with `model: \"opus\"` on Bedrock, Vertex or Foundry leaving the session's model when its id has no recognizable model family (unless `ANTHROPIC_DEFAULT_OPUS_MODEL` is set)\n- Fixed self-hosted runner sessions failing every turn with a 401 after a few failed token refreshes, until the next scheduled refresh; the runner now keeps retrying, and fetches a new token after a 401\n- Fixed clickable links to local file paths doing nothing in VS Code and other terminals that require a `file:\u002F\u002F` URI\n- Fixed the transcript renumbering ordered lists in your own messages (typing \"3. 2. 1.\" displayed \"3. 4. 5.\"); numbers and \"N)\" markers now show as typed\n- Fixed AskUserQuestion preview notes being attached to a previously chosen option instead of the highlighted one\n- Fixed AskUserQuestion preview mode dropping the highlighted option when submitting a note with Enter\n- Fixed a resumed background agent keeping half of an interrupted tool batch when one of its calls was approved with a message\n- Fixed a local `claude -p --resume` started with `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` not reporting background tasks the previous process left unfinished\n- Fixed the first turn of a cloud session sometimes starting without the tools of an SDK-hosted MCP server that was still connecting\n- Fixed background agent notifications claiming the agent had no live background work when it was still waiting on its own background task and would resume\n- Fixed error hints in Claude Desktop sessions to suggest slash commands like `\u002Fusage-credits` instead of CLI flags that cannot be used there\n- Fixed `\u002Fschedule` saving a routine's prompt without its message role when Claude writes the routine in the shape that listing routines returns\n- Fixed `\u002Fstatus` not showing the `apiKeyHelper` failure that its own error banner told you to check\n- Fixed `\u002Ffast on` in non-interactive sessions reporting on and then turning off under an organization's managed fast mode policy; it now says the organization has disabled it\n- Fixed the Artifact tool asking you to approve an update to an artifact that it then refused because the session had not read the latest version\n- Fixed Cowork and claude.ai cloud sessions with network access on treating reads of a teammate's artifact as if network access were off\n- Fixed a plugin or marketplace directory with no git repository of its own taking its version from an enclosing git repository, such as a git-managed `~\u002F.claude`\n- Fixed `--strict-mcp-config` with an empty `--mcp-config` holding the first non-interactive turn for up to `MCP_TIMEOUT` on incidental MCP servers\n- Fixed Stop prompt hooks re-sending their whole prompt on every block in a conversation; repeat blocks now name the condition with a 500-character label\n- Fixed extra empty editor windows opening at startup on Linux under Wayland when running inside the Cursor or VS Code terminal\n- Fixed an unhandled promise rejection in the Claude apps gateway when Postgres drops a connection during a spend check\n- Fixed Claude apps gateway cutting every open stream on SIGTERM: it now lets in-flight requests finish for up to 25 seconds before exiting (`CLAUDE_GATEWAY_DRAIN_TIMEOUT_MS`)\n- Fixed `installed_plugins.json` being rewritten on nearly every start-up when plugin policy comes from remote managed settings, which made Claude Desktop reload every open session's plugins\n- Fixed headless and SDK sessions making a separate model call for every background task that finished; completions already queued are now answered by one call\n- Fixed the Bash tool re-sourcing the shell profile (a multi-second stall on the next command) after every plugin reload; it now does so only when the plugins' `bin\u002F` directories changed\n- Fixed plugins with a top-level `$schema` in `hooks\u002Fhooks.json` showing an \"unknown key\" notice\n- Fixed MCP connection errors and the MCP login tool's description showing secrets resolved from `${VAR}` placeholders in MCP configs\n- Fixed Bash permission checks for commands that loop over or assign certain special shell variables; these commands now ask for permission\n- Fixed worktree-isolated sessions accepting Bash commands with certain nested shell expansions; these are now refused\n- Fixed the Edit permission prompt preview sometimes showing a different location than the approved edit in files with multi-byte characters\n- Fixed background commands being stopped after 30 idle minutes on machines under mild memory pressure; they're now stopped only when memory is critically low, and the debug log says why\n- Fixed a message a subagent sends to the main session disappearing from the Claude Desktop transcript after a relaunch\n- Fixed a plugin loaded from a `.zip` being served from a stale extraction after several overlapping reloads\n- Fixed a sub-agent's progress summary being replaced by a runaway multi-paragraph reply\n- Improved startup in `--input-format stream-json` sessions: the first turn no longer waits up to 2s for still-connecting MCP servers whose tools tool search defers; they arrive on a later turn\n- Improved Monitor tool notifications: a script's final output and its exit now arrive as one notification instead of two, saving a model turn\n- Improved Artifact tool errors: when you are not signed in to claude.ai the terminal now says so on the first attempt, and Claude is told to stop retrying a rejected call sooner\n- Improved artifact publishing: a publish built on an older version is stopped before it is sent, with the newer page to merge\n- Improved safety checks before removing an agent worktree that contains submodule checkouts\n- Improved `OTEL_LOG_RAW_API_BODIES=file:\u003Cdir>` output: a new `index.jsonl` and `request_body_id` \u002F `message.id` event attributes link each response to its request file and transcript message\n- Improved Claude apps gateway boot: it now tries the first Postgres connection up to three times before exiting, so a database that is reachable a few seconds late no longer fails the boot\n- Improved the Claude apps gateway's spend-limit check under load: it now takes one database round trip instead of four, so fewer checks time out on a busy gateway\n- Improved Claude apps gateway sign-in rate limit errors: `\u002Flogin` now explains the refusal, and the gateway log says which limit was hit and which setting to change\n- Changed Bedrock, Vertex, Foundry and telemetry-disabled installs to use the v2 MCP client and MCP 2026-07-28 negotiation with direct HTTP servers by default, as other installs already do (opt out: `MCP_SDK_GENERATION=v1` or `MCP_PROTOCOL_NEGOTIATION=legacy`)\n- Changed `\u002Fcode-review` to use leaner inline review prompts for every model that has no tuned settings of its own, instead of spawning many review subagents\n- Changed `\"type\": \"sdk\"` MCP entries in `.mcp.json`, settings, plugins and agent files to be skipped with a warning: only an SDK host application can register in-process servers\n- Changed artifact watching in local sessions: a new version published elsewhere no longer starts a turn; Claude learns of it from a later Artifact tool result\n- Changed plugin and marketplace clones to leave Git LFS files as pointers instead of downloading them; `git lfs pull` in the checkout fetches them\n- Changed self-hosted runners to skip a read-only repository the git host refuses at the access check instead of failing the session start\n- Changed the `\u002Fstatus` GitHub line to read \"Cloud sessions\", and `\u002Fweb-setup`, `\u002Fultrareview`, and teleport messages to say \"cloud session\" instead of \"Claude Code on the web\"\n- [VSCode] Added continuation of the step a window reload interrupted, labeled in the chat, with a Claude Code: Continue After Reload setting to turn it off\n- [VSCode] Added Memory and Instructions entries to the Customize menu: Memory shows the auto-memory toggles, the saved memories and the memory folders, and Instructions edits the CLAUDE.md files\n- [VSCode] Added a `claudeCode.lockEditorGroups` setting to stop Claude from locking the editor groups it opens in\n- [VSCode] Fixed a `\u002Fbtw` side question asked in a new conversation's first seconds occasionally showing another session's side-question history\n- [VSCode] Fixed a brief freeze when the extension first looks up your global gitignore file\n- [VSCode] Fixed a message sent while Claude was running a tool disappearing from the conversation after a window reload\n- [VSCode] Fixed the Manage Plugins enable toggle and MCP servers dialog rows being unreachable from the keyboard\n- [VSCode] Fixed sign-ins and sign-outs made in a terminal not showing until a reload after `CLAUDE_CONFIG_DIR` changed in the Environment Variables setting\n- [VSCode] Fixed Edit diffs in the chat being cut off at the bottom at some panel widths and for long wrapped lines; diff boxes now fit the rows shown\n- [VSCode] Fixed overlapping settings writes from the extension leaving `~\u002F.claude\u002Fsettings.json` unparseable or dropping a setting\n- [VSCode] Fixed Open in New Tab (Ctrl\u002FCmd+Shift+Esc) sometimes leaving the new tab's message box unfocused, so typing went nowhere until you clicked it\n- [VSCode] Fixed reopening a closed Claude tab splitting the editor layout when its locked group still holds another Claude tab and a file\n- [VSCode] Fixed New session opening another locked editor group whenever a file tab shared the group with your Claude tab\n- [VSCode] Fixed session names shifting sideways in the session picker while typing a search query\n- [VSCode] Fixed the plan review card cutting off its Send feedback button and reason field when a plan has several comments; the comment list now scrolls\n- [VSCode] Fixed inline code and code blocks in chat replies being unreadable under the High Contrast themes\n- [VSCode] Improved screen reader navigation of the conversation: each message is announced as \"You\" or \"Claude\", with the tool name for tool steps\n- [VSCode] Changed the default global gitignore file to `$XDG_CONFIG_HOME\u002Fgit\u002Fignore` when `XDG_CONFIG_HOME` is an absolute path\n- [Claude Code on the web] Added a \"Compare against\" branch picker to a cloud session's diff view, so you can diff its changes against any branch instead of only the base branch\n- [Claude Code on the web] Fixed git operations in cloud sessions failing with \"service unavailable\" when GitHub's token renewal briefly errors\n- [Claude Code on the web] Fixed editing a routine occasionally making it fire twice or re-enabling a routine that had just been paused\n- [Claude Code on the web] Fixed commits in cloud sessions occasionally failing with a signing error for a few minutes after the session's credentials refreshed\n- [Claude Code on the web] Fixed the toast after saving a routine whose GitHub trigger couldn't be linked to show the reason, such as a per-repository trigger limit, instead of only \"edit to retry\"\n- [Claude Code on the web] Fixed sessions sometimes flipping back to unread right after you mark them read\n- [Claude Code on the web] Changed routines to skip a run and retry for up to 72 hours when the owner's GitHub connection is missing, instead of switching the routine off at the first failed check\n- [Claude Code on the web] Changed a routine's on-hold notice: when your subscription is paused it now tells you to turn the routine back on yourself instead of promising an automatic resume\n- [Claude Tag] Added a Guests setting to the Add channel and Add workspace forms in Claude Tag admin settings, so owners can pick Inherit, Allow, Channel only or Restrict up front\n- [Claude Tag] Fixed Claude not answering when another Slack app or bot @mentions it; the tag now gets a reply and wakes Claude in a channel it had stopped following after days of inactivity\n- [Claude Tag] Fixed Claude missing another app's message that tagged @Claude right after a new Slack channel was created; it's now delivered once Claude has joined\n- [Claude Tag] Fixed Claude folding a follow-up sent minutes after its last Slack message into it as a silent edit; late updates such as blockers now post as a new reply that notifies\n- [Claude Tag] Fixed Claude's Slack search failing with an error whenever it searched within a single channel; it now returns that channel's matching messages\n- [Claude Tag] Fixed a safety-filter stop silently resetting a Slack thread's context when nobody was waiting; Claude now always says so and no longer cancels background work still running\n- [Claude Tag] Fixed email addresses in Claude's Slack replies rendering with a visible `mailto:` prefix; they now show as the plain, clickable address\n- [Claude Tag] Fixed Claude refusing to watch an Enterprise Grid channel shared with the whole organization when asked from another workspace in the grid\n- [Claude Tag] Fixed the Environment picker in Claude Tag admin settings showing a raw environment ID instead of the environment's name for archived or app-created environments\n- [Claude Tag] Improved Claude's live progress checklist in Slack: capped at 2,000 characters, reposted at most every 15 minutes in busy threads, with older \"Latest task list\" links updated\n- [Claude Tag] Removed the repeated guest-attribution note Claude appended to a Slack canvas each time it edited one in a channel using the \"Channel only\" guest setting\n- [Code Review] Fixed re-reviews occasionally leaving a fixed finding's thread open when the new review also filed a lower-severity note under it\n- [Code Review] Fixed rare reviews ending with \"Code review encountered an error\" when GitHub or an internal service failed transiently at launch; they now wait and retry\n- [Code Review] Improved how Code Review words each posted finding: short plain sentences that say who is affected, where the code goes wrong, and the fix up front\n- [Code Review] Improved the check-run card and PR comment when a review is skipped because of an organization limit: each cause now links the admin page that fixes it\n\nSource: https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FCHANGELOG.md","2026-09-24T21:43:20Z",179,[526],{"area":491,"items":527},[493],"Added a visible warning when memory usage is critical, with steps to free memory or restart safely","Claude Code 2.1.274",{"locale":465,"machineTranslated":34,"sourceLocale":40,"status":466},"2.1.274",{"bodyMarkdown":533,"brewCommittedAt":534,"hasNotes":70,"id":535,"isLatest":34,"isPrerelease":34,"machineTranslated":34,"publishedAt":502,"sections":536,"source":494,"sourceLocale":40,"summary":539,"title":540,"translation":541,"version":542},"- Added `x-claude-code-request-class`, `x-claude-code-agent-type`, `x-claude-code-prev-tool-durations`, `x-claude-code-compaction` and `x-claude-code-context-compacted` request headers for LLM gateways; opt in with `CLAUDE_CODE_GATEWAY_HINT_HEADERS=1`\n- Added a notification when an MCP server disconnects mid-session and automatic reconnection gives up, pointing at `\u002Fmcp`\n- Added forking a session started with `claude --remote-control` or `\u002Fremote-control` from the Claude app; the fork runs as a background session on your computer\n- Fixed Bash commands the permission checker cannot fully analyze skipping the prompt under `permissions.blockReadsOutsideWorkingDirectories`, and a subshell hiding a dangerous `rm` in bypass mode\n- Fixed skills synced from claude.ai staying available after your organization turns Skills off; they now move to the recoverable trash\n- Fixed `allowManagedMcpServersOnly`, `deniedMcpServers` and `disableClaudeAiConnectors` set via MDM or `managed-settings.json` being ignored when server-managed settings are also present\n- Fixed 401\u002F403 errors on Bedrock, Vertex and Foundry, and Claude apps gateway 403s, telling you to run `\u002Flogin`; the message now names the credential to refresh or points to your gateway administrator\n- Fixed `\u002Flogin`, `\u002Fupgrade`, and `\u002Fextra-usage` discarding earlier thinking from the conversation, which forced a full prompt-cache rewrite on the next request\n- Fixed auto mode stopping for approval when the Artifact tool uploads a file you attached to the chat in a cloud or Remote Control session\n- Fixed a long-running session recreating a stub `.git\u002Finfo\u002Fexclude` after the repository's `.git` directory was removed or moved away\n- Fixed the main prompt dropping a `!` typed at the start while already in shell mode, so negated commands like `! grep …` can be typed\n- Fixed Read on macOS refusing a dragged-in screenshot, or any file the system reports under a second path, with \"symlink resolution changed after permission was checked\"\n- Fixed `permissions.blockReadsOutsideWorkingDirectories`: a memory directory chosen by a repository's settings is no longer loaded into the prompt, recalled, indexed, or used by memory extraction\n- Fixed sub-agents and background agents being reported as failed, with their result never delivered, when the final streamed reply omitted token usage or carried no model id\n- Fixed the context meter and auto-compact counting advisor-tool turns at roughly twice their real context size, which made auto-compact fire at about half the real window\n- Fixed `\u002Ftui` refusing to restart because of an agent-team teammate that had already finished its work and was no longer shown in the agents panel\n- Fixed saved scheduled tasks running in the wrong session after `.claude\u002Fscheduled_tasks.json` was copied into another folder, such as a new worktree\n- Fixed SDK and `--output-format stream-json` output dropping a subagent's remaining messages and final report after it is moved to the background mid-run (e.g. by `CLAUDE_AUTO_BACKGROUND_TASKS`)\n- Fixed `\u002Finstall-github-app` reporting a SAML single sign-on block as \"admin permissions required\"\n- Fixed Remote Control clients attached to a Claude Desktop, VS Code or JetBrains session being refused when they ask for the session's context window usage\n- Fixed the spinner showing a doubled ellipsis (\"……\") on compaction status lines such as \"Running PreCompact hooks…\"\n- Fixed a false-positive spinner tip suggesting the frontend-design plugin after reading or publishing Artifacts\n- Reverted a 2.1.268 change that checked Read and Edit deny rules on Bash lines the permission checker can't analyze (`eval`, `env -C`); commands like `time -p make build` prompt again instead of being denied\n- Improved responsiveness in long sessions: hook progress and sub-agent activity no longer re-process the whole conversation on every update\n- Improved the Artifact tool's error when a publish includes a file type artifacts don't serve: Claude is told which types are served and what to do instead, and the terminal shows one plain line\n- Improved the Artifact tool's page read to state the capabilities and database rules the artifact service holds for the page, for anyone who can publish to it\n- Improved artifact database writes: an update can now remove a single field instead of rewriting the whole document\n- Improved artifact publishing: a publish whose connection drops after reaching claude.ai is now re-sent safely instead of failing or creating a duplicate version\n- Improved the cloud-session GitHub error for an IP allow list, a suspended app installation or SAML single sign-on to show the cause instead of a generic install hint\n- Improved `\u002Fautofix-pr`: when `gh pr view` fails it now shows gh's own error (sign-in, SAML, rate limit) instead of a generic exit-code line\n- Improved `\u002Fautofix-pr` to say why GitHub webhook delivery couldn't be set up for the PR (for example, no linked GitHub account) instead of a generic warning\n- Improved `\u002Fweb-setup` errors: a refused GitHub token now lists the likely reasons and the fix, and a connection failure names a configured proxy or TLS certificate problem\n- Improved the in-session SSL certificate and proxy connection errors to name the error code and what to fix, such as `NODE_EXTRA_CA_CERTS` for an untrusted corporate CA\n- Improved the error when a cloud session can't be created because your Claude login expired or was revoked: it now tells you to run `\u002Flogin`\n- Improved the error shown when an MCP server's sign-in expires mid-session to say how to re-authenticate (`\u002Fmcp`)\n- Changed auto mode on Bedrock, Vertex and Foundry to use the local classifier by default for now; set `CLAUDE_CODE_AUTO_MODE_SERVER=1` to use the platform's server-side classifier\n- Changed `OTEL_LOG_TOOL_DETAILS=1` to also include real agent, skill, plugin and MCP server names on cost and token metrics\n- Changed sign-in with a Claude account to also request access to your claude.ai plugins\n- Changed `\u002Fbug` and `\u002Ffeedback` reports to include only model-behavior params (model, system prompt, tools) from the last API request, omitting request metadata and `CLAUDE_CODE_EXTRA_BODY` fields\n- [VSCode] Fixed \"Report a problem\" still appearing, and `\u002Fbug` \u002F `\u002Ffeedback` opening a report form, for organizations that have product feedback disabled\n- [VSCode] Fixed a red \"Claude Code process exited with code 4294967295\" banner appearing after completed turns on Windows\n- Windows: Improved the network-path permission check for UNC paths when a mapped network drive was added with `--add-dir`\n- [Claude Code on the web] Fixed routines losing access to an organization connector, and still calling the old one, after an admin removed and re-added that connector\n- [Claude Code on the web] Fixed creating a self-hosted environment from organization settings occasionally failing with a server error and leaving a half-created environment behind\n- [Claude Code on the web] Changed the admin \"Share cloud sessions\" setting to live under Data and privacy instead of the Claude Code page, where Data and privacy admins can also manage it\n- [Claude Code on the web] Added a \"Discard unsaved changes?\" confirmation before the New routine page or the Edit routine dialog throws away a routine name, prompt or edit you typed\n- [Claude Code on the web] Removed the full-page desktop-app download screen that new users without a cloud environment saw on Mac and Windows; they now go straight to setup\n- [Claude Code on the web] Improved the routine detail page: menu and rename in the breadcrumb, the on\u002Foff switch and Run now at the top, and run history beside the routine's settings\n- [Claude Tag] Fixed Claude going silent minutes after reinstalling the app when an Enterprise Grid was disconnected but one of its workspaces stayed connected\n- [Claude Tag] Fixed scheduled tasks set up in an organization-shared private Slack channel silently never posting; they now keep running in the thread they were created in\n- [Claude Tag] Fixed replying in an older Slack thread while Claude is mid-task sometimes restarting it from scratch and losing work it had not pushed yet\n- [Claude Tag] Fixed Claude occasionally dropping a message with an incorrect \"couldn't find a Claude Code environment\" notice right after your account token refreshed\n- [Claude Tag] Fixed AWS connections refusing region-less endpoints such as Budgets, Savings Plans, WAF Classic and Import\u002FExport; Global Accelerator requests now sign correctly\n- [Claude Tag] Improved AWS connection failures: when a request can't be signed, such as a hostname with no region, Claude is told why and how to fix it instead of a bare error\n- [Claude Tag] Fixed OAuth client-credentials and JWT-bearer connections failing with providers that return a lowercase token type; requests now send the standard Bearer scheme\n- [Claude Tag] Fixed adding a channel manager being refused on Enterprise Grid shared channels, on channels where Claude hasn't been used yet, and on legacy private channels\n- [Claude Tag] Changed Claude to start watching related public channels on its own, such as an incident channel a conversation depends on, instead of only when asked\n- [Claude Tag] Fixed the admin Memory page not listing Slack channels Claude set up on its own even when they had saved memory; admins can now open, edit and delete that memory\n- [Code Review] Fixed merging the base branch into a PR whose earlier review listed \"Additional findings\" triggering a full re-review; these pushes now get the lighter follow-up review\n- [Code Review] Fixed a whole REVIEW.md being ignored because of an @-mention, a code span wrapped across lines, or a backticked HTML tag; only lines linking to changed files are withheld\n- [Code Review] Improved suggested fixes to say what the fix must keep working when other code depends on the behavior being changed\n- [Code Review] Improved review comments that point to a second affected location to state that location's issue in a full sentence instead of a cut-off stub\n- [Code Review] Fixed `\u002Fultrareview --post` so a retry after a GitHub error posts the findings comment exactly once instead of never or twice; the comment now names the reviewed commit\n- [Code Review] Fixed empty or content-identical pushes being re-reviewed on GitHub repositories whose owner or name contains a capital letter; these pushes are now skipped\n\nSource: https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FCHANGELOG.md","2026-09-23T21:42:56Z",180,[537],{"area":491,"items":538},[493],"Added `x-claude-code-request-class`, `x-claude-code-agent-type`, `x-claude-code-prev-tool-durations`, `x-claude-code-compaction` and `x-claude-code-context-compacted` request headers for LLM gateways; opt in with `CLAUDE_CODE_GATEWAY_HINT_HEADERS=1`","Claude Code 2.1.273",{"locale":465,"machineTranslated":34,"sourceLocale":40,"status":466},"2.1.273",{"bodyMarkdown":544,"brewCommittedAt":545,"hasNotes":70,"id":546,"isLatest":34,"isPrerelease":34,"machineTranslated":34,"publishedAt":502,"sections":547,"source":494,"sourceLocale":40,"summary":550,"title":551,"translation":552,"version":553},"- Added `maxEffortLevel` setting (top-level or per model under `modelSettings`): caps the effort level on every provider, including Bedrock, Vertex and Foundry; users can still pick a lower level\n- Added `--system-prompt-snapshot off` to render the system prompt fresh on every request instead of reusing the conversation's recorded prompt (for iterating on prompt text)\n- Fixed Cowork scheduled tasks in the cloud failing at startup for organizations whose managed settings require sandboxing\n- Fixed `\u002Fcontext` and other local command output rendering blank on mobile clients\n- Fixed shift+enter and option+backspace not working after reconnecting to a tmux or ssh session inside an agent view\n- Fixed the dim last-prompt header not appearing at the top of the conversation when scrolling up in fullscreen mode\n- Fixed Workflow `agent()` calls with large output schemas being refused in auto mode instead of being checked by the safety classifier\n- Fixed a case where a marketplace entry path containing a backslash could bypass the containment check for fetched marketplaces on macOS and Linux\n- Fixed expired AWS or Google Cloud credentials under a host app such as Claude Desktop retrying ten times with a generic \"request failed\" before the re-authenticate error appeared\n- Fixed resuming a session after `\u002Fcompact` or another slash command ran via `-p --resume`: a spurious \"Continue from where you left off.\" turn is no longer inserted\n- Fixed resuming a large session (transcript over 5 MB): parallel tool calls and their hook output are no longer dropped from the reloaded conversation\n- Fixed managed `allowedHttpHookUrls`, `httpHookAllowedEnvVars` and `allowedChannelPlugins` to admit nothing, not everything, when unreadable\n- Fixed `\u002Flogin` on machines whose managed settings require Claude apps gateway sign-in: Esc now closes the dialog instead of doing nothing\n- Fixed artifact publishes cut off by a dropped connection mid-upload: they now retry once when Claude Code can tell the upload never completed, instead of reporting an unknown outcome\n- Fixed `effort:` frontmatter on custom commands, skills, and subagents being ignored on models whose default effort is still pinned (Opus 4.7, Opus 4.8, Fable 5)\n- Fixed artifact publish failing with an unhelpful error when the page file isn't valid UTF-8 or contains a replacement character (U+FFFD); the error now names the line and column to fix\n- Fixed `claude agents` `@` directory menu not listing repositories created after the session started\n- Fixed Remote Control clients that join a Claude Desktop or VS Code session showing a stale permission mode until it was changed again\n- Fixed `claude remote-control` exiting and dropping every attached session when its server credential expires (about 30 days after start); the host now re-registers and keeps going\n- Fixed the usage-limit warning flickering on and off during a session when requests for different models or modes report different limit windows\n- Fixed earlier reasoning being dropped when an MCP server re-sends, or a built-in tool re-renders, a tool the model already loaded\n- Fixed a tool that disappears mid-conversation, from a disconnected MCP server or an upgrade, rewriting the tool list and discarding earlier thinking\n- Fixed a background worker forked from a conversation adding EnterWorktree to the conversation's tool block mid-session, which broke prompt-cache reuse\n- Fixed mid-session MCP and plugin tools being added to the tool list in sessions without ToolSearch, which broke prompt-cache reuse; supported models now receive them as deferred definitions\n- Fixed switching models with \u002Fmodel re-sending every tool definition (a prompt-cache miss); commit and PR attribution text now arrives as a conversation note that updates on model changes\n- Fixed resumed sessions rewriting the inline tool set when an MCP connector reconnects at a different moment than before\n- Fixed resumed sessions re-rendering tool descriptions instead of replaying the recorded ones when the first turn ran a tool\n- Fixed prompt-cache misses and dropped extended thinking when a claude.ai connector's tools change between a session and its resume\n- Fixed resumed sessions rewriting earlier MCP tool announcements (and dropping extended thinking) before their connectors reconnect\n- Fixed a prompt-cache break when a print-mode (`-p`) conversation is resumed interactively: the system prompt prefix no longer changes\n- Improved the `\u002Fdiff` panel: it no longer flashes \"0 files changed\" and a spinner before settling, and its empty state is centered in the panel\n- Improved the Bash tool's description guidance so Claude describes what a command does in plain words instead of echoing the command\n- Improved sandbox guidance so Claude suggests `\u002Fcopy` when clipboard commands such as `pbcopy` fail inside the sandbox\n- Improved `--resume` first-render time for sessions with many Bash tool calls\n- Improved prompt input responsiveness: keystrokes no longer occasionally wait a frame behind spinner or streaming repaints\n- Improved prompt-cache stability: subagents and sessions started with `--system-prompt` or `--append-system-prompt` now record the system prompt and tool definitions once instead of re-rendering them\n- Improved Artifact tool publish errors: when a publish is refused, the message now says why and what to do about it\n- Self-hosted runner: Changed `--use-anthropic-git-proxy` to be reported to the server at registration and to print a warning for each session that still clones through the legacy git proxy\n- Gateway: Changed `forward_user_identity` upstreams to return a 429 as-is to a developer whose email was forwarded, instead of failing over to the next upstream, so the proxy's per-user limits hold\n- [VSCode] Fixed the extension host hanging at 100% CPU when forking, editing an earlier message, or rewinding in a conversation whose saved transcript contains a cyclic parent link\n- [VSCode] Fixed pasting a screenshot on WSL2\u002FWSLg inserting raw image bytes into the chat input; the image is now attached when the clipboard provides it, otherwise the paste is ignored\n- [VSCode] Fixed chat diff blocks always rendering with a dark editor theme; they now follow the active VS Code color theme, including high contrast\n- [VSCode] Fixed mixed right-to-left and English text rendering in the wrong order while typing in the message input\n- [VSCode] Fixed accepting an edit in the diff view on a file with Windows (CRLF) line endings failing with \"String not found in file\"\n- [VSCode] Fixed @-mentions dropping files whose paths contain spaces\n- [VSCode] Fixed the sessions list view failing to load in windows connected over Remote-SSH when the workspace folder exists only on the remote host\n- [VSCode] Fixed runaway ripgrep processes when viewing files in large or symlink-heavy workspaces\n- [Claude Code on the web] Fixed GitHub Enterprise Server sessions showing your GitHub account as disconnected once its token expired; PR and issue operations now refresh it automatically\n- [Claude Code on the web] Fixed `gh` and GitHub API calls failing in organizations without the Claude GitHub App; they now use your connected GitHub account and say so when none is connected\n- [Claude Tag] Added a \"Use a custom connector\" link to the preset connection forms in Claude Tag admin settings, so you can switch to a custom connection without starting over\n- [Claude Tag] Fixed Claude replying \"The API rejected the request as invalid\" when the organization has run out of usage credits; the reply now says so and explains how to add more\n- [Claude Tag] Fixed thread requests to edit or delete a message Claude posted at the channel's top level being answered with a correction instead of reaching the session that posted it\n- [Claude Tag] Fixed **Connect** on Tool access requests under Admin settings > Review requests failing with \"Authorization failed\" or showing the requested access bundle as deleted\n\nSource: https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FCHANGELOG.md","2026-09-15T21:44:20Z",181,[548],{"area":491,"items":549},[493],"Added `maxEffortLevel` setting (top-level or per model under `modelSettings`): caps the effort level on every provider, including Bedrock, Vertex and Foundry; users can still pick a lower level","Claude Code 2.1.267",{"locale":465,"machineTranslated":34,"sourceLocale":40,"status":466},"2.1.267",{"bodyMarkdown":555,"brewCommittedAt":556,"hasNotes":70,"id":557,"isLatest":34,"isPrerelease":34,"machineTranslated":34,"publishedAt":502,"sections":558,"source":494,"sourceLocale":40,"summary":561,"title":562,"translation":563,"version":564},"- Added `ANTHROPIC_DEFAULT_MODEL` environment variable: sets the model new sessions start on, while a `\u002Fmodel` pick still overrides it and persists across restarts (unlike `ANTHROPIC_MODEL`)\n- Added `notify_when_idle` to cross-session `SendMessage`: ask another Claude Code session on this machine to send one notice when it next goes idle — opt-in, one-shot, no polling (macOS and Linux)\n- Sandbox: on macOS, wildcard read-deny rules (e.g. `**\u002F.env`) now take precedence inside allowed read regions, cover matched directories' contents, and can't be bypassed by renaming the denied file\n- Fixed clipboard copy, background housekeeping, background sessions, and local MCP logs breaking after the directory a session had switched into was removed (since 2.1.229)\n- Fixed the fullscreen renderer failing permanently after a single failed start: it now falls back to the classic renderer instead of exiting on every subsequent launch\n- Fixed the `\u002Fmodel` picker rendering taller than the terminal: it now shows only as many models as fit the window, with the rest reachable by scrolling\n- Fixed `SendMessage` calls being rejected when a malformed closing tag left the message text inside the summary field\n- Fixed unhandled promise rejections when a subprocess fails to start, for example `powershell.exe` on WSL with Windows interop disabled (regression in 2.1.234)\n- Fixed fullscreen mode sometimes not showing a newly sent message until the next update after the terminal was resized\n- Fixed a blank band that could remain above the prompt after clearing a multi-line prompt, and panes not repainting after resizing the terminal away and back, in fullscreen mode\n- Fixed the managed-settings approval prompt sometimes not appearing at startup while still capturing the first keypress as approval\n- Fixed terminal tab titles jumping in tmux (iTerm tmux integration): the title is now written only when its text changes instead of animating every 960ms\n- Fixed an unclear error when the cloud environments list came back empty or malformed\n- Fixed the Fable 5 first-time usage-credits prompt auto-selecting the fallback model after 60 seconds with no answer when using Remote Control\n- Fixed spinner tips never appearing, with a repeated background error, when the cached guest-pass reward in `~\u002F.claude.json` was malformed\n- Fixed skills hot-reload in SDK\u002FVS Code sessions raising an error on every skills change after the session's working directory was deleted (2.1.229+)\n- Fixed self-hosted runner sessions released on idle, retire, or startup timeout occasionally resuming on another runner before the post-session hook had finished\n- Fixed the Clawd mascot's eyes and feet rendering unevenly in iTerm2 at some font sizes\n- Fixed occasional runaway session recaps: recap text (automatic and `\u002Frecap`) is now capped at 400 characters, cut at a word boundary\n- Improved startup performance: the session counter is now written in the background\n- Improved auto mode: `Monitor` allow rules are now set aside while auto mode is active, so Monitor commands are reviewed the same way Bash commands are\n- Improved auto mode on Bedrock, Vertex AI, and Foundry, and when telemetry is disabled: the classifier now uses the same defaults as on the Claude API, including severity-scored classification\n- Improved auto mode: the git status check can no longer be fooled by a repo's `status.showUntrackedFiles=no` setting into reporting a clean tree\n- Changed the `\u002Fmodel` picker to highlight only the newest model's name, so the highlight marks the new release rather than an arbitrary subset of the list\n- `\u002Fgoal`: an idle session whose goal is parked behind long-running background work now checks in automatically after 30 minutes (then 1h, 2h) instead of waiting for you to return\n- `\u002Fusage` now shows the usage-credits spend row for Team and Enterprise members, and shows a capped row at 0% before anything is spent\n- SIGTERM in print\u002FSDK mode no longer records an interrupted turn or synthetic tool denials before exiting; running commands are still terminated and the process still exits with code 143\n- Pressing Enter on a slash-command typo or a command unavailable in this session now reports it instead of running the closest fuzzy match; prefixes and aliases still run\n- Remote Control now marks a session offline within seconds when the CLI exits or its terminal closes\n- `SendMessage` now refuses further messages to a session up front once a rapid burst would exceed what that session's inbox accepts, instead of reporting them sent while they were dropped\n- Aligned the session title chip on the prompt border with the footer's right edge\n- Right-aligned footer items (goal indicator, session state, background agent status) and truncated notices now share a consistent right margin with the rest of the prompt area\n- [VSCode] Added screen reader support for the transcript: live announcements for replies, permission requests, errors, and status changes, plus per-turn heading navigation\n\nSource: https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FCHANGELOG.md","2026-08-28T03:42:47Z",182,[559],{"area":491,"items":560},[493],"Added `ANTHROPIC_DEFAULT_MODEL` environment variable: sets the model new sessions start on, while a `\u002Fmodel` pick still overrides it and persists across restarts (unlike `ANTHROPIC_MODEL`)","Claude Code 2.1.236",{"locale":465,"machineTranslated":34,"sourceLocale":40,"status":466},"2.1.236",{"bodyMarkdown":566,"brewCommittedAt":567,"hasNotes":70,"id":568,"isLatest":34,"isPrerelease":34,"machineTranslated":34,"publishedAt":502,"sections":569,"source":494,"sourceLocale":40,"summary":572,"title":573,"translation":574,"version":575},"- Fixed MCP OAuth sign-in failing with a redirect URI mismatch for servers that use a pre-registered OAuth client, such as Slack\n\nSource: https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FCHANGELOG.md","2026-08-21T21:45:01Z",183,[570],{"area":491,"items":571},[493],"Fixed MCP OAuth sign-in failing with a redirect URI mismatch for servers that use a pre-registered OAuth client, such as Slack","Claude Code 2.1.231",{"locale":465,"machineTranslated":34,"sourceLocale":40,"status":466},"2.1.231",{"bodyMarkdown":577,"brewCommittedAt":578,"hasNotes":70,"id":579,"isLatest":34,"isPrerelease":34,"machineTranslated":34,"publishedAt":502,"sections":580,"source":494,"sourceLocale":40,"summary":583,"title":584,"translation":585,"version":586},"- Fixed interactive sessions that could stop redrawing entirely, while the process kept running, after a rare internal layout error\n- Fixed `git` \u002F Git Bash not being found on Windows when Claude Code is launched from a parent folder of the git installation\n- Fixed `\u002Ftui` reverting the session to an earlier model when `\u002Fmodel` had been changed since the last response\n- Fixed cross-session messaging sometimes starting without an inbox in the first session after install or upgrade\n- Fixed Remote Control `\u002Fresume` while connected leaking the resumed conversation's title or history into the connected session\n- Fixed `claude self-hosted-runner` sessions failing on every fresh runner when the `checkout` hook fails for a repository the session doesn't push to; that repository is now skipped with a warning\n- Fixed self-hosted runners ending sessions in the gap between a background task finishing and the follow-up turn starting\n- Fixed session cleanup deleting contents inside a project's memory folder\n- Fixed background plugin-cache cleanup deleting a plugin's cache when its only version is a symlinked development checkout\n- Fixed a settings-merge issue where a marketplace entry redefined in a higher-precedence settings tier could inherit another tier's custom headers; marketplace entries now merge as whole entries\n- Fixed the deferred-tools reminder occasionally being sent to the model twice after a skill invocation\n- Hardened skills synced from claude.ai: they no longer shadow local commands or MCP prompts, their descriptions are sanitized and labeled, and on your machine their bodies don't run `!` commands or expand `@` files\n- Improved cross-session messages: the sender and body now display inline instead of a collapsed line, and messages to Remote Control sessions on other machines show your Remote Control session name as the sender\n- Improved Vertex AI credential handling: expired or missing Google Cloud credentials now fail within seconds instead of retrying for minutes\n- Improved compaction progress: the retry countdown and stall hint now appear during compaction instead of only a progress bar\n- Updated terminal title busy-spinner glyphs to reduce tab-bar jitter on some terminals\n- Changed the Write tool so newer models can overwrite an existing file they haven't read this session, matching the Edit tool's rules; older models still require the read first\n- Removed the outdated note about auto mode sessions costing slightly more from the first-use notice for Pro, Max, and Team plans\n\nSource: https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FCHANGELOG.md","2026-08-19T21:48:38Z",184,[581],{"area":491,"items":582},[493],"Fixed interactive sessions that could stop redrawing entirely, while the process kept running, after a rare internal layout error","Claude Code 2.1.228",{"locale":465,"machineTranslated":34,"sourceLocale":40,"status":466},"2.1.228",{"bodyMarkdown":588,"brewCommittedAt":589,"hasNotes":70,"id":590,"isLatest":34,"isPrerelease":34,"machineTranslated":34,"publishedAt":502,"sections":591,"source":494,"sourceLocale":40,"summary":594,"title":595,"translation":596,"version":597},"- Fixed feature flags being evaluated without the user's subscription tier when a session started with an expired login token, which could wrongly prompt Max plan users to enable usage credits for Fable\n- Fixed every Bash command failing under `claude-code-action` with `allowed_non_write_users` on GitHub-hosted runners\n- Fixed `\u002Ftui` bringing back a conversation that had been rewound to before its first message\n- Improved slash-command menu: blue now marks only the selected row, matched characters are bolded instead of recolored, and emoji or accented names keep their glyphs\n- Improved performance: fewer event-loop stalls on file-not-found suggestions and at-mention size checks\n\nSource: https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FCHANGELOG.md","2026-08-18T21:46:26Z",185,[592],{"area":491,"items":593},[493],"Fixed feature flags being evaluated without the user's subscription tier when a session started with an expired login token, which could wrongly prompt Max plan users to enable usage credits for Fable","Claude Code 2.1.227",{"locale":465,"machineTranslated":34,"sourceLocale":40,"status":466},"2.1.227",{"bodyMarkdown":599,"brewCommittedAt":600,"hasNotes":70,"id":601,"isLatest":34,"isPrerelease":34,"machineTranslated":34,"publishedAt":502,"sections":602,"source":494,"sourceLocale":40,"summary":605,"title":606,"translation":607,"version":608},"- Bug fixes and reliability improvements\n\nSource: https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FCHANGELOG.md","2026-08-17T21:45:20Z",186,[603],{"area":491,"items":604},[493],"Bug fixes and reliability improvements","Claude Code 2.1.226",{"locale":465,"machineTranslated":34,"sourceLocale":40,"status":466},"2.1.226",{"bodyMarkdown":610,"brewCommittedAt":611,"hasNotes":70,"id":612,"isLatest":34,"isPrerelease":34,"machineTranslated":34,"publishedAt":502,"sections":613,"source":494,"sourceLocale":40,"summary":616,"title":617,"translation":618,"version":619},"- Added self-hosted environments: `claude self-hosted-runner` turns your own machines or containers into a place Claude Code web, mobile, and desktop sessions can run, on Team and Enterprise plans\n- Added `archive` plugin source: install plugins from a zip over HTTPS without git or npm, with optional SHA-256 pinning\n- Added a cancel-and-confirm step when removing an unavailable paste changes a command's text\n- Added `ANTHROPIC_BEDROCK_REGION_PREFIX` env var for Bedrock to prefer a specific cross-region inference profile over the `AWS_REGION`-derived one\n- Added `crossSessionInbound` and `dialogExpiry` settings: cross-session messages sent to a session running with bypassed permissions are held for your approval, and messages to other sessions auto-deliver\n- Added sandbox credential-masking options: `extract` and `onExtractNoMatch` for structured env values, `decode: \"jwt\"` with `maskClaims` for JWT-aware masking, and `awsPairs`\u002F`sigv4` for AWS SigV4 re-signing; these need `network.tlsTerminate` and are honored only from user, managed, or `--settings` settings\n- Added cross-session `SendMessage`: Claude Code sessions can now message each other, on any of your machines, with `ListAgents` to discover them (macOS and Linux)\n- Fixed long (>200 char) project paths resolving to another project's session directory under a shared sanitized prefix; session list, rename, fork, delete and `\u002Fresume` no longer cross projects\n- Fixed `SendMessage` reporting \"Message sent\" when the write to a teammate's inbox had actually failed; failed deliveries are now reported as errors\n- Fixed sandbox filesystem deny entries written with a trailing slash (e.g. `denyRead: \"~\u002F.aws\u002F\"`) being silently bypassable on Linux and macOS\n- Fixed sandbox violation details never appearing in Bash tool results; Claude now sees which file or network access was denied and why\n- Fixed MCP tools that connect mid-turn being deferred for tool search without their names announced to the model\n- Fixed plugin install records being silently corrupted when the same plugin is installed in multiple projects\n- Fixed recalled or restored paste content occasionally attaching wrong data or silently losing text when the paste had aged out or placeholder numbers collided\n- Fixed copy-on-select on Wayland sometimes not reaching the clipboard; the two selection writes no longer race\n- Fixed the feedback survey's transcript share silently failing on long sessions; a failed share now shows an error instead of a success message\n- Fixed Remote Control auto-start intermittently failing with \"Remote credentials fetch failed\" on a cold start with a stale login token\n- Fixed Remote Control and SDK clients showing a blank \"(no content)\" message after `\u002Fclear` and other output-less commands\n- Fixed a Remote Control session recreated after its server session expired uploading prior local conversation history into the new session\n- Improved fullscreen mode to keep the full pre-compaction history in scrollback across repeated compactions, instead of only the most recent interval\n- Improved Remote Control: attached web and mobile clients now see compaction progress and the post-compaction boundary instead of a silent pause; `\u002Fclear` resets now propagate to attached clients\n- Improved Remote Control: connection failures now show a persistent failure indicator with details and a reconnect shortcut, instead of only an 8-second toast\n- Removed the 200-subagent-per-session spawn cap; long-running sessions no longer refuse new agents (concurrency and depth limits still apply)\n- Changed managed settings: the approval prompt no longer re-appears after re-login or org switching when the organization's settings are unchanged\n- Changed the feedback-survey transcript share: with your consent it now also uploads the last request's model settings — the system prompt (which includes your `CLAUDE.md` instructions), tool definitions, and model parameters. Secrets are redacted as before, and these fields are dropped first if the share is too large\n- Changed the Bash tool description to always note that command output is displayed to the model, not reliably to the user\n- Changed recalled paste placeholder numbers to renumber when accepted into the input\n- Changed Remote Control to archive the stale server session instead of leaving a dead one listed when a fresh session is minted after compaction or `\u002Fresume`\n- [VSCode] Fixed the extension showing Remote Control as connected after the connection failed\n- Fixed a session resume silently reconnecting Remote Control after the user turned it off (`--resume`, SDK hosts, and the VS Code extension)\n- [VSCode] Fixed sessions not honoring `remoteControlAtStartup` when explicitly enabled\n\nSource: https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FCHANGELOG.md","2026-08-15T00:52:10Z",187,[614],{"area":491,"items":615},[493],"Added self-hosted environments: `claude self-hosted-runner` turns your own machines or containers into a place Claude Code web, mobile, and desktop sessions can run, on Team and Enterprise plans","Claude Code 2.1.224",{"locale":465,"machineTranslated":34,"sourceLocale":40,"status":466},"2.1.224",{"bodyMarkdown":621,"brewCommittedAt":622,"hasNotes":70,"id":623,"isLatest":34,"isPrerelease":34,"machineTranslated":34,"publishedAt":502,"sections":624,"source":494,"sourceLocale":40,"summary":627,"title":628,"translation":629,"version":630},"- Added owner wildcard entries (`\"owner\u002F*\"`) to the `strictKnownMarketplaces` and `blockedMarketplaces` managed settings for allowing or blocking all marketplace repos under a GitHub org\n- Added a warning when workflow agents, forked skills, slash commands, or resumed background agents' requested subagent model is restricted and the parent model runs instead\n- Added a `\u002Fteleport` hint in cloud sessions showing how to continue locally with `claude --teleport \u003Csession id>`\n- Fixed a Bash permission bypass where a crafted command could hide parts of itself from permission checks\n- Fixed permission prompts so commands padded with tabs or invisible Unicode can no longer hide part of the command from the approval dialog\n- Fixed workflow scripts being able to use dynamic `import()` to run code outside the workflow sandbox\n- Fixed a permission gap where an agent definition's `bypassPermissions` mode ignored the org bypass-permissions disable policy\n- Fixed resuming a session after a mid-session `\u002Fcd` coming back empty\n- Fixed gateway model discovery hiding Claude models registered under provider-prefixed IDs such as `vertex_ai\u002Fclaude-*` or `bedrock\u002Fanthropic.claude-*`\n- Fixed `modelOverrides` keys that aren't Anthropic model IDs being treated as the session's canonical model ID; unknown keys are now ignored as documented\n- Fixed managed settings: server-delivered settings no longer disable the env block of a machine-local `managed-settings.json` or MDM profile; admin env now merges per key\n- Fixed sandboxed commands failing to start on Linux when `sandbox.filesystem.denyWrite` covers the working directory\n- Fixed forked background agents getting stuck \"already resuming\" for the rest of the session when rebuilding the fork's parent prompt failed during resume\n- Fixed a resumed session failing every turn, or leaving the interactive app on an unresponsive error screen, when its history held a malformed diagnostics attachment\n- Fixed a rare hang when parsing unusual `git push` output\n- Changed `CLAUDE_CODE_DISABLE_1M_CONTEXT` to hold every Claude model with a native 1M window to 200K via auto-compaction, not just a fixed list; a startup warning now appears when auto-compaction isn't holding the session to 200K\n- Changed auto-compact to keep sessions on unrecognized model IDs within the assumed context window instead of letting them grow past it; set `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1` to restore the previous behavior\n- Changed `\u002Freview` to be an alias of `\u002Fcode-review`, which reviews the current diff or a PR (`\u002Fcode-review \u003Clevel> \u003Cpr#>`); use `\u002Fcode-review ultra` for a deep cloud review\n- Changed `\u002Fcode-review` with no effort level to reuse the level you typed last; type a level like `\u002Fcode-review high` to change it\n\nSource: https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FCHANGELOG.md","2026-08-13T09:58:34Z",188,[625],{"area":491,"items":626},[493],"Added owner wildcard entries (`\"owner\u002F*\"`) to the `strictKnownMarketplaces` and `blockedMarketplaces` managed settings for allowing or blocking all marketplace repos under a GitHub org","Claude Code 2.1.223",{"locale":465,"machineTranslated":34,"sourceLocale":40,"status":466},"2.1.223",{"bodyMarkdown":632,"brewCommittedAt":633,"hasNotes":70,"id":634,"isLatest":34,"isPrerelease":34,"machineTranslated":34,"publishedAt":502,"sections":635,"source":494,"sourceLocale":40,"summary":638,"title":639,"translation":640,"version":641},"- Fixed worktree-isolated sessions and their subagents being able to run destructive git commands against the main checkout; isolation now applies to file edits and Bash in every session type\n- Fixed PreToolUse auto-allow hooks bypassing tool restrictions in background agent tasks (summaries, compaction, renames)\n- Fixed `\u002Fusage-credits` on Team and Enterprise showing \"you've already sent a usage credit request\" for members whose earlier request was dismissed, blocking them from sending a new one\n- Fixed the startup connectivity check hanging and then failing behind an HTTPS proxy; it now uses the same proxy-aware transport as API requests and times out with a clear message\n- Fixed \"Connection closed mid-response\" errors being reported on responses that had actually completed\n- Fixed `\u002Fusage` overattributing usage to MCP servers: a server's share now reflects only the requests that actually consumed its tool results, instead of every turn after any call to it\n- Fixed sessions not linking to pull requests created after the branch was pushed, including through the GitHub REST API\n- Fixed org-restricted `model: opus`-style subagent and teammate family aliases dropping to the parent model instead of stepping down to the newest org-allowed model in the family\n- Fixed stream idle timeout firing on custom `ANTHROPIC_BASE_URL` gateways despite server keep-alive pings arriving on the wire\n- Fixed claude.ai connectors being falsely marked as needing authorization when the session token is invalid — they now show a `\u002Flogin` hint instead\n- Fixed tool errors not being displayed for tools no longer available locally, for example after an MCP server is removed\n- Fixed `SendMessage` rejecting a long summary — it now truncates instead, so sends no longer fail on a character limit\n- Fixed the spinner's effort label in a subagent's transcript view showing the session's effort level instead of the subagent's own `effort:` setting\n- Fixed rare crashes when a file watcher hit a filesystem error or during file-watcher teardown\n- Fixed screen readers re-reading the whole input line on every backspace in `--ax-screen-reader` mode — end-of-line deletions now echo just the deleted characters\n- Fixed host model-selection keys not taking precedence over a stale on-disk `managed-settings.json` when `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` is set\n- Improved auto mode safety: messages sent to other agent sessions via `SendMessage` are now evaluated by the permission classifier before dispatch\n- Improved the refusal when Claude tries to invoke a skill with `disable-model-invocation`: Claude is now told to ask you to run the skill instead of replicating its workflow\n- Improved the `\u002Fdiff` view, the Remote Control workspace diff, and file-edit diffs in Claude Code on the web sessions to use raw git blob content, ignoring workspace-configured diff drivers and textconv\n- Changed Remote Control auto-start so repo-local settings (`.claude\u002Fsettings.json` or `.claude\u002Fsettings.local.json`) can no longer turn it on (they can still turn it off); enable it at user scope via `\u002Fconfig`\n- Removed ultraplan feature\n\nSource: https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FCHANGELOG.md","2026-08-12T21:54:42Z",189,[636],{"area":491,"items":637},[493],"Fixed worktree-isolated sessions and their subagents being able to run destructive git commands against the main checkout; isolation now applies to file edits and Bash in every session type","Claude Code 2.1.222",{"locale":465,"machineTranslated":34,"sourceLocale":40,"status":466},"2.1.222",{"bodyMarkdown":643,"brewCommittedAt":644,"hasNotes":70,"id":645,"isLatest":34,"isPrerelease":34,"machineTranslated":34,"publishedAt":502,"sections":646,"source":494,"sourceLocale":40,"summary":649,"title":650,"translation":651,"version":652},"- [VSCode] Added Focus view: a chat-menu toggle that hides tool activity behind an expandable per-turn summary with a live running-tool indicator, toggled with `Ctrl+Alt+F` or the \"Claude Code: Toggle Focus view\" command\n- Added `mode: \"mask\"` for sandbox credential files on Linux and WSL — sandboxed commands read a sentinel copy (the whole file, or just the spans captured by an `extract` regex) while the sandbox proxy substitutes the real value on egress; on macOS file masking falls back to `deny`\n- Added warnings to `claude plugin validate` when a marketplace or plugin name would be rejected by Claude Desktop's managed marketplace sync\n- Added a `prompt-audit` subcommand to the `claude-api` skill for auditing prompts and tool descriptions for patterns written for older models\n- Fixed a Bash tool permission-check bypass where zsh could execute hidden commands in `[[ ]]` regex conditionals; affected commands now prompt for permission\n- Fixed PowerShell permission checks mishandling paths containing quote characters on Windows; such paths now prompt for approval\n- Fixed the thinking toggle having no effect for the rest of a session that started with thinking off; disabling an MCP server mid-connect no longer silently reverts\n- Fixed MCP servers from `--mcp-config` not being connected before the first turn in print mode (`-p`), which made the model emit tool calls as literal text\n- Fixed @-mentioned files being silently dropped when pressing Esc to retract a prompt and resubmitting it\n- Fixed a crash when preparing API requests for SDK MCP tools named after built-in object properties such as `constructor`\n- Fixed WebSearch failing with a 400 error at effort `xhigh`\u002F`max` when thinking is disabled\n- Fixed sandboxed large uploads failing with TLS errors through the sandbox proxy\n- Fixed Team and Enterprise spend-limit message incorrectly blaming the org's monthly limit instead of your individual spend limit\n- Fixed Bedrock authentication with AWS SSO named profiles failing in desktop-managed sessions on Windows machines that set a stray `HOME` environment variable\n- Fixed `CLAUDE_CODE_RESUME_INTERRUPTED_TURN=0` not disabling interrupted-turn auto-resume; falsy values are now honored\n- Fixed a rare wake-from-sleep race where two Claude Code processes could both refresh the same MCP connector or WIF OAuth token at once, forcing re-authentication\n- Fixed renaming a session from Claude Code Desktop or claude.ai not updating the CLI's session name; session names from every rename surface are now sanitized\n- Fixed plugin- and org-delivered skills named after terminal-only built-ins (e.g. `\u002Fhelp`, `\u002Ffeedback`) being un-invocable in non-interactive sessions\n- Fixed the \"Plugins changed\" notification lingering after plugins were reloaded instead of clearing\n- Fixed Vim mode: the yank register now survives dialogs, history search, and the transcript view instead of being silently emptied\n- Fixed Vim mode: undoing back to an empty prompt now arms the \"press ← again\" confirm before returning to the agent view\n- Improved tool search on Google Vertex AI: re-enabled for Claude 4.5-generation and newer models\n- Improved auto mode: permission checks for parallel tool calls are now cache-efficient, and switching modes while a check is pending reliably prompts instead of applying the stale result\n- Reduced prompt-cache costs for auto-mode permission checks by reusing the cached conversation prefix across decisions\n- Improved Stats panel to count cache tokens in its token totals, with a breakdown by input, output, cache read, and cache write\n- Improved `\u002Fultrareview` error messages when a repo shares no history with its base: a checkout with no branches is now refused up front with advice to create one, and refusal hints no longer suggest `git fetch --unshallow` on clones that are already complete\n- Improved Windows startup: process creation times are now read via a native kernel32 call instead of spawning PowerShell, so endpoint security tools that gate `powershell.exe` no longer prompt\n- Changed background sessions to commit and push to preserve work, open a draft PR only when the task calls for one, follow your CLAUDE.md git instructions, and always end by reporting where the work lives\n- Changed `\u002Fplugin install` to refresh a stale marketplace catalog and retry before reporting a plugin not found\n- Changed plugins installed from `\u002Fplugin` to activate immediately when safe, instead of always requiring `\u002Freload-plugins`\n- Changed plugins to accept `\".\"` as a `skills` path, and the root-level `SKILL.md` validation error now suggests using the plugin root\n- Changed `\u002Fstatus` to show the session kind: `interactive`, or a background job that is `attached` or `unattended`\n- Changed emoji autocomplete to accept common alternate shortcodes like `:thumbsup:`, `:thumbsdown:`, and `:love:`\n- Changed sessions forked with `\u002Ffork` to create a new worktree of their own instead of working in the original session's checkout\n- Changed Claude in Chrome to close the browser tabs it opens once it no longer needs them\n- Changed fast mode to report on the stream when usage credits run out mid-session, instead of failing silently\n- Changed Monitor: a watch that exits without producing any output now says so instead of reporting \"stream ended\"\n- Changed the Gateway `model` field validation: non-string values are rejected with a 400 instead of being forwarded\n- Removed the repeated \"Permission mode changed while the auto-mode classifier call was queued\" notice from approval prompts\n\nSource: https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FCHANGELOG.md","2026-08-11T20:00:39Z",190,[647],{"area":491,"items":648},[493],"[VSCode] Added Focus view: a chat-menu toggle that hides tool activity behind an expandable per-turn summary with a live running-tool indicator, toggled with `Ctrl+Alt+F` or the \"Claude Code: Toggle Focus view\" command","Claude Code 2.1.221",{"locale":465,"machineTranslated":34,"sourceLocale":40,"status":466},"2.1.221",{"bodyMarkdown":599,"brewCommittedAt":654,"hasNotes":70,"id":655,"isLatest":34,"isPrerelease":34,"machineTranslated":34,"publishedAt":502,"sections":656,"source":494,"sourceLocale":40,"summary":605,"title":659,"translation":660,"version":661},"2026-08-04T01:07:35Z",191,[657],{"area":491,"items":658},[493],"Claude Code 2.1.220",{"locale":465,"machineTranslated":34,"sourceLocale":40,"status":466},"2.1.220",{"bodyMarkdown":663,"brewCommittedAt":664,"hasNotes":70,"id":665,"isLatest":34,"isPrerelease":34,"machineTranslated":34,"publishedAt":502,"sections":666,"source":494,"sourceLocale":40,"summary":669,"title":670,"translation":671,"version":672},"- `\u002Ffork` now copies your conversation into a new background session (its own row in `claude agents`) while you keep working; the in-session subagent it used to launch is now `\u002Fsubtask`\n- Added `claude auto-mode reset` to restore the default auto-mode configuration, with a confirmation prompt (pass `--yes` to skip)\n- Added a session-wide limit on WebSearch tool calls (default 200, tunable via `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION`) to stop runaway search loops\n- Added a per-session cap on subagent spawns (default 200, override with `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION`) to stop runaway delegation loops; `\u002Fclear` resets the budget\n- MCP tool calls running longer than 2 minutes now move to the background automatically so the session stays usable; configure the threshold or disable with `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`\n- Typing `\u002Fresume` in the agent view now opens a picker of past sessions — including sessions deleted from the list — and resumes your pick as a background session\n- Fixed plan mode auto-running file-modifying Bash commands (e.g. `touch`, `rm`) without a permission prompt or SDK `canUseTool` callback\n- Fixed worktree creation following a repository-committed symlink at `.claude\u002Fworktrees`, which could create files outside the repository\n- Fixed a `continue:false` hook's halt being dropped when the tool fails or completes mid-stream, and hook infrastructure errors being misreported as user rejections\n- Fixed SIGTERM during a running Bash tool orphaning the command's process tree in print\u002FSDK mode; the CLI now aborts the turn, kills the tree, and exits 143\n- Fixed `\u002Fbackground` and `claude --bg` failing with \"EUNKNOWN: unknown error, uv_spawn\" on Windows when Group Policy blocks PowerShell 5.1; the daemon now prefers PowerShell 7\n- Fixed shell mode (`!`) not executing commands containing file paths while the path autocomplete popup was open\n- Fixed auto-mode denial notifications rendering broken characters when a long denial reason was truncated mid-emoji\n- Fixed Ctrl+J not inserting a newline in the agent view dispatch input on terminals with extended key reporting, and surfaced the newline shortcut in the `?` help overlay\n- Fixed `\u002Fultrareview` rejecting PR references like `#123`, `PR 123`, and pasted PR URLs; error hints now name the command you actually typed\n- Fixed `\u002Fultrareview \u003Cbranch>` not fetching the branch from origin when it exists remotely; it now suggests the closest branch name on typos\n- Fixed `\u002Fultrareview` skipping the billing confirmation in a new conversation after `\u002Fclear`\n- Fixed `\u002Fultrareview`'s \"not a git repository\" error on Claude Desktop now suggesting the project's repository folder instead of terminal commands\n- Fixed hosted (host-managed) sessions failing at startup when repository settings configured mTLS certs, extra CA bundles, or OAuth scopes; these transport settings are now ignored with a warning\n- Fixed a spurious \"File has not been read yet\" error when editing a file that had been read with offset\u002Flimit before resuming a session\n- Fixed `ExitWorktree` failing with \"no active EnterWorktree session\" after resuming a session with `--continue`\u002F`--resume` in print\u002FSDK mode\n- Fixed the workflow agent grid staying empty for Remote Control clients that join a session mid-run\n- Fixed streaming-mode control requests being marked complete before their handler finished, which could lose the request on session restart\n- Fixed background sessions created with `\u002Ffork` losing their live-parent protection after a state write failure\n- Fixed reopening a stopped background session from the agent view failing silently — it now resumes the session, or shows why it can't and lets you force a restart\n- Fixed agent teams: a stopping teammate could send the leader duplicate idle notifications when team initialization re-ran within a session\n- Fixed the plan-approval dialog footer splitting \"ctrl+g to edit in \u003Ceditor>\" apart when the file path is long\n- Fixed the welcome banner keeping its old panel widths after a combined width+height terminal resize in fullscreen mode\n- Fixed diff previews losing their line numbers and +\u002F- markers in narrow layouts\n- Fixed @-mentions attaching nothing after a partial file read, plugin uninstall targeting the wrong marketplace, and false \"Command timed out\" on exit code 143\n- Fixed OpenTelemetry HTTP exports being rejected with 411\u002F400 by Azure Monitor and other endpoints that don't accept chunked transfer encoding\n- Fixed OTLP event log records missing `trace_id`\u002F`span_id` when `TRACEPARENT` is set in SDK\u002Fheadless mode\n- Fixed conversations with many images incorrectly failing with \"Request too large\" errors, and improved the error message to explain the actual cause\n- Fixed web search and web fetch returning \"API Error\" text as search results or page content when the API was overloaded\n- Improved web search and web fetch reliability by retrying 529 errors and rate-limited requests with bounded backoff\n- Improved prompt caching: the mid-conversation system block now works behind LLM gateways and custom base URLs (Bedrock, Vertex, 1P)\n- Improved background agent attach: cold-attaching now instantly shows the formatted transcript while the session boots, instead of a blank wait\n- Reduced token usage in inter-agent messaging: `SendMessage` bodies are no longer duplicated into replayed history and tool results\n- Changed `\u002Ffork` to name the copy after your prompt when the session has no title, so the row is recognizable in the agent view\n- Changed bare `\u002Fbtw` to reopen the side-question panel on your most recent exchange so you can browse earlier answers\n- Changed the `←` footer hint to pulse `N done` for a moment when a background agent finishes while nothing needs your input\n- Deprecated the Task tool's `mode` parameter (now ignored); subagents inherit the parent session's permission mode by default\n- Changed Enterprise `forceLoginMethod` to be enforced for VS Code extension, SDK, `setup-token`, and `install-github-app` logins, not just the terminal\n- Changed session transcripts to record the reasoning effort level on each assistant message\n- Changed headless\u002FSDK sessions to apply a `set_model` control request mid-turn; the next model round-trip uses the new model instead of waiting for the next turn\n- Changed agent view \u002F `claude agents --json`: sessions waiting on a sandbox, MCP-input, or managed-settings prompt now show as \"Needs input\" instead of \"Working\"\n- Updated the auth status panel title from \"Cloud authentication\" to \"Authentication\"\n- Corrected an earlier release note (2.1.200): tmux through the 3.6 series lacks synchronized output; newer tmux with support is detected automatically\n\nSource: https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FCHANGELOG.md","2026-07-25T04:41:07Z",192,[667],{"area":491,"items":668},[493],"`\u002Ffork` now copies your conversation into a new background session (its own row in `claude agents`) while you keep working; the in-session subagent it used to launch is now `\u002Fsubtask`","Claude Code 2.1.212",{"locale":465,"machineTranslated":34,"sourceLocale":40,"status":466},"2.1.212",{"bodyMarkdown":674,"brewCommittedAt":675,"hasNotes":70,"id":676,"isLatest":34,"isPrerelease":34,"machineTranslated":34,"publishedAt":502,"sections":677,"source":494,"sourceLocale":40,"summary":680,"title":681,"translation":682,"version":683},"- Added `--forward-subagent-text` flag and `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` environment variable to include subagent text and thinking in stream-json output\n- Fixed permission previews relayed to chat channels not neutralizing bidirectional-override, zero-width, and look-alike quote characters, so tool inputs cannot visually alter the approval message\n- Fixed auto mode overriding a PreToolUse hook's `ask` decision for unsandboxed Bash — a hook `ask` now floors the decision at a prompt\n- Fixed parallel Claude Code sessions all logging out simultaneously after wake-from-sleep when many sessions share one credential store\n- Fixed plugin MCP servers not reconnecting after an idle web session woke, leaving MCP calls failing until the next message\n- Fixed Claude Code on Vertex and Bedrock attempting the default Opus model at startup and printing a spurious fallback notice when a model is explicitly configured\n- Fixed subagents spawned with an explicit model override reverting to the parent's model when resumed or sent a follow-up message\n- Fixed nested `.claude\u002Frules\u002F*.md` files loading even when setting sources exclude project settings\n- Fixed file upload validation: filenames ending in a DOS device suffix (`.prn`) or trailing dot are now accepted, and files with multiple hard links are refused\n- Fixed file uploads to Claude in Chrome from remote and CLI sessions\n- Fixed edits that leave the input as \"?\" being silently swallowed and toggling the shortcuts panel\n- Fixed a startup hang when the Claude in Chrome extension is enabled but Chrome is not running\n- Fixed a 300ms delay revealing async content (Settings tabs, Stats, diff views, and other loading states)\n- Fixed reopening a just-stopped background session from the agents view starting a blank conversation under the same session id\n- Fixed `\u002Floop` hiding the session from `\u002Fresume` after a single use\n- Fixed screen reader users losing the audible terminal bell after `\u002Fterminal-setup` or onboarding terminal setup\n- Fixed background jobs on LLM gateway auth (`ANTHROPIC_AUTH_TOKEN` + `ANTHROPIC_BASE_URL`) coming back \"Not logged in\" after the daemon respawns them\n- Fixed `claude agents` jobs becoming permanently undeletable when git no longer recognizes their worktree — the row now shows why the delete was refused instead of silently reappearing\n- Fixed `\u002Fclear` not resetting the session cost counter — the statusline's cost now starts at $0 after `\u002Fclear`\n- Fixed Claude in Chrome setup pages failing to open in the browser on Windows\n- Fixed headless print-mode sessions on Windows crashing or silently exiting when stdin is unreadable\n- Fixed background session titles in the agents view showing the naming model's refusal text when the prompt contains a link\n- Fixed background agents killed by the user auto-respawning, and revived agents re-running stale prompts from old sessions\n- Fixed routines with no schedule reporting a next run time in the year 1\n- Hardened synced skill\u002Fplugin directory naming on Windows and kept CCR web fetch\u002Fsearch proxies working after `\u002Fclear`\n- Improved terminal layout and rendering performance\n- Improved background agent result reporting — Claude now reports the status of still-running agents and waits for the real completion instead of fabricating results\n- Improved the memory index over-limit warning to measure only loaded content, excluding frontmatter and HTML comments\n- Updated integer environment variables (timeouts, token budgets, retry counts) to accept scientific notation and digit-separator spellings like `1e6` and `64_000`\n- Updated documentation links to the current docs sites\n- Changed \"always allow\" permission rules to save at the repository root, so approvals granted in a git worktree persist across sessions and worktrees\n- Changed `\u002Fusage-credits` to ask for confirmation before sending a request to organization admins\n- Changed Vim mode `s` and `S` (substitute char\u002Fline) to work in NORMAL mode, matching vim behavior\n- [VSCode] Updated the Remote Control banner to describe what it does\n- Claude in Chrome: hardened file-upload path validation\n- Claude in Chrome: `save_to_disk` on screenshot actions now writes the image to disk and returns the path; previously it did nothing\n- Fixed a prompt-caching regression on Bedrock, Vertex, Mantle, and Foundry that billed the trailing system context block as fresh input tokens on every request.\n\nSource: https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FCHANGELOG.md","2026-07-24T19:07:33Z",193,[678],{"area":491,"items":679},[493],"Added `--forward-subagent-text` flag and `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` environment variable to include subagent text and thinking in stream-json output","Claude Code 2.1.211",{"locale":465,"machineTranslated":34,"sourceLocale":40,"status":466},"2.1.211",{"bodyMarkdown":685,"brewCommittedAt":686,"hasNotes":70,"id":687,"isLatest":34,"isPrerelease":34,"machineTranslated":34,"publishedAt":502,"sections":688,"source":494,"sourceLocale":40,"summary":691,"title":692,"translation":693,"version":694},"- Added directory path suggestions to `\u002Fcd`, matching `\u002Fadd-dir` behavior\n- Added a `\u002Fdoctor` check that proposes trimming checked-in `CLAUDE.md` files by cutting content Claude could derive from the codebase\n- `\u002Fcommit-push-pr` now auto-allows `git push` to the repo's configured push remote (`remote.pushDefault`, or the sole remote when only one is configured) in addition to `origin`\n- Gateway: `\u002Flogin` now supports Anthropic-operated public gateway endpoints\n- `EnterWorktree` now asks for confirmation before entering a git worktree outside the project's `.claude\u002Fworktrees\u002F` directory\n- Background agents now upgrade to a new version in the background right after a Claude Code update, instead of paying a slow stale-session upgrade when you attach\n- Fixed an expired login failing every model with a misleading \"There's an issue with the selected model\" error instead of prompting to run `\u002Flogin`\n- Fixed `claude --resume` and `--continue` not responding to keyboard input on startup\n- Fixed MCP servers configured via `--mcp-config` or `.mcp.json` ignoring a per-server `request_timeout_ms`, which caused long-running MCP tool calls to time out at the 60s default in fresh sessions\n- Fixed `CLAUDE_CODE_EXTRA_BODY` being silently ignored by `claude agents` \u002F `--bg` background workers; the shell-exported override now follows the dispatching session\n- Fixed OAuth MCP servers requiring manual re-authentication after a single failed token refresh\n- Fixed `--permission-prompt-tool` pointing at an MCP server crashing with \"MCP tool not found\" on cold start before the server finishes connecting\n- Fixed `\u002Fmodel` picker rows printing a price for a different model than the row named, and stopped quoting first-party list prices on providers that don't bill them\n- Fixed server-provided model rows being misplaced in the `\u002Fmodel` picker when an entitlement or allowlist restriction drops the row they were positioned against\n- Fixed desktop sessions getting stuck showing \"running\" after a slash command was sent mid-turn\n- Fixed keyboard input being ignored in the agents view when a setup prompt appeared before a bare `claude --resume` on Windows\n- Fixed `claude rm` leaving the removed job in the daemon roster, causing the row to reappear in `claude agents`\n- Fixed `\u002Fremote-control` showing \"Unknown command\" when logged out — it now explains how to sign in\n- Fixed left arrow not stepping back out of a phase or agent in the workflow detail view\n- Fixed `\u002Fstatus` listing the same broken-install warning twice\n- Fixed false \"disused plugin\" tips and skewed disuse telemetry for LSP plugins\n- Fixed `\u002Fdoctor`'s update check to compare Homebrew installs against their cask's channel instead of the settings channel\n- Fixed the fullscreen jump-to-bottom pill suggesting Ctrl+End on macOS, not showing rebound chords, and wrapping over the transcript\n- Bedrock: fixed a multi-minute startup hang when using an `awsCredentialExport` helper on networks with restricted egress\n- Improved `\u002Fcode-review` findings quality on claude-opus-4-8 across all effort levels\n- Improved agents view: status column now uses full terminal width instead of truncating at 64 characters\n- Changed agents view: Ctrl+X now permanently removes a completed session, and sessions no longer render twice; deleted background jobs stay deleted\n\nSource: https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code\u002Fblob\u002Fmain\u002FCHANGELOG.md","2026-07-21T01:06:43Z",194,[689],{"area":491,"items":690},[493],"Added directory path suggestions to `\u002Fcd`, matching `\u002Fadd-dir` behavior","Claude Code 2.1.206",{"locale":465,"machineTranslated":34,"sourceLocale":40,"status":466},"2.1.206",20,{"brewLag":697,"cadence":447,"count30d":440},{"compared":444,"earlierCount":445,"medianMinutes":446},{"current":445,"records":699,"size":445,"stats":703,"total":441},[700],{"brewCommittedAt":69,"hasNotes":34,"isLatest":70,"isPrerelease":34,"sections":701,"source":72,"translation":702,"version":75},[],{"status":74},{"brewLag":704,"cadence":447,"count30d":440},{"compared":444,"earlierCount":445,"medianMinutes":446}]