Claude Code 2.1.280
114changes- Add Claude Opus 5.5 as the new default Opus model with a 1M-token context window.
- See and toggle each skill's state and token cost from a new VS Code dialog.
- Keep long-running fullscreen sessions from exiting with an unrecoverable interface error.
- Make Opus the default model on Pro and Team Standard plans, matching other plans.
- Fix conversations failing on every turn with a recurring API role-ordering error.
New features
12Add Claude Opus 5.5 as default Opus
Added Claude Opus 5.5 (claude-opus-5-5), now the default Opus model: 1M context, $4/$20 per Mtok with $0.20/Mtok cache reads
[VSCode] Show skill details in Slash commands
Added each skill's source, token estimate and on/off state to the Slash commands dialog, with a click to change the state, and a typed /skills that opens it
[VSCode] Add a typed /plan command
Added a typed /plan that switches to plan mode, sends a first planning prompt, or shows the session's plan
More changes (9) Fewer changes
Mouse support for more fullscreen lists
Added mouse support to more lists in fullscreen mode: the wheel scrolls the /skills list, and a skill's state options in /plugin can be clicked
Configure the MCP description length cap
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
▤ In the docsHook output size in OpenTelemetry events
Added hook output sizes and the number of oversized outputs saved to a file to the hook_execution_complete OpenTelemetry event
▤ In the docs[VSCode] Add a Status dialog
Added a Status dialog, with a typed /status, showing the session's version, account, model and server details
[VSCode] Add a Sandbox dialog
Added a Sandbox dialog for the sandbox mode, the unsandboxed fallback and excluded commands, opened from the panel menu or by typing /sandbox
[VSCode] Add a Claude in Chrome dialog
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 /chrome
[VSCode] Add Export conversation
Added Export conversation, with a typed /export, to copy or save the conversation as plain text
[Claude Tag] Add Slack Working indicator and Stop
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
[Claude Tag] Notify on guest-driven response changes
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
Improvements
31More changes (30) Fewer changes
Improve /permissions focus and defaults
Improved /permissions: 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
Improve /permissions tab navigation
Improved /permissions tab navigation: the left and right arrow keys and Tab pressed in a rule list now switch tabs without moving focus to the tab bar
Name thinking-mode causes in /cost
Improved /cost cache-miss causes to name thinking mode and thinking display changes
Report unreadable artifact links
Improved the Artifact tool so that when Claude cannot read an artifact link it was given, it tells the user before continuing
Show Esc hint in /install-github-app
Improved /install-github-app: the GitHub CLI check and repository selection steps now show "Esc to cancel"
Add scrollbars to /artifacts and /workflows
Improved the /artifacts and /workflows lists: a scrollbar at the right edge shows how much of a long list is hidden and where you are in it
Simplify workflow progress indicators
Improved the workflow progress tree: running agents and phases now show a dim dot instead of a spinning icon
Clean up /plugin's Add Marketplace form
Improved /plugin'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 /plugin
Remove extra rule in /workflows detail
Improved the /workflows detail view in fullscreen: it no longer draws a second horizontal rule under the pane's divider
Color unlabeled code blocks like inline code
Improved code blocks that don't name a language: they are now colored like inline code, so commands stand out from the surrounding text
Fix /btw reading running tools as failed
Improved /btw 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
Name the hook that timed out
Improved the UserPromptSubmit hook timeout notice and the debug log to name which hook command timed out
Rank filename matches above folder matches
Improved @ file suggestions: a file whose name contains the query now ranks above one that only matches across its folder names
Polish artifact page rendering
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
Block renamed key files in /ultrareview
Improved /ultrareview uploads: renamed copies of key files, such as id_rsa copy or kubeconfig (1).yaml, now also stay on your machine
Explain --debug-file in messaging warning
Improved the cross-session messaging startup warning to explain that --debug-file writes a debug log to a path you choose
▤ In the docsLimit legacy effort levels to old models
Changed an effort level saved before /effort 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
Let /effort override launch-default effort
Changed Opus 4.7, Opus 4.8 and Fable 5 to stop holding their launch-default effort over /effort in -p or the Agent SDK, a project, managed or --settings effortLevel, or a per-model level
Name arrow keys in /autocompact hint
Changed /autocompact's footer hint to name the left and right arrow keys, the keys that adjust other ordered values
Name Space in /fast footer
Changed /fast's footer to name Space as the toggle key
▤ In the docsRestrict runner git hook file access
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:// remotes there now need GIT_ALLOW_PROTOCOL
Block marketplaces that imitate reserved names
Changed plugin marketplaces whose name imitates a reserved marketplace name to be refused when added, and to stop loading if one was already added
Stop agent hooks running as PermissionRequest
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
[VSCode] Mark large pastes in chat
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
[VSCode] Strip invisible characters from prompts
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
▤ In the docs[VSCode] Open new tabs beside your editor
Changed "Open in New Tab" to open Claude beside the editor group you are working in rather than after the last group
[Claude Code on the web] Relocate Routines setting
Changed the admin Routines on/off setting to live under Admin settings > Capabilities > Remote sessions; the Claude Code admin page now links to it
[Claude Code on the web] Save files the app can open
Improved cloud sessions viewed in the Claude app: Claude now saves files meant for you where the app can open them
[Claude Tag] Explain GitHub connection failures
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
[Code Review] Report truncated REVIEW.md instructions
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
Bug fixes
70Fix unrecoverable interface error exits
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
Stop unwanted turns when resuming
Fixed resuming a session with unfinished background agents, shells or workflows starting a model turn on its own before you typed anything
Fix every-turn role-order API error
Fixed conversations failing on every turn with a "role 'system' must precede an 'assistant' message" API error
Stop stray y/n from confirming dialogs
Fixed a stray n closing dialogs and a stray y confirming them; Enter and Esc accept and cancel (bind y/n to confirm:yes/confirm:no in keybindings.json to restore)
Fix symlinked write path approval
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
Fix artifact republish resetting access rules
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
More changes (64) Fewer changes
Fix auto mode retry loop on declines
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
Fix auto mode retries on no answer
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
Fix Write tool validation errors
Fixed Write calls failing validation when a model sends path, file_text, file_content or a stray description instead of file_path and content
Fix double Ctrl+C quitting dialogs
Fixed Ctrl+C or Ctrl+D pressed twice in most dialogs (/model, /effort, /config, /status, /usage, /plugin, /sandbox, /permissions, /artifacts, /mobile, /login, /upgrade, /usage-credits, /install-github-app, /setup-bedrock, /setup-vertex) quitting Claude Code instead of closing the dialog
Fix focus clicks triggering items
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/workflow rows, slash-command links and suggestion dropdowns
Fix dialog text fields losing keystrokes
Fixed text fields in dialogs losing a typed letter, digit or Space to a keybinding on that key
Fix scrambled prompt line on Windows
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
Preserve Persian and Arabic ZWNJ
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
Fix voice dictation stop and cancel
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
Fix cache miss on host-app model switch
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
Fix resumed fork subagent tool caching
Fixed resumed fork subagents rebuilding their tool list instead of re-sending the one they first used, which broke prompt caching for that agent
Hide subagent hand-back preamble
Fixed subagent hand-back messages showing an internal provenance preamble when expanded outside verbose mode
Fix stale plugin commit after update
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
Fix skills wrongly moved to trash
Fixed skills in ~/.claude/skills/ being moved to ~/.claude/skills/.trash/ when a manifest.json in that folder listed their names
Fix feedback survey hover highlight
Fixed the session feedback survey showing no hover highlight on light and ANSI themes
Fix /workflows flashing before opening run
Fixed /workflows briefly showing a one-row list before opening the only run
Fix mouse wheel scroll in selection lists
Fixed the mouse wheel not scrolling selection lists with hidden options (such as /model and /permissions) in fullscreen mode
Distinguish off skills from failed plugins
Fixed a skill you switched off showing the same red X as a plugin that failed to load in /plugin and /skills; off now shows a dim hollow circle
Fix multi-select description indentation
Fixed multi-select option descriptions being indented under the option number instead of under the label
Fix search box border in fullscreen
Fixed the search box in /plugin, /skills and /mcp losing its right border in fullscreen mode
Unify MCP warning icons
Fixed /mcp showing a triangle in the server list but a warning icon in the detail view for the same server; the list, detail views and /plugin now all show the warning icon
Fix Home and End keys in lists
Fixed Home and End doing nothing in the /config settings list and in selection lists such as /model, /memory and permission prompts
Fix PgUp/PgDn wrapping in /skills
Fixed PgUp/PgDn in the /skills menu wrapping past the first or last skill instead of stopping there
Stop Tab from changing config values
Fixed Tab silently changing the selected setting's value in the /config list; it now does nothing there
Fix advisor API error behind proxies
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
Fix crash from malformed MCP notice
Fixed a session failing on every turn and /compact when its saved history held a malformed notice about MCP tools that could not be loaded
Fix crash resuming malformed transcripts
Fixed a crash when resuming a session whose saved transcript holds a malformed system message or a memory-saved notice without its file list
Fix hang on named-pipe settings files
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
Fix /config crash from legacy values
Fixed /config crashing and some on/off preferences being misread when a preference that has moved to settings.json still holds a value like null or "false" in ~/.claude.json
Fix lost messages to finishing subagents
Fixed messages sent to a background subagent being silently lost in headless and SDK sessions when the subagent was finishing its turn
Fix subagent reports lost to compaction
Fixed a finished subagent's report being lost when the conversation that launched it was compacted before the report was read
Fix background subagent LSP tool access
Fixed background subagents being unable to use the LSP tool when an LSP plugin is active
Fix false failures on benign exits
Fixed background shell tasks reporting benign non-zero exits (e.g. grep with no matches) as failures
Fix background session failures from NUL
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
Reduce Ctrl+C presses to exit
Fixed Ctrl+C needing three or four presses to exit while background subagents are running; two presses now exit
Preserve IDE selection on prompt return
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
Fix stashed shell prompts losing mode
Fixed a ! shell-mode prompt stashed with Ctrl+S coming back as a plain prompt when restored, and / listing file paths right after stashing one
Fix blank screen in claude agents
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
Fix re-added MCP servers needing auth
Fixed an MCP server re-added under the same name after claude mcp remove still showing as needing authentication instead of reconnecting
Fix marketplace auto-update credential handling
Fixed background plugin marketplace auto-update ignoring git credential helpers, so private-repo marketplaces were re-cloned every run or never updated
Fix plugin update losing commit info
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
Explain Artifact tool disappearing
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
Fix /ultrareview status after stopped reviews
Fixed /ultrareview 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
Fix stale context usage after compact
Fixed the Claude app showing a missing or stale context usage figure for Remote Control and cloud sessions right after /compact or /clear
Fix diff view dropping committed files
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
Fix auth failures after token rotation
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
Fix truncated memory writes in Cowork
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
Fix lifecycle-hook commit signing
Self-hosted runner: Fixed lifecycle-hook commits failing to sign under --configure-git
Fix cleanup deleting relocated folders
Windows: Fixed background cleanup deleting a directory symlink or junction used to relocate ~/.claude/session-env, image-cache or another cleaned-up folder
Fix lost finish signal at runner retire
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
Revert ctrl+l clearing the transcript
Reverted ctrl+l / cmd+k in fullscreen mode clearing the transcript view (added in 2.1.260); they redraw the screen again
[VSCode] Fix stale effort chip
Fixed the effort chip showing a stale saved effort level instead of the level the session runs at
[VSCode] Fix startup hang from Python extension
Fixed Claude Code never starting when the Python extension hangs while activating; it now starts after 60 seconds without the Python environment
[VSCode] Add auto mode to plan approval
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
[VSCode] Fix arrow-key nav after archiving
Fixed arrow-key navigation in the session list stopping after archiving or unarchiving a session from the keyboard
[VSCode] Hide paste markers on reopen
Fixed paste marker lines showing in your own messages after reopening a session
[Claude Code on the web] Fix GHES token expiry
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
[Claude Code on the web] Fix routines using stale edits
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
[Claude Code on the web] Disable broken external file links
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
[Claude Code on the web] Fix stale prompts blocking retries
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
[Claude Tag] Fix routines failing on Enterprise Grid
Fixed scheduled routines silently failing to run in Slack workspaces that were connected to Claude before the workspace joined its Enterprise Grid
[Claude Tag] Retry file scans on outage
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
[Claude Tag] Fix bullets starting with symbols
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
[Claude Tag] Name the failed setup script
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