What's changed
- Added agent view (Research Preview): a single list of every Claude Code session — running, blocked on you, or done. Run
claude agentsto get started. See https://code.claude.com/docs/en/agent-view - Added
/goalcommand: set a completion condition and Claude keeps working across turns until it's met. Works in interactive,-p, and Remote Control. Shows live elapsed/turns/tokens as an overlay panel - Added
/scroll-speedcommand to tune mouse wheel scroll speed with a live preview - Added
claude plugin details <name>to show a plugin's component inventory and projected per-session token cost - Added transcript view navigation:
?for keyboard shortcuts,{/}to jump between user prompts,vto toggle shortcut panel - Added hook
args: string[]field (exec form) that spawns the command directly without a shell, so path placeholders never need quoting - Added hook
continueOnBlockconfig option forPostToolUse— set totrueto feed the hook's rejection reason back to Claude and continue the turn - MCP stdio servers now receive
CLAUDE_PROJECT_DIRin their environment, matching hooks. Plugin configs can reference${CLAUDE_PROJECT_DIR}in commands - Compaction prompt now asks the model to preserve sensitive user instructions
/mcpReconnect now picks up.mcp.jsonedits without a restart, and shows the HTTP status and URL when reconnecting fails/context allper-skill token estimates now account for the model's tokenizer and show rounded valuesclaude plugin install <name>@<marketplace>now auto-refreshes the marketplace and retries before reporting a plugin as not found/plugininstalled-plugin details now show hook event names and MCP server names cleanly/contextnow shows the providing plugin's name for plugin-sourced skills- Remote MCP server reconnect retry on transient failures is now enabled for all users
- API requests from subagents now carry
x-claude-code-agent-id/x-claude-code-parent-agent-idheaders, andclaude_code.llm_requestOTEL spans includeagent_id/parent_agent_idattributes - Remote Control,
/schedule, claude.ai MCP connectors, and notification preferences are now disabled whenANTHROPIC_API_KEY/apiKeyHelper/ANTHROPIC_AUTH_TOKENis set, even if a Claude.ai login also exists. Unset the API key to use these features - Fixed a deadlock where expired credentials and the
forceRemoteSettingsRefreshpolicy setting blockedclaude auth login/logout/statuswith no way to recover - Fixed
autoAllowBashIfSandboxednot auto-approving commands with shell expansions like$VARand$(cmd) - Fixed a bug where a hook writing to the terminal could corrupt an on-screen interactive prompt; hooks now run without terminal access
- Fixed unbounded memory growth when an HTTP/SSE MCP server streams non-protocol data — response bodies now capped at 16 MB per SSE frame
- Fixed
Skill(name *)permission rules — the wildcard form now works as a prefix match, matchingBash(ls *)behavior - Fixed settings hot-reload not detecting edits to symlinked
~/.claude/settings.json - Fixed plugin details failing to load when the marketplace key differs from the manifest name
- Fixed
/modelpicker "Default" row not reflectingANTHROPIC_DEFAULT_OPUS_MODEL/ANTHROPIC_DEFAULT_SONNET_MODELoverrides - Fixed spurious "stream idle timeout" 5 minutes after a response completed, caused by the watchdog timer not being cleared on stream cancellation
- Fixed silent
exit 1when 10+ MCP servers are configured and the cache directory is unwritable — the error message now includes the underlying cause - Fixed a typing cursor blinking on tab names, list pointers, and select rows in dialogs
- Fixed transcript view letter shortcuts not working after mouse click
- Fixed Bash-mode up-arrow history repeating the first entry and clobbering the in-progress draft
- Fixed pasting or dropping multiple images only inserting the last one
- Fixed hyperlinks using unreadable dark navy on dark themes — they now adapt to the active theme
- Fixed model picker showing a redundant "Current model" row for third-party users whose model is set to the
opusalias - Fixed legacy Opus picker entry on PAYG 3P providers resolving to the same model as the default entry
- Fixed mouse wheel scrolling speed in Cursor and VS Code 1.92–1.104; the trackpad now scrolls at a steady rate and the mouse wheel keeps ~3 lines per notch
- Fixed scroll behavior in Windows Terminal and VS Code when attached to background sessions
- Fixed MCP resources from disconnected servers lingering in
@server:autocomplete - Fixed two-file diff snippets over-reporting the number of truncated lines by one
- Fixed Grep results not relativizing Windows drive-letter paths and count mode reporting wrong totals for single-file paths
- Fixed border-embedded text overflowing on CJK/emoji due to visual cell width miscalculation
- Fixed fuzzy-match highlighting splitting emoji and astral-plane characters mid-pair
- Fixed skill argument names containing regex metacharacters breaking argument substitution
- Fixed ProgressBar rendering a full block for an almost-full fractional cell
- Fixed task polling and
fs.watchbeing resurrected when the last subscriber leaves while a fetch is in flight - Fixed plugin dependency resolution leaving a stale count when the manifest name differs from the source identifier
- Fixed Insights Time-of-Day chart skewing when a session has an unparseable timestamp
- Fixed keybindings using only the cmd/super/win modifier being flagged as unparseable
- Fixed
claude_code.active_time.totalOpenTelemetry metric not being emitted in--printmode - Fixed
claude plugin updatenot preserving cross-plugin symlinks inside a marketplace - [VSCode] Press Cmd/Ctrl+Shift+T to reopen the most recently closed session tab, configurable via
claudeCode.enableReopenClosedSessionShortcut