Skip to main content
Claude Code
$ cat ./claude-code.md

Claude Code

Claude Code is a powerful command-line interface tool that integrates Anthropic's Claude AI assistant directly into your development workflow. It enables developers to interact with Claude for code generation, debugging, refactoring, and technical problem-solving without leaving the terminal. The tool supports multi-language code analysis, provides intelligent suggestions for optimization, and offers real-time assistance with documentation and code reviews. Key features include context-aware responses, file processing capabilities, and seamless integration with existing development environments. Perfect for streamlining coding tasks, accelerating development cycles, and leveraging AI-powered insights for improved code quality and productivity across various programming languages and frameworks.

150,953 stars 26,585 forks TypeScript
anthropics 3783 Dec 22, 2025
Login with GitHub to like and favorite this CLI tool
$ git release --latest

Latest Releases

All releases

What's changed
  • Added virtualText to a mod's prompt decorations: text drawn in the prompt box that never enters the draft or the submitted prompt
  • Added cachecreation5mtokens and cachecreation1htokens to the OpenTelemetry api_request event, splitting cache writes by lifetime
  • Added $.ui.view({ agentId }) for mods: shows an agent's transcript in the main view when you ask, and $.ui.view({}) goes back
  • Added a dir prop on a mod's Text for right-to-left text: on Windows and in VS Code's terminal its rows read in that direction and sit flush right
  • Added /advisor on Claude Platform on AWS; no advisor runs until you pick one with /advisor, advisorModel or --advisor, and CLAUDECODEDISABLEADVISORTOOL=1 turns it off
  • Added OpenTelemetry GenAI semantic-convention attributes to trace spans, such as genai.provider.name, genai.conversation.id, gen_ai.tool.name and error.type
  • Added support for rewriting a workflow agent's prompt and model in the agent.spawn mod hook, which could only refuse workflow agents before
  • Added the prompt.change mod hook, raised when the prompt box's text changes without a typed edit: a recalled history entry, a clear, an undo, or a plugin's fill
  • Fixed cloud sessions telling Claude that an organization policy blocked a host when the session's own network settings did
  • Fixed /autocompact warning about high token usage when you choose a smaller auto-compact window
  • Fixed SessionEnd hooks sometimes not running when you exit while a background command is still running
  • Fixed claude --help naming a removed tool in its description of --restricted
  • Fixed claude agents not refreshing any pull request's status when the data for one of them came back incomplete
  • Fixed Claude being told a background agent was lost, not resumable, after a cloud session's container was replaced, when the agent had already been resumed once
  • Fixed subagents you had typed messages to disappearing from /tasks shortly after finishing, leaving no way back to the conversation
  • Fixed a completed parent agent dropping off the breadcrumb (its child shown re-rooted at top level) while you were viewing the child
  • Fixed the agents view taking a typed word such as "up", "down" or "escape" for that key when input arrived in a burst, which could move the peek mid-reply or clear a draft
  • Fixed automatic tool search (ENABLETOOLSEARCH=auto) turning off part-way through a conversation, for example while MCP servers reconnect after a resume
  • Fixed a login refused by forceLoginOrgUUID leaving the refused organization's token stored, or live after /login
  • Fixed the diff view in Claude Desktop and Remote Control sessions not noticing a conflicted cherry-pick or revert in reftable repositories
  • Fixed the Artifact tool's verbose and ctrl+o line reading Artifact("(unprintable path)") while a call's input arrives; its row now shows "Waiting…" and "Running…" as Bash's does
  • Fixed the first transcript entry written after resuming a session being lost when a crash had cut the transcript's last line short
  • Fixed /branch dropping messages, and claude purge skipping subfolder projects, when they contain a Unicode line or paragraph separator (U+2028, U+2029)
  • Fixed plugin WorktreeCreate and WorktreeRemove hooks not running when Claude Code starts with --worktree (not yet with --tmux)
  • Fixed OpenTelemetry toolresult events missing gitcommit_id after git commit -q in repositories using reftable ref storage
  • Fixed a prompt that a mod's prompt.submit hook rewrote or dropped still being recorded as typed in the OpenTelemetry user_prompt event and interaction span, and in session title requests
  • Fixed a note meant for Claude about mod hot-reloading appearing in the transcript as if you had typed it
  • Fixed agent hooks ignoring their model: aliases like haiku now resolve, a subagent's model no longer overrides it, and an unavailable model falls back to the caller's instead of allowing the action
  • Fixed --worktree sessions sometimes starting from the wrong commit when a tag or branch was named like a commit ID, and their starting git status naming a branch other than the new worktree's
  • Fixed the branch showing as ".invalid" and --worktree failing to reopen a worktree in repositories using git's reftable ref storage
  • Fixed Claude naming files in the session scratchpad by a bare filename or relative path instead of their full path
  • Fixed claude remote-control servers giving up on renewing their connection after a brief sign-in error, such as a locked keychain; they now retry, and warn when you need to run claude /login
  • Fixed --worktree failing in a worktree of a bare repository when origin's default branch can't be fetched; the fallback base is now the current checkout's HEAD, not the main repository's
  • Fixed starting Claude Code in a VS Code, Cursor or Devin Desktop integrated terminal launching the editor's command-line tool twice to check for the extension; it now launches it once
  • Fixed a mod's prompt.edit hook not being raised for a newline entered with the chat:newline keybinding (Ctrl+J, or a rebound Enter)
  • Fixed a conversation failing on every turn with a 400 error when the API rejected an MCP tool's input schema; Claude Code now sends that tool without parameters for the rest of the conversation
  • Fixed resuming a headless or Agent SDK session losing the recent messages a compaction had kept, when the compaction followed a reply cut at the output token limit (compactions from this version on)
  • Fixed Claude not being told about an MCP server's tools and instructions until its next tool call, when the server finished connecting after a compaction
  • Fixed Remote Control sessions being marked stopped while still running, on a computer serving several sessions at once
  • Fixed resuming a headless or Agent SDK session losing its compaction summary or bringing back pre-compaction history, when the compaction followed a retried or unfinished reply in the same turn
  • Fixed Claude polling a background command's output file or sleeping while it runs
  • Fixed feature flags and staged rollouts staying stale behind a TLS-inspecting proxy whose certificate is trusted only through the OS certificate store
  • Fixed claude daemon stop --any printing "stopped" while a stuck background service kept running: it now waits, force-kills the service, and says so with exit 1 if it is still there
  • Fixed claude daemon stop exiting with no output, and leaving sessions listed as running, when telemetry is turned off
  • Fixed Write, Edit and NotebookEdit in Cowork cloud sessions reporting success for a path on your own computer, where the file never arrived
  • Fixed Claude searching for deferred tools already loaded earlier in the conversation when a session resumes a history that never listed them
  • Fixed secondary (dim) text looking the same as normal text under the dark ANSI theme and on 16-color terminals
  • Fixed cloud sessions hanging 5 minutes per turn when the organization's policy can't be read; the turn now ends promptly and says why
  • Fixed a cloud session sometimes running an already answered message a second time after the session restarted during a long reply
  • Self-hosted runner: Fixed the runner and orchestrator freezing (no polls, /healthz or SIGTERM shutdown) while nobody reads their output; logs keep the latest 256 KiB and count drops (not on Windows)
  • Improved WebFetch in Cowork cloud sessions to tell Claude that a page failed moments ago instead of fetching it again
  • Improved mod sharing in the built-in plugin-authoring skill: Claude scans a mod's files for keys before opening them, and asks before scanning a folder outside the project
  • Improved the note Claude 3 models get about an @-mentioned PDF, so they less often answer without reading it
  • Improved artifact updates: Claude now applies a small change and republishes the artifact in one call, and makes larger edits and republishes within a single response
  • Changed CLAUDECODEPROVIDERMANAGEDBYHOST sessions to ignore CA-bundle, tool-proxy, git TLS and git config variables like SSLCERT_FILE in settings; under Claude Desktop, only in project settings
  • Changed exit to force-kill background commands still running 1.5 seconds after being asked to stop; in fullscreen mode they could previously be left running
  • Changed Claude Desktop's Code tab to apply managed settings when forceLoginGatewayUrl names an Anthropic-operated gateway that serves the session's hostname; that gateway must be reachable at start
  • Changed claude gateway to stop at start, naming the key, on a desktop: policy key that Claude Desktop cannot use from a gateway, where it earlier started with a warning
  • Changed large requests to api.anthropic.com to use gzip compression even when telemetry is disabled; set CLAUDECODEGZIPREQUESTBODIES=0 to turn it off
  • Changed the claude-api skill to leave Managed Agents sessions in place unless you ask to archive or delete them
  • Changed background sessions to resume a carried workflow through the Workflow tool's approval instead of running it from the handoff file
  • Changed local session transcripts to also record each API request's system prompt, tools and parameters, so a transcript you choose to share can reproduce a request exactly
  • Changed the /sandbox mode options to read "Sandbox commands" instead of "Sandbox BashTool"
  • Changed PermissionRequest hooks in Cowork cloud sessions: a setMode update in a hook's allow is now ignored; the rest of the approval still applies
  • Changed hooks: updatedInput from PreToolUse and PermissionRequest hooks is now validated like Claude's own input: unknown keys are dropped, and input the tool rejects denies the call
  • Removed the --sandbox and --no-sandbox flags from claude remote-control, which had no effect; passing either now exits with an error. Set sandbox.enabled in settings to sandbox sessions
  • [VSCode] Added the claudeCode.attachSelection setting to stop text selected in the editor from being added to your messages
  • [VSCode] Fixed fast mode staying on after usage credits ran out, which made each request be refused and re-sent; it now turns off until you turn it back on, with an error notice
  • [VSCode] Fixed the Thinking toggle switching to Off on models that always think; the toggle is no longer shown for those models
  • [VSCode] Fixed "Edit prompt" on a flagged message opening the file or command menu over the restored prompt; Enter now sends it as written
  • [VSCode] Fixed Shift+dragging a file onto the prompt on Windows inserting an unreadable /c:/… path instead of a mention relative to the working directory
  • [VSCode] Fixed changes to VS Code's chat font size settings needing a window reload or being undone by a theme change; diffs and the plan preview now follow them too
  • [VSCode] Fixed "Resume session" and tabs restored after a reload opening an empty new conversation instead of one that had moved into a git worktree
  • [VSCode] Fixed ↑ then Enter on a recalled slash command running it without its arguments; the command and file menus no longer open over a recalled prompt until you edit it
  • [VSCode] Fixed Shift+dragging a file from the Explorer or an editor tab onto the prompt inserting nothing in WSL, SSH and Dev Container windows
  • [VSCode] Fixed Ctrl+Alt+F toggling Focus view instead of opening Find in the Explorer, other tree views, or the Debug Console on Windows and Linux
  • [VSCode] Fixed the check for sessions open in other windows or terminals creating extra processes on macOS: it now starts /bin/ps directly instead of searching PATH for ps on every check
  • [VSCode] Windows: Fixed a conversation showing "still open somewhere else" after a crash or power loss, when Windows had since restarted and given the old process ID to another program
  • [Cloud sessions] Fixed "Allow for this task" missing from Cowork's approval prompts for connector tools where an organization turns off "Always allow" (regression in 2.1.292)
  • [Cloud sessions] Fixed most commands in the / menu losing their descriptions in cloud sessions once you sent a second message
  • [Remote Control] Fixed the diff view in Remote Control sessions on claude.ai and the desktop app showing deleted and renamed files as modified; requires Claude Code v2.1.296 or later on your machine
  • [Claude Tag] Added support for Slack Connect channels: an Owner or Claude Tag admin can let Claude in Slack answer in channels shared with another organization; it's off by default
  • [Claude Tag] Added a private Allow once / Deny card in Slack threads for connector actions that need your approval, so Claude asks instead of refusing; others only see that it's waiting on you
  • [Claude Tag] Added support for Slack voice clips in Claude in Slack: Claude reads Slack's transcript of a clip when Slack has one
  • [Claude Tag] Fixed Claude in Slack not answering another app that tags it in a thread under a message Claude itself posted to the channel
  • [Claude Tag] Changed access bundles an admin attached to a Slack channel to keep applying once the channel becomes a Slack Connect channel, with no need to remove and re-attach them
  • [Code Review] Fixed Code Review ignoring @claude review comments from people with write access whose GitHub organization membership is private; their comments now start a review
  • [Code Review] Fixed Code Review's "paused for this repository" comment sending admins to Code Review settings; it now says who can fix it and links the Git providers page

What's changed
  • Added CLAUDECODEDISABLEFILEMENTIONS environment variable: Claude gets the paths of @ file mentions to read with its file tools, not the files' contents
  • Added idle compaction in the terminal: a 200K+ token conversation left idle for about 54 minutes is compacted before its one-hour prompt cache expires, so your next message doesn't reprocess it all
  • Added CLAUDECODEIDLECOMPACTMIN_TOKENS to change idle compaction's 200K-token minimum; "idleCompaction": false in settings.json turns it off. Both need v2.1.290 or later
  • Added $.prompt.media so a prompt.submit hook of a mod installed by managed settings can read the bytes of an image or document attached to the prompt
  • Added $.session.identity() for mods installed by managed settings: how the session is signed in, and its organization and email when managed forceLoginOrgUUID lists that organization
  • Added size, weight, mono and tabular to a mod's Text and named spacing steps (xs to xl) to its Box; bold is deprecated in favor of weight
  • Added --shutdown-drain-sec to claude self-hosted-runner orchestrator: on SIGTERM it stops polling and gives the poll in flight and running spawn hooks up to that many seconds to finish
  • Added the skill's frontmatter, source, plugin name and file path to what a mod's skill.prompt hook receives
  • Added /effort and /fast in agent view to set what new sessions start with; a bare /model, /effort or /fast there now opens a picker
  • Added a "safe mode" line to the agents view peek panel for background sessions started with --safe-mode
  • Added a one-time note when plan mode won't ask before most edits or commands because bypass permissions is available
  • Added --disallow-tools and a disallowed_tools case field to claude plugin eval to keep specific built-in tools, such as Agent, out of eval runs
  • Added support for turning off the attribution block in Claude Desktop's Code tab: set CLAUDECODEATTRIBUTION_HEADER=0 in the env of a Claude apps gateway's code policy
  • Added a field to the attribution block in Claude Code sessions behind a Claude apps gateway; remove the block with CLAUDECODEATTRIBUTION_HEADER=0
  • Added a queue door to the session.append mod hook, so a mod can make the transcript's queue records differ from the prompt as sent
  • Added a note in /plugin and claude plugin validate naming a mod's hooks that are skipped where an organization manages Claude Code
  • Added /usage warnings for max effort, workflows, always-on context and large tool results
  • Fixed the error for a denied cloud session, which could point to the wrong organization when a key from apiKeyHelper was in use
  • Fixed sessions on a gateway-specific model name behind a custom ANTHROPICBASEURL ending with "Prompt is too long · automatic compaction failed" near 200K tokens instead of sending the request
  • Fixed a mod that submits a prompt at the end of every turn keeping a headless run going past --max-turns, --max-budget-usd, an interrupt, or the end of the host's conversation
  • Fixed cloud sessions sometimes showing the model's follow-up text after a tool group's one-line label
  • Fixed the Write and Edit tools creating a mod in a session's mods folder without asking in accept-edits mode when the config directory's path has no .claude in it
  • Fixed installed mods that kept running in an open session after being turned off remotely; they now unload between turns
  • Fixed Edit and Retry in Cowork and claude.ai cloud sessions failing on a message stopped while its UserPromptSubmit or mod prompt.submit hooks were still running (regression in 2.1.296)
  • Fixed an agent teammate started without a description keeping part of a credential from its prompt in the task description shown for it
  • Fixed the claude.ai view of a Remote Control or cloud session freezing when a large batch of events could not finish uploading over a slow connection
  • Fixed a sandboxed shell command being able to write into a --plugin-dir folder, whose code Claude Code reloads and runs outside the sandbox
  • Fixed memory growth under heavy debug logging (--debug, --debug-file), and a hang on exit when the debug log is on a disk or network mount that stops accepting writes
  • Fixed memory growing without bound when debug output goes to stderr and the parent process stops reading it
  • Fixed rm prompts on shell -c scripts that don't run rm. An rm built at run time in a script Claude Code can't read no longer prompts unless CLAUDECODESTRICTINLINESHELLRMPROMPT=1
  • Fixed double-clicking a word in an expanded transcript row in fullscreen mode collapsing the row instead of selecting the word
  • Fixed claude mcp list, claude doctor and /status reporting an empty .mcp.json as invalid
  • Fixed /btw jumping the transcript to the bottom when asked while scrolled up in fullscreen
  • Fixed sandboxed commands failing on WSL2 with bwrap: Can't mkdir /mnt/c/Program Files/ClaudeCode when the sandbox can write to the Windows drive
  • Fixed scheduled wakeups (ScheduleWakeup) not firing while a background task was running in Agent SDK, IDE and claude remote-control sessions
  • Fixed a mod's prompt.submit rewrite being silently dropped, sending the prompt as typed, for some prompts with a pasted image or an image that can't be read
  • Fixed a Remote Control prompt being lost when another queued prompt in the same batch failed to deliver
  • Fixed a Remote Control prompt that had passed its hooks being dropped from prompt history when Stop interrupted the next queued prompt's hook
  • Fixed sign-in, MCP servers and project trust appearing lost on Linux after a sandboxed command left an empty .config.json in the config directory
  • Fixed /sandbox reporting success when its setting could not be saved because the project folder is not writable; it now says nothing changed and why
  • Fixed SDK and headless sessions staying in auto mode after the host switched to a model that doesn't support auto mode
  • Fixed MCP servers named constructor or prototype in an MCP config never being connected
  • Fixed tools of an MCP server named constructor or toString asking for permission in auto mode and bypass permissions mode
  • Fixed a spurious "synced[0] commands path not found" plugin error at startup when another Claude Code process had just updated a claude.ai-synced plugin
  • Fixed the Artifact tool advising a retry when a publish that requests connectors or other access was refused by the server or a proxy (HTTP 403); it now says so and what to tell the user
  • Fixed Cowork cloud sessions staying on an old account plugin after a plugin reload that timed out or a restart that reused a recent sync
  • Fixed document blocks being dropped from your own message sent while Claude is working
  • Fixed Claude in Chrome asking for permission while no browser is connected; it now says the extension is not connected
  • Fixed the fullscreen "Update installed" notice being hidden behind the idle "/clear to save tokens" hint; it now shows beside the hint
  • Fixed a mod hook, with or without a .catch, being run again without end when it waits on another mod's noun that does its work outside the call
  • Fixed the Claude apps gateway serving models that a policy's availableModelsMatch: exact or deniedModels blocks; it now answers 400 and leaves them out of its model lists
  • Fixed the server-managed settings request to Anthropic carrying a third-party gateway's API key when a managed settings file sets ANTHROPICBASEURL
  • Fixed streams through a custom ANTHROPICBASEURL being aborted after 180 seconds with no data arriving; they now wait 300 seconds, whether or not feature flags are loaded
  • Fixed a mod's tool.describe or prompt.section answer that changed after $.ui.invalidate never reaching Claude; the new answer is now sent on the next turn
  • Fixed a settings file being ignored when enabledMcpjsonServers or disabledMcpjsonServers held a single server name (letters, digits, - or _) as a plain string
  • Fixed claude plugin test pausing a hook's time budget while a served $ method it had called kept making $ calls after answering
  • Fixed high memory use after resuming a cloud or Remote Control session that had run many subagents
  • Fixed plugin hooks being skipped when they pass a very deeply nested tool input or message on with next()
  • Fixed a value a mod's hook passes to next(), returns, or sends to a $ method being refused whole when one of its getters throws a RangeError; now only that key is refused
  • Fixed /usage, the approaching-limit warning (terminal and VS Code) and the status line sometimes showing more than 100% used (anthropics/claude-code#92238)
  • Fixed wrapped text mixing CJK or emoji with Latin words losing its last line or leaving a blank row at some terminal widths
  • Fixed a cloud session sometimes ignoring the answer to a permission prompt or a question when the answer was given while the session's worker was being replaced
  • Fixed bold, italic and other nested text styles running over table borders or being lost on wrapped rows
  • Fixed Cowork cloud sessions running the old version of an account plugin changed, removed or disabled from another device until the session restarted
  • Fixed deny and ask rules for an MCP server (mcp__<server>) not applying when the server's normalized name contains a double underscore
  • Fixed long conversations losing newly attached images on every turn after one oversized image was refused by the API
  • Fixed the pluginloaded telemetry event reporting hashooks as false for plugins whose hooks are a hooks module, built-in plugins included
  • Fixed images attached while Claude is working (VS Code, desktop app, SDK) being sent at full size, which led to repeated image errors in long conversations
  • Fixed the image coordinate hint being missing or slightly off for large near-square images on newer models
  • Fixed feature flag, startup, fast mode, profile and feedback requests to Anthropic carrying the API key configured for a third-party gateway (ANTHROPICBASEURL); Anthropic API keys are still sent
  • Fixed a mod's hot reload ignoring a fix saved right after a failed reload; saving a mod file without changing it no longer reloads the mod
  • Fixed mods loaded from source files being refused when a hook hands $ to a function declaration imported from another file of the mod
  • Fixed a regression in 2.1.296 where cloud and headless sessions could run an approved tool call twice if a new message arrived as the session resumed after a restart
  • Fixed scheduled tasks being announced for the wrong minute: the scheduling tools now report each job's actual next run time
  • Fixed mods' hooks being handed values with _proto_ keys silently removed, which could skip a tool.check guard on a tool call another mod made
  • Fixed claude -p saying nothing when a settings file fails validation: text-output runs now list the file and the invalid entry on stderr
  • Fixed long pastes in terminals without bracketed paste losing all text after an invisible control character, such as a mis-decoded curly quote
  • Fixed managed settings and organization policy not being fetched when the stored login's plan was changed locally on machines whose MDM or managed-settings file sets forceLoginOrgUUID
  • Fixed MCP connections over HTTP hanging for 30 seconds and failing when a server never ends the body of its reply to a notification (anthropics/claude-code#99014)
  • Fixed MCP servers added to a running headless or SDK session being connected before some policy checks ran; a blocked server is now reported as failed without being contacted
  • Fixed claude mcp list, claude mcp get and subagent MCP servers starting a server that a policy check blocks; it is now reported as blocked without being started
  • Fixed /reload-plugins not loading a plugin installed from another terminal a moment earlier
  • Fixed blank rows appearing under CJK and emoji text squeezed into a one-cell column, as in a very narrow terminal
  • Fixed text cut in the middle beside wide characters leaving a cell unused or being cut twice, and an emoji vanishing where a color changed inside it
  • Fixed bare mode notices in background sessions telling you to restart without --bare, which keeps the mode; they now name /stop and claude --resume, as safe mode ones do
  • Fixed ← not saying why it stayed put over a queued message while Remote Control is on
  • Fixed $.http.fetch in mods refusing a 304, 204 or 205 response that declares a Content-Length over the 4 MiB body limit
  • Fixed /config push notification toggles sending your account the previous setting instead of the one you just chose
  • Fixed a cloud session leaving a reply unfinished when its worker was replaced just after the reply hit the output token limit
  • Fixed Read failing on PDF page ranges in remote sessions on Linux that run without elevated privileges
  • Fixed Enter answering a question or permission prompt that had been held back while you typed an unsent message
  • Fixed a file attached to a message in a remote session being left out when its download stalled part way; the download is now tried again
  • Fixed queued prompts sent as content blocks over --input-format stream-json running together without a line break when merged into one turn
  • Fixed self-hosted runner sessions shutting down MCP servers added through an --exec-path wrapper's own --mcp-config when connectors change mid-session
  • Fixed claude plugin eval passing runs that the API refused: a run that ends on an API error now scores 0 without grading and makes the suite exit 1
  • Fixed permission prompts cutting off or wrapping too early when the reason text contains keycap or joined emoji
  • Fixed forceLoginOrgUUID and forceLoginMethod from MDM or the managed-settings file being hidden or replaced by server-managed settings
  • Fixed --bare sessions leaving out an MCP server named constructor or prototype that --channels asked for
  • Fixed resuming a conversation from before /clear reattaching to the Remote Control session of the conversation after it
  • Fixed a prompt starting with /, sent with the Agent SDK's verbatimPrompts option, running as a slash command when CLAUDECODERESUMEINTERRUPTEDTURN re-ran it after a restart
  • Fixed background sessions started with --safe-mode silently leaving safe mode when the session was woken or restarted
  • Fixed scheduled tasks and loops firing again after every turn, or firing early, during the repeated hour when daylight saving time ends
  • Fixed the diff view listing a new file whose name begins or ends with a space under the wrong name
  • Fixed MCP tool calls in headless and SDK sessions sometimes failing or running twice when a background reconnect closed the connection they were running on
  • Fixed /btw side questions in non-interactive sessions not being cancelled when the session ends, and running a second time when the same request arrived again mid-run
  • Fixed sandboxed commands on macOS being able to read or write a denied path by its real location when the denied path passes through a symlink
  • Fixed sandbox denyRead and allowRead globs with braces, parentheses or backslashes in a folder's name being read differently by Claude Code's settings checks than by the sandbox
  • Fixed sandbox glob allowRead and allowWrite entries not being re-checked when the directory they start from is replaced by a symlink
  • Fixed worktree-isolated sessions accepting some awk programs the isolation guard should refuse
  • Fixed claude mcp add <name> -- <command> --background being started as a background session
  • Fixed a prompt or reply of --bg or --background to a background session being taken for the flag, which could start new sessions over and over instead of delivering it
  • Fixed a custom slash command's embedded shell line running twice when a newer message interrupted the command while its prompt was being checked
  • Fixed --worktree sessions leaving a folder behind in .git/worktrees in repositories using git's reftable ref storage
  • Fixed claude self-hosted-runner sessions using Anthropic-managed git showing tracked files as staged deletions when starting in a reused clone whose remote is still empty
  • Fixed Ultracode not being announced to scheduled tasks and other delivered headless turns when ultracode is on in settings
  • Fixed MCP OAuth sign-in, token refresh and sign-out not sending configured headers/headersHelper values, which broke servers behind an authenticating proxy
  • Fixed the Artifact tool reporting a spurious one-line difference against the live page, and refusing the publish, when a large page with a line break after <head> is published again unchanged
  • Fixed $.ui.open reporting a mod's pane as placed in sessions where no surface draws it, such as Claude Code for VS Code and claude -p
  • Fixed the agent.spawn mod hook not running when a finished subagent or a killed teammate is resumed: the hook's event now carries resume, and a mod can refuse it
  • Fixed claude plugin validate rejecting a mod's $.state references when plugin.json has no types key and the contract is at ./types/index.d.ts
  • Fixed a mod's dimColor text looking the same as plain text under the dark ANSI theme and on 16-color terminals
  • Fixed plan mode running a write (an MCP tool's, a file's, a shell command's) that a PreToolUse hook or a mod's tool.check hook allowed
  • Fixed background subagents in auto mode sometimes sending their final report twice, once as the result and once as a message
  • Fixed SendMessage not finding a subagent by name after the CLI restarted and resumed the session (names given before the last compaction still need the agent ID)
  • Fixed replies cut off at the output token limit ending the turn silently, with no retry or error, after a request fell back to non-streaming mode
  • Fixed Read garbling UTF-16LE files with a byte-order mark, and Write dropping byte-order marks or silently converting Windows-1252, Shift-JIS, GBK or UTF-16BE files to UTF-8 (now refused)
  • Fixed cloud sessions sometimes leaving a message unanswered when the worker was replaced right after a compaction
  • Fixed cloud sessions and CLAUDECODERESUMEINTERRUPTEDTURN sometimes answering a finished turn again after a restart, when a tool ended the turn and a skill loaded in the same step
  • Fixed photos sent over Remote Control being dropped when their copy could not be saved on your computer; Claude now still sees the photo
  • Fixed files sent over Remote Control sometimes not arriving in long-running sessions
  • Fixed files of 30 to 35 MiB sent over Remote Control or to a cloud session not arriving
  • Fixed a user-installed mod's $.env.set changing the environment or shell prefix that command hooks from managed settings start with
  • Windows: Fixed the process-liveness check leaving orphaned PowerShell processes behind on busy machines until memory ran out
  • Windows: Fixed PreToolUse and PermissionRequest hooks that set no shell failing open when Git for Windows isn't installed; a guard that fails now blocks the call
  • Windows: Fixed Bash commands failing with "command not found" for a whole session when Git Bash did not report its PATH at startup
  • Self-hosted runner: Improved what setup and doctor say when the runner's machine has no git credentials
  • Self-hosted runner: Fixed sessions that wrote output before their first turn being left with no release timer, ignoring --retire-at and delaying shutdown
  • Improved the error shown when a cloud session is refused because your claude.ai login was rejected or has expired: it now tells you to sign in again with claude auth login
  • Improved enforcement of managed permission rules, managed hooks and organization MCP tool names against user-installed mods
  • Improved memory and disk use when PDFs are @-mentioned: their bytes are no longer kept in the session transcript
  • Improved sandboxed Bash on Linux: Esc and Ctrl-C now work while wildcard read rules are being expanded for a command
  • Improved the startup warning for an unrecognized model ID: it is now one short line under the welcome banner with a docs link, instead of a long raw message
  • Improved the plugin-authoring skill's steps for sharing a mod: Claude asks public or private and checks the files before creating a GitHub repository
  • Improved the Skill tool's "Unknown skill" error to suggest a skill's listed name when Claude wrongly adds the anthropic-skills: prefix to it
  • Improved /reload-skills to say it re-sends the full skill list to Claude, which is how to get skills back after compaction
  • Improved the error shown when a worktree cannot be created because its base commit does not resolve: it now says how the lookup ended and the likely reasons, such as a repository without a commit
  • Improved the error for creating a worktree at a bare-repository layout's root: it now explains the layout instead of an unrelated git error
  • Improved artifact watching: a local session can now watch up to 25 published artifacts at once, up from 10
  • Improved background agent notifications: they now say when an agent is only waiting on its own background work, got a message too late for its result, or was stopped by a usage limit
  • Changed plugin hooks and workflow scripts to refuse values they hand back that nest deeper than 28,000 levels, with an error naming the limit (workflow scripts allowed 100,000)
  • Changed actions a plugin hook can block to be refused, not let through, when the hook cannot be handed them or cannot hand back its answer; a tool that already ran has its result withheld
  • Changed requests to claude.ai's connector proxy and to Anthropic-hosted MCP servers to no longer follow HTTP redirects; redirects by a connector's own server are unaffected
  • Changed MCP requests in cloud and self-hosted runner sessions to no longer follow HTTP redirects from the session's MCP proxy
  • Changed skill and command loading: one whose file or folder name has hidden, direction-changing or blank-like characters, < or > is no longer offered until renamed; such a name: is ignored
  • Changed ui.render trees in claude plugin test: each mod's Box or Text root now carries part: { plugin } naming the mod, so exact-tree assertions must include it
  • Changed WebFetch page reads to pick their effort as web searches do: the caller's level on the caller's own model, otherwise the level settings give the small model
  • Changed claude plugin test to fail a call to a mod's served $ method that has not answered within ten seconds, as a session does
  • Changed MCP allow rules to reach only the server they name: mcp_a no longer allows a server named ab or a; write mcp_<server>_* with the server's whole normalized name
  • Changed agent tools: lists to take only the named MCP server's tools; list a server whose name contains _ as mcp<whole name>_*
  • Changed Claude in Chrome in Cowork cloud sessions outside auto mode: an approved-site action the safety classifier flags now asks you instead of being refused, unless managed settings apply
  • Changed cloud session and Remote Control MCP connectors to negotiate MCP protocol version 2026-07-28 by default on installs that fetch no flags; MCPPROTOCOLNEGOTIATION=legacy opts out
  • Changed MCP tool descriptions and server instructions from Anthropic's first-party MCP servers at api.anthropic.com to reach Claude in full instead of being cut at 4,096 characters
  • Changed auto mode in Cowork cloud sessions: a PermissionRequest hook can no longer approve shell commands or subagents; those prompts wait or are denied
  • Changed the resume command printed at exit: it names the session by its ID and no longer by its name, so that nothing in a session name can run when the line is pasted
  • Changed the resume command printed at exit of a worktree session: it uses -w and -r if the long flags do not fit the terminal. If neither fits a kept worktree, rows above it say where to run it
  • Changed /btw side questions in non-interactive sessions to return a timeout error when still unanswered after 11 minutes
  • Changed UserPromptSubmit hooks to run before a skill or custom slash command expands, so a hook that blocks the prompt now also stops its embedded shell commands
  • Changed a skill's own front-matter UserPromptSubmit hook to first run on the prompt after the one that invokes the skill
  • Changed the turn.start mod hook to also hear subagents' and teammates' turns, not only the main loop's; tell them apart by e.agentId (absent on the main loop)
  • Changed the errors shown when /ultrareview can't upload a repository to stop suggesting git add ., which could stage or commit untracked files such as .env
  • Changed the cyber safeguard notice to no longer ask people to apply to the Cyber Verification Program
  • [VSCode] Fixed an unsent prompt and its attachments being lost when switching to another session and back
  • [VSCode] Fixed unused blank chats keeping a background Claude process running after starting a new conversation
  • [VSCode] Fixed the mic button showing an internal error message when you are signed out of claude.ai; it now offers to sign you in
  • [VSCode] Improved startup time in workspaces without a Python environment by starting Claude while the Python extension loads
  • [VSCode] Improved startup: the model picker and slash command menu now fill in right away in a new window on a folder you've opened before
  • [Cloud sessions] Fixed a memory spike that could crash a session when many of its existing output files were re-sent to it at once
  • [Cloud sessions] Fixed saving an edited routine silently moving it to a different environment when its own had been deleted or wasn't in the list; the routine now keeps its environment
  • [Cloud sessions] Fixed Sessions search in a self-hosted environment's admin details finding nothing when you paste the session ID from a session's link
  • [Cloud sessions] Fixed the Sessions and Runners lists in a self-hosted environment's admin details saying the list is empty when a search just has no matches
  • [Cloud sessions] Improved the deploy command shown when you create a self-hosted environment or environment key: it shows in full, wraps between arguments, and has a visible copy button
  • [Cloud sessions] Changed deleting a self-hosted environment to turn off its routines right away, with the reason shown on each routine, instead of leaving their runs to fail
  • [Remote Control] Fixed Remote Control sessions whose computer can't be reached still appearing to send your messages; your text now stays in the box and Send is off until it reconnects
  • [Claude Tag] Added the ability for Claude in Slack to delete a canvas it created in a channel when someone asks it to
  • [Claude Tag] Fixed Claude in Slack staying silent on untagged posts that a channel's own instructions tell it to answer, such as posts that tag someone else, in channels with guests
  • [Claude Tag] Fixed Claude in Slack reporting a reply to another channel's thread as posted when it isn't a member there; it now says the reply wasn't delivered and how to fix that
  • [Claude Tag] Fixed Claude in Slack sometimes ending a turn without posting its answer when a self-hosted runner's image has no python3
  • [Claude Tag] Changed how Claude in Slack corrects a message it got wrong: it edits the message in place and adds a short "Edited" note instead of striking through the old text
  • [Claude Tag] Changed Claude in Slack to join channels with more than 100 members quietly, with no intro message
  • [Code Review] Fixed Code Review's monthly spend-limit comment and check-run card sending admins to Claude Code settings; they now link the Usage page, where that limit is set

What's changed
  • Added a code key to the Claude apps gateway's managed.policies[]: the same settings as cli, also applied in Claude Desktop's Code tab; beside desktop, it turns on Claude Desktop's gateway mode
  • Added autoCompactWindow to subagent frontmatter and --agents definitions, so a subagent can auto-compact earlier than the main conversation's window
  • Added CLAUDECODEWORKFLOWSUBAGENTMODEL to run every workflow agent on one model while other subagents keep theirs
  • Added CLAUDECODEOVERLOADEDRETRYMAXDELAYMS environment variable to set a longer maximum delay for the backoff when retrying an overloaded (529) request
  • Added a note in /plugin on a plugin whose hooks are left out because another enabled plugin has the same name
  • Added an allow_large option to the Read tool so Claude can read a text file past the usual size limits in one call when it needs the whole file and the context has room
  • Fixed managed-settings PreToolUse hooks that deny a tool call with "continue": false, and managed prompt hooks that block one, refusing the call but not ending the turn
  • Fixed PostToolUse hooks in managed settings not applying updatedMCPToolOutput in some sessions
  • Fixed headless sessions starting a folder's .mcp.json or plugin MCP server that was switched off for that folder, after changing directory or reloading plugins
  • Fixed a Claude apps gateway that serves allowedProviders with "gateway" locking out laptops that name that gateway in user settings
  • Fixed a saved Claude apps gateway sign-in being ignored on machines whose managed settings set forceLoginMethod to gateway with no forceLoginGatewayUrl (regression in 2.1.295)
  • Fixed --teleport opening an empty conversation when the session's history could not be read
  • Fixed token counts for Haiku 5.5 and other models that take only adaptive thinking, which failed behind some gateways and were counted with budget thinking elsewhere
  • Fixed resumed subagents being told that the user rejected a tool call that a session shutdown had interrupted
  • Fixed hook output being altered when it contained text resembling a plugin hint tag
  • Fixed secret redaction in shared transcripts and debug logs missing some values that follow a key with no value, including in JSON written inside a shell string
  • Fixed a stray 52;c;… escape sequence printed on screen after copying in older VTE-based terminals such as MATE Terminal
  • Fixed toasts and notifications waiting unseen for as long as the /diff panel or dialog was open
  • Fixed Esc or an interrupt during a UserPromptSubmit hook or a mod's prompt.submit hook ending headless sessions, clearing the typed prompt, or letting the unchecked prompt through
  • Fixed SessionStart hooks of a plugin loaded after a headless session starts being skipped when a different plugin with the same name, or another spelling of it, had already run
  • Fixed claude self-hosted-runner printing misleading errors when registration is refused: it now names the org admin setting, or says a restarted on-demand runner needs a fresh work order
  • Fixed a self-hosted runner session's git fetch, pull and push failing while another session of the same repository starts on a runner with --capacity above 1
  • Fixed workflow scripts silently truncating results, agent options and other values nested deeper than about 20,000 levels, and deeply nested results writing huge task output files
  • Fixed a plugin's served $ methods running in the main session's working directory instead of the calling agent's, and ignoring the turn their calling hook holds
  • Fixed $.agent.register succeeding from a mod's hook that was still running after the mod was reloaded or removed; the call is now refused
  • Fixed $.http.fetch in mods refusing a HEAD request when the response declares a Content-Length over the 4 MiB body limit
  • Fixed claude plugin marketplace add, marketplace update and plugin install failing with an internal error for a marketplace named like constructor; add now refuses such names clearly
  • Fixed a plugin secret named constructor or prototype being deleted by the next save of that plugin's options
  • Fixed cloud sessions skipping auto mode's checks on Claude in Chrome actions that a saved permission allows when their feature flags had not loaded
  • Fixed CLAUDECODERESUMEINTERRUPTEDTURN re-running a finished turn after a restart when an MCP tool result had ended that turn
  • Fixed Bash permission checks auto-approving some commands that assign the BASH_ARGV0 shell variable and then use it; these now prompt for approval
  • Fixed Edit and NotebookEdit replacing every non-ASCII character in files that are not valid UTF-8 (Windows-1252, Shift-JIS, GBK); such edits are now refused
  • Fixed a prompt sent just after ← being run twice, once unseen in the foreground, when the background service was slow to answer
  • Fixed a prompt sent while SessionStart hooks were still running vanishing when ← moved the session to the background; it is still not sent, but ↑ now brings it back
  • Fixed a late-loading plugin's SessionStart hook output reaching the new conversation after /clear in headless sessions
  • Fixed PowerShell commands not seeing variables that hooks write to CLAUDEENVFILE (when the file holds only plain assignments)
  • Fixed Claude calling cloud sessions non-interactive and suggesting /mcp or claude mcp when an MCP server needs authentication
  • Fixed /code-review ending on a raw JSON array in cloud sessions, the Agent SDK and IDE integrations; the findings now print as a numbered list
  • Fixed auto mode occasionally refusing one update to your own artifact, saying its sharing had changed when it had not
  • Fixed skills synced from claude.ai never finishing their install, and being downloaded again at every sync, when several sessions share a config directory
  • Fixed a plugin synced from claude.ai being disabled when the marketplace dependency it declares was also synced from claude.ai
  • Fixed a startup hang on macOS when plugin paths copied from a Linux machine pointed under /home
  • Fixed the Workflow tool refusing script files with CRLF line endings, such as files checked out on Windows
  • Fixed OpenTelemetry toolresult events missing gitcommit_id after git commit -q or git -C <dir> commit
  • Fixed CLAUDECODETRANSCRIPTLOCALGC dropping a message from the saved transcript when its text held a Unicode line or paragraph separator (U+2028, U+2029)
  • Fixed claude purge leaving a prompt in the history file when its text held a Unicode line or paragraph separator (U+2028, U+2029)
  • Windows: Fixed PowerShell commands longer than about 1 KB always asking for permission, so allow rules and read-only detection now apply up to 32 KB
  • Windows: Fixed stdio MCP servers being force-killed at shutdown; stdin now closes first and the process tree is killed only if the server is still running after 300 ms
  • Windows: Fixed claude plugin install failing for GitHub owner/repo plugin sources on machines with no GitHub SSH key; the clone is now retried over HTTPS
  • Windows: Fixed rm -rf /c/Users/<name> in Git Bash not asking in bypass permissions mode
  • Improved fullscreen mode: the link under the mouse pointer is now underlined to show it can be opened
  • Improved transcript toggle (ctrl+o) responsiveness in code-heavy conversations by caching syntax-highlighted code blocks
  • Improved Claude Desktop's Code tab behind a Claude apps gateway: when a session can't start, including on a machine not set up for the gateway's code settings, the reason shows as a reply
  • Improved the errors for a refused cloud session: they now say why your organization's policy couldn't be loaded, and name an API key or auth token that overrides your claude.ai login
  • Improved --debug output to name unrecognized frontmatter fields in custom agent files, with a hint for likely typos
  • Improved auto mode: a tool call that wasn't run because auto mode's check had no usable answer now shows as a dim "Not run" row instead of a red error
  • Improved --debug output for hooks: command hooks on tool calls, prompts, SessionStart and Stop now log their command, plugin, outcome and duration when they finish, so a slow hook is identifiable
  • Improved CLAUDECODETRANSCRIPTLOCALGC: a large transcript file is no longer rewritten when that would free under 10% of it
  • Updated /cost, the status line, --max-budget-usd and the SDK's cost figures to price Sonnet 5.5 cache reads at $0.10 per million tokens (was $0.20)
  • Updated the bundled dataviz skill: lighter violet for the seventh series in light mode, softer primary text in dark mode, and compact y-axis labels like 1K
  • Changed the default limit on MCP tool descriptions sent up front and on MCP server instructions from 2,048 to 4,096 characters
  • Changed ←: a turn or ! command started while the session moves to the background is now stopped instead of finishing out of sight
  • [VSCode] Fixed claudeCode.spinnerVerbs missing from the extension's settings, so settings.json now completes and validates it; a malformed value no longer breaks the chat panel
  • [VSCode] Changed Claude in Chrome to ask before browser actions in every session, including one connected with @browser, as the terminal does; allowing a site for the session stops repeat asks
  • [VSCode] Fixed chat links written as a full Windows path, such as C:\repo\file.ts or file:///C:/repo/file.ts, not opening the file on Windows
  • [VSCode] Fixed the working indicator still animating when reduced motion is turned on in your OS, in VS Code, or with the prefersReducedMotion setting
  • [VSCode] Fixed the prompt cache clock reading warm after the panel caught up on messages late, such as after the display was off or a remote window reconnected
  • [Cloud sessions] Added a status filter to the Sessions and Runners lists on a self-hosted environment's Activity tab in admin settings; you can pick several statuses at once
  • [Cloud sessions] Fixed every cloud session waiting for a self-hosted runner showing the same queue position; each now shows how many sessions are ahead of it
  • [Cloud sessions] Fixed a message you send while Claude is still replying in a cloud session jumping above that reply when it finishes; it now stays below it, including after a reload
  • [Claude Tag] Changed Claude in Slack to show the footer with the session link, model and cost only on its newest reply in a thread; the reply before it drops the footer
  • [Claude Tag] Fixed links to URLs that contain parentheses breaking in some of Claude's Slack replies and task checklists, which showed stray bracket text and opened the wrong page
  • [Claude Tag] Fixed Claude's Slack replies drawing color swatches beside codes that only look like hex colors, such as six-digit pull request numbers
  • [Claude Tag] Added creating, editing and deleting workspace and channel memory files on the Activity page's Memory tab for members with the Claude Tag Admin permission
  • [Claude Tag] Fixed the plugin confirmation card Claude posts in a Slack channel showing a plugin's ID instead of its name
  • [Claude Tag] Fixed Claude in Slack posting a card to remove a plugin the channel's own settings don't include; it now explains where the plugin comes from instead
  • [Claude Tag] Fixed Claude in Slack sometimes losing its reply when a session in a self-hosted environment moved to a new runner partway through a task
  • [Code Review] Fixed the Code Review check sometimes staying "in progress" on a pull request after the review finished; it now shows the review's result
  • [Code Review] Improved Code Review admin settings to say why a setting couldn't be saved, such as a policy restriction, instead of a generic failure message

What's changed
  • Added onFailure: "block" for command and HTTP hooks: a hook that can't start, times out, or exits with an unexpected code blocks the action instead of letting it through
  • Added Program Status Protocol (OSC 7501) support: terminals that implement it can show whether Claude Code is working, waiting on you, or done
  • Added quoted text to the /copy picker, so a drafted message copies without its > markers
  • Added a warning to claude plugin install, enable, disable and marketplace add when the settings file they write to does not load
  • Added a line on stderr, when it is a terminal, that says what a claude -p run is waiting for when it stays open after its last turn
  • Added support for timeouts.upstreamttfbms on the Claude apps gateway's Bedrock, Vertex, Foundry and other cloud upstreams: a value you set now limits how long a stream may take to start there, after which it fails over or gets a 502
  • Added a "Backgrounding cancelled" message when you stop the turn while ← is waiting for the current tool to finish
  • Added an optional models list to every Claude apps gateway upstream: only the listed models are sent there, on failover too, and one * in an entry is a wildcard
  • Added support for forceLoginMethod: "gateway" and forceLoginGatewayUrl in your own user settings on machines with no managed settings, so /login opens on that Claude apps gateway
  • Added advice to claude plugin validate when a plugin's README has no install line: it prints the line to paste and never changes the exit code, even with --strict
  • Added upstreamrequestid to the Claude apps gateway's inference audit event: the request ID from Amazon Bedrock, the Anthropic API or another upstream, for support cases
  • Added $.ui.notify for mods: raises a native notification through your own notification setting and says which channel sent it
  • Added children to a mod's Button: strings and Text, so a row of a list is one pressable with a chip or a dim detail inside
  • Added CLAUDECODERETRYWATCHDOGMAXWAITMS to limit how long unattended retry mode (CLAUDECODERETRY_WATCHDOG) waits out 429 and 529 errors
  • Added a request-id header to the Claude apps gateway's successful inference responses, so request_id in Claude Code telemetry matches the gateway's audit log
  • Fixed every request failing on a [1m] model when a gateway, Bedrock, Vertex or Foundry refuses the context-1m beta; Claude Code now resends without it
  • Fixed claude -p text output dropping earlier responses when background work started another turn; each turn's response now prints when the turn ends
  • Fixed remote MCP servers in headless and SDK sessions staying disconnected after an outage longer than 15 seconds, or reconnecting in a tight loop to a server that drops each connection right after it connects; repeated drops now back off, up to 30s
  • Fixed remote MCP connections being dropped when a server's error reply happened to contain a network error name
  • Fixed MCP servers that repeat a pagination cursor being asked for the same page up to 20 times at every connect
  • Fixed CSS, JavaScript and XML files returned by MCP tools being saved as .bin, which the Read tool refuses; font and icon files now get their own extension too
  • Fixed Bash tool calls failing when the model passes command_description instead of description
  • Fixed Claude in Chrome not applying a site deny rule written with port 80 (host:80) to plain http:// pages on that host
  • Fixed /plugin's Errors tab removing a marketplace that failed to load, and uninstalling its plugins, on Enter without asking first
  • Fixed claude plugin marketplace add reporting success for a marketplace whose name no plugin can be installed under; such an add is now refused
  • Fixed CLAUDEAUTOBACKGROUND_TASKS moving a subagent to the background while an edit or shell command waited behind it, which started that call before the subagent finished
  • Fixed PushNotification saying a push was not sent in claude remote-control sessions right after a phone message, without the /config toggle, or when started from inside Claude Code
  • Fixed files sent from remote sessions being refused as "could not be vouched for" when more than 256 were sent at once
  • Fixed a rare failure to load managed settings at startup right after a login refresh
  • Fixed /tui exiting without a message, or with a raw system error, when Claude Code could not be started again
  • Fixed a link address shown as text being hidden by a colour or conceal style a reply left on, including where it wraps in a table or a question preview
  • Fixed Fable models listed in availableModels not appearing in the /model picker for sessions signed in to a Claude apps gateway; such a model now shows its built-in row in place of a modelPicker row added for the same model
  • Fixed the Claude apps gateway's admin spend view showing a developer's old groups and group cap after their session stopped carrying groups
  • Fixed CLAUDECODEDISABLENONESSENTIALTRAFFIC hiding the Claude apps gateway spend limit in /usage and the status line. The spend limit request goes to the gateway the session is signed in to
  • Fixed subagents in their own linked worktree being shown the parent session's git branch, status and recent commits
  • Fixed Claude stopping at the end of the current tool when text typed in the prompt cancelled backgrounding with ←; Claude now keeps working in the foreground
  • Fixed --tools and --restricted not applying to built-in tools that register after launch, and deprecated tool names reaching tools outside the caller's tool set
  • Fixed an interrupt not ending the turn until a timeout while Claude waited for an MCP server's resource list
  • Fixed a mod's hook being handed a deeply nested tool input cut short with no error, so a guard could pass content it never saw
  • Fixed Esc not stopping a self-paced /loop that was moved to the background with ←; cancelling a pending wakeup now shows a notice
  • Fixed commands and hooks in background sessions inheriting FORCE_COLOR=3, which put color escape codes into the output Claude reads
  • Fixed claude agents starting a new background service as it exited when both were stopped with a session open (for example at a reboot), which could delay shutdown and restart an interrupted session
  • Fixed a custom agent named worker being shown as "Agent" in auto-mode denial notices and in the activity lists of task detail views
  • Fixed Bash permission checks for for-loops over glob patterns, improving permission-check accuracy
  • Fixed forked skills invoked from Workflow subagents delivering their results to the main conversation instead of the invoking agent
  • Fixed in-process agent teammates failing their first SendMessage call until they loaded the tool through tool search
  • Fixed Claude being told on resume that an unfinished background workflow may have been stopped by TaskStop, which can never be the cause
  • Fixed Claude not being told when you stop a long-running MCP tool call from the tasks panel or a connected client
  • Fixed a background session's /loop stopping without notice when its next wakeup came due while the session's process was down; the session now says so and Claude is told
  • Fixed raw terminal hyperlink bytes in a reply or a teammate's message being drawn as a clickable link with a hidden address
  • Fixed plugin marketplaces whose repository has large git submodules failing to add or refresh: only the submodules that hold plugin files are now fetched
  • Fixed the /advisor dialog showing a checkmark on a saved advisor model that is no longer available; it now opens on "No advisor"
  • Fixed the notification for an MCP tool call that moved to the background showing a shortened task id
  • Fixed vim mode's ~ moving the cursor past the last character of a line, so x after it did nothing, and 3~ running on into the next line
  • Fixed the cursor landing one character too far after pasting accented text copied from macOS (such as a file name) into the middle of the prompt
  • Fixed the terminal freezing, with ctrl+c ignored, when a response ran to tens of thousands of lines
  • Fixed calls a mod makes while it reloads during a plugin hooks worker restart getting past another mod's guard hook that has a .catch; such calls are now refused
  • Fixed plugins whose hooks module nests code thousands of levels deep failing to load or validate with a bare stack-overflow message
  • Fixed claude plugin test passing a session.append hook that removes tool call, tool result or thinking blocks that a real session keeps
  • Fixed Claude not being told it can resume background subagents with SendMessage after a session was killed and resumed a second time
  • Fixed a file being treated as already read after a Bash command such as cat ran without printing it
  • Fixed plugin options named constructor or prototype always reading as their default and never reloading the plugin when edited
  • Fixed a mod's hot reload missing a save made while /reload-plugins or session start was reading the mod's files
  • Fixed the mod hot-reloading question being asked again every turn for the whole session when it is approved without picking an answer
  • Fixed /model, /fast and /output-style saving their setting without asking a plugin's config.set hook
  • Fixed bold text being drawn faint in piped output when it directly follows dim text
  • Fixed replies whose quotes nest deeper every few lines freezing the terminal for seconds and using gigabytes of memory
  • Fixed a mod's hot reload missing a save made within a few milliseconds of its last reload, which left the mod on its old version until the next save
  • Fixed claude mcp serve background Bash results not naming the output file, and its tool description promising a notification that never arrives
  • Fixed an async SessionStart hook's unchanged context being added to the conversation again on every resume
  • Fixed variables a SessionStart hook writes to CLAUDEENVFILE not reaching the Bash tool after an in-app /resume or /branch
  • Fixed a skill's allowed-tools and effort being dropped when the Skill tool finished before the response stream ended, which denied the skill's Bash commands in -p runs
  • Fixed a tampered cache of server-managed settings making a person's own plugin count as organization-managed on machines whose managed settings list or enable plugins
  • Fixed Claude 3 Opus and Claude 3.x Sonnet sessions being offered tool search, which those models reject, where feature flags are unavailable
  • Fixed generated type files being written into a --plugin-dir plugin's folder in -p and SDK sessions; they are now written only where a mod is being developed
  • Fixed text with tabs or bidirectional control characters losing its end at the edge of the screen or drawing over nearby rows
  • Fixed /model saying a Max effort pick was saved as your default for new sessions; Max applies to the current session only
  • Fixed an async hook's JSON output being ignored when it is printed over several lines
  • Fixed the Read tool rejecting calls with an empty pages parameter instead of treating it as omitted
  • Fixed project-scope plugins not loading in VS Code on Windows due to drive-letter casing (anthropics/claude-code#74612)
  • Fixed plugin install and uninstall at project or local scope on Windows missing the install record, or adding a second one, when only the drive letter's case differs
  • Fixed a queued message being lost when pulled back into the prompt with ↑ or Esc just after ←: prompt history now keeps it
  • Fixed mod hot-reloading turning off for the whole session when an SDK host closed its enable question before anyone answered; the question is now asked up to three times
  • Fixed a prompt that a mod's prompt.submit hook rewrote or dropped still being saved as typed to prompt history and to the transcript's queued-prompt records
  • Fixed non-interactive sessions telling you about MCP servers that need authentication when your request doesn't use them
  • Fixed the claude_code.auth OpenTelemetry login event not being emitted on Claude apps gateway sign-in. The event is exported when OpenTelemetry is configured on the machine or the session is already signed in to the gateway
  • Fixed a plugin that adds very large interfaces getting another plugin unloaded when the plugin hooks worker stalls
  • Fixed Edit treating a file as fully read when its contents changed without its modification time advancing
  • Fixed short command output with Windows line endings (CRLF) being drawn on a single line
  • Fixed a stopped scheduled task coming back on resume after a rewind, and a scheduled task being lost on resume after Esc or a rewind following a compaction
  • Fixed the terminal freezing for seconds or minutes while syntax highlighting code with very long lines, long runs of blank lines, or unclosed strings and heredocs
  • Fixed temporary files left under ~/.claude/seed-admin by an interrupted /ultrareview upload never being removed by the retention cleanup
  • Fixed Desktop and SDK sessions refusing to switch back to auto mode until restart after disableAutoMode was removed from settings
  • Fixed claude.ai-synced plugin hooks failing with "Plugin directory does not exist" in long-running sessions after another session synced a plugin update
  • Fixed the prompt sent after a /rewind being lost, and the removed turns coming back, when the session was moved to the background or resumed after being killed
  • Fixed cloud sessions hanging when a mod's session.receive hook asked for permission before passing a message on
  • Fixed macOS background sessions that restart together after an update sometimes running outside the stable app wrapper, so folder-access prompts could reappear
  • Fixed an MCP sign-in or reconnect that finishes late in headless and SDK sessions relisting a server set with setMcpServers() as your own
  • Fixed changing the auto-update channel in /config saving before a plugin's config.set hook was asked
  • macOS: Fixed a file count at session start that could reach other apps' data and raise the "access data from other apps" prompt when a session starts in the home folder or above it
  • Improved token counts behind a Claude apps gateway on Amazon Bedrock, which /context and large file reads use: the gateway now gets them from AWS's CountTokens API instead of a one-token model request. Grant bedrock:CountTokens to use it
  • Improved the Claude apps gateway to log a warning every 30 seconds while its PostgreSQL database is read-only, saying what fails and how to recover
  • Improved the status shown in Remote Control, claude.ai and the desktop app for a session waiting on a permission prompt to name an MCP tool by its server and readable name instead of its mcp_server_tool identifier
  • Improved background requests behind a Claude apps gateway to use Haiku 4.5 instead of the session's model, falling back to the session's model where the gateway does not serve Haiku 4.5
  • Improved how the Claude apps gateway handles models not listed under models: in Amazon Bedrock regions outside AWS's US geography. AWS always refused those requests; the gateway now tries the model in your own region, and a refusal names the model to add
  • Improved headless ratelimitevent usage-limit warnings to say whether the account has extra usage turned on
  • Improved the built-in plugin-authoring skill: it no longer tells a session with no terminal to run terminal commands, and explains sharing a mod only when asked
  • Improved Grep input handling: a search sent with grep's -l, -c or -r flag now runs instead of failing the call
  • Improved claude plugin validate and plugin loading: when a hooks module is refused over a rebound top-level var, the error now names the line that rebinds it, the cause, and a fix
  • Improved the Workflow tool's scriptPath refusal: it now says to pass the script inline via script, the route that works in sessions without a Read tool
  • Improved what Claude is told when a large file it sends fails to upload with no reason given, so it reports the failure instead of shrinking the file
  • Changed MCP tool descriptions the model loads through tool search to be cut at 16,384 characters instead of 2,048
  • Changed subagents to preload at most 32 skills from the skills field, each once; a subagent with the Skill tool can still invoke the rest
  • Changed Ctrl+C at the idle prompt of an attached background session to leave a pending /loop wakeup alone, so pressing it twice detaches and the loop keeps running; press Esc to stop it
  • Changed claude agents stopped with its background service (macOS, or Linux without the service installed): running sessions now stop in about a minute unless it is run again, and a notice says so
  • Changed claude.ai connectors to negotiate MCP protocol version 2026-07-28 by default on installs that fetch no flags; MCPPROTOCOLNEGOTIATION=legacy opts out
  • Changed Artifact pages with no background of their own to show on white instead of off-white
  • Changed what Claude and you read when a mod denies a tool call after the tool ran: it now says the tool ran and a plugin withheld its result
  • Changed tab stops to count from where a text starts instead of from the screen's left edge: an answer indented by 2 has its first stop 8 cells in, where it was 6
  • Changed the Artifact tool's permission prompts with telemetry disabled to the same five questions other installs get, instead of asking before each read of someone else's artifact and each data edit
  • Changed scheduled and Run now routine runs in installs with telemetry disabled to publish new private artifacts, and update your own, without asking, as in other installs
  • Changed toasts from your organization's mods to show ahead of other mods' toasts instead of waiting behind them
  • Changed the Claude apps gateway to start with a warning and serve a desktop policy key its bundled Claude Desktop schema doesn't know, so new Desktop settings need no gateway upgrade
  • Changed WebSocket (ws) MCP servers: a message over 16 MiB is no longer parsed and closes the connection, the limit the other transports already have
  • [VSCode] Added a chat row for files Claude sends you: click a file's name to open it in the editor; Claude's caption shows underneath, and the row stays visible in Focus view
  • [VSCode] Fixed "Fork conversation from here" and Rewind's conversation restore failing with "Message not found in session" after a background agent's activity or one of the panel's own status lines
  • [VSCode] Fixed Ctrl+Shift+Tab, Cmd+Shift+Tab and Alt+Shift+Tab in the chat input also switching the permission mode, and Ctrl+Tab accepting the suggested prompt
  • [VSCode] Fixed keyboard focus bouncing between two Claude views visible at once, which could send typed text to the wrong conversation
  • Self-hosted runner: Changed the runner to stop passing CCRAUTOMODEALLOW, CCRAUTOMODEENVIRONMENT and CCRAUTOMODESOFTDENY into a session's environment
  • Self-hosted runner: Fixed git fetches being cut off while the git server was still reporting progress on a large repository; CLAUDERUNNERFETCHSERVERPROGRESSCAPMS tunes or turns off the wait
  • [Cloud sessions] Fixed a message sent right after unarchiving a cloud session sometimes getting no reply because no container could start for it
  • [Cloud sessions] Fixed some older routines starting their runs without ever giving Claude their saved prompt; those routines now run their prompt again
  • [Cloud sessions] Improved how quickly a cloud session catches up after its connection drops: activity you missed now appears all at once instead of row by row
  • [Cloud sessions] Improved the setup script box in the cloud environment form: it starts taller, grows with your script, and can be resized by dragging
  • [Claude Tag] Changed the settings confirmation cards Claude posts in a Slack channel to stay open for 30 minutes instead of 10
  • [Claude Tag] Changed Claude's notice that a channel shared across Enterprise Grid workspaces uses organization defaults to post only when someone mentions Claude, at most once a month
  • [Claude Tag] Fixed channel links and @-mentions in a forked thread's "Continued from" card showing as raw Slack codes
  • [Claude Tag] Fixed Slack's Working status spinning on under a thread after @Claude !restart had already confirmed the restart
  • [Claude Tag] Fixed another app's or bot's @Claude going unanswered in a busy channel where Claude had stopped reading untagged messages
  • [Claude Tag] Added a confirmation in Claude Tag admin settings before adding a channel manager moves that member to Custom roles, which can remove their other access
  • [Code Review] Fixed Code Review re-reviews saying no issues were found while earlier findings were still open; the comment now says how many remain open
  • [Code Review] Fixed Code Review still skipping a large CLAUDE.md's rules when the pull request edits that file
  • Fixed web searches and agent hook evaluations taking much longer at xhigh and max effort

What's changed
  • Fixed prompt and agent hooks written as instructions (such as "Block commands that...") allowing what they should block
  • Improved how prompt hooks on Stop and SubagentStop written as instructions (such as "Carry on if the build is broken") are judged, so Claude is less likely to stop early

Installation

curl -fsSL https://claude.ai/install.sh | bash
npm install -g @anthropic-ai/claude-code
brew install --cask claude-code
irm https://claude.ai/install.ps1 | iex
$ tail ./comments.log

Comments (1)

Login with GitHub to post a comment
VladoIvankovic
$ user VladoIvankovic
Top 👾