Anthropic's AI coding assistant for the terminal
Complete changelog with every version since the first release.
May 27, 2026
/code-review --fix now applies review findings to your working tree after the review, surfacing reuse, simplification, and efficiency suggestions; /simplify now invokes /code-review --fixdisallowed-tools in frontmatter to remove tools from the model while the skill is active/reload-skills command to re-scan skill directories without restarting the sessionSessionStart hooks can now return reloadSkills: true to re-scan skill directories, making skills installed by the hook available in the same sessionSessionStart hooks can now set the session title via hookSpecificOutput.sessionTitle on startup and resumeMessageDisplay hook event that lets hooks transform or hide assistant message text as it is displayedpluginSuggestionMarketplaces managed setting: admins can allowlist org marketplaces whose plugins may be suggested via context-aware tipsclaude plugin marketplace remove now accepts --scope user|project|local for symmetry with marketplace add, install, and uninstall--fallback-model for the rest of the session when the primary model is not found, instead of failing every request/ in NORMAL mode now opens reverse history search (like Ctrl+R), matching bash/zsh vi-mode/usage breakdown now includes large session files; files are scanned with a streaming read so memory usage stays flatCtrl+O shows the full thinking)app.entrypoint, opt-in via OTEL_METRICS_INCLUDE_ENTRYPOINT=true)/doctor reporting "marketplace not found" or "plugin not found" for stale enabledPlugins entries referencing removed marketplaces or dropped plugins--bare or with attachments disabledclaude agents when accepting a stale permission prompt after a subagent was cancelledcache_creation_input_tokens reporting as 0 in transcript and result usage when the API reports cache writes only via the nested cache_creation breakdownMay 22, 2026
/usage now shows a per-category breakdown of what's driving your limits usage — skills, subagents, plugins, and per-MCP-server cost/diff detail view can now be scrolled with the keyboard (arrows, j/k, PgUp/PgDn, Space, Home/End)- [ ] todo / - [x] done) instead of plain bulletsallowAllClaudeAiMcps managed setting to load claude.ai cloud MCP connectors alongside managed-mcp.jsoncd functions (cd.., cd\, cd~, X:) changed the working directory undetected, letting a later command read outside the workspace.git directory (with hooks/ and config denied)PowerShell(dotnet.exe build *)) not pre-approving native executables and scriptsPWD/OLDPWD/DIRSTACK across cd/pushd/popdfind in the Bash tool exhausting the macOS system file/vnode table and crashing the host on large directory trees/ultraplan and remote session creation failing with "Could not capture uncommitted changes" when the working tree has no real changesotelHeadersHelper failing silently when the script path contains spaces; helper failures are now reported in /doctor and the debug logname: differs from its directory basename/effort setting instead of the effort level applied by skill/agent effort: frontmatter/config exit summary reporting phantom changes to auto-compact and theme when toggling unrelated settings/insights crashing when cached session-meta files are missing optional fieldsclaude --resume/feedback reports to include the conversation that happened before context compaction, making issues from earlier in long sessions easier to triageMay 21, 2026
Ctrl+T in claude agents) now stay alive when idle, are restarted in place to apply Claude Code updates, and are shed under memory pressure only after non-pinned sessions/simplify to /code-review. It now reports correctness bugs at a chosen effort level (e.g., /code-review high); pass --comment to post findings as inline GitHub PR comments. The old cleanup-and-fix behavior has been removedforceLoginOrgUUID and forceLoginMethod managed-settings) not being enforced against third-party-provider and API-key sessions& in ! command output displaying as &, which broke copy-pasting URLs from commands like gcloud auth login on headless machines/help rendering a broken tab header and showing only one command per page on small terminals when not in fullscreen modeAgent(...) types in tools: frontmatter dropping all but the last entryif conditions like PowerShell(git push*) never matching — only PowerShell(*) workedpwsh is installed via winget or the Microsoft Store/effort opening with the slider on the wrong level — it now starts at your current effort/background refusing sessions whose only typed input was a skill or custom slash commandAskUserQuestion when the user or a skill explicitly relies on it; the auto-mode classifier now sees the user's answers as intent signal/theme "New custom theme" and color editor dialogs not responding to Esc[Pasted text #N] placeholder instead of the actual contentclaude plugin details and /plugin being doubled when a plugin's manifest listed paths overlapping its default directoriesCLAUDE_CODE_SUBAGENT_MODEL not applying to teammate processes spawned by agent teams/plugin, /status, /mobile, /sandbox, and /permissions menusMay 19, 2026
claude agents --json to list live Claude sessions as JSON for scripting (tmux-resurrect, status bars, session pickers)agent_id and parent_agent_id attributes to claude_code.tool OTEL spans, and fixed trace parenting so background subagent spans nest under the dispatching Agent tool span/plugin Discover and Browse screens now show a plugin's commands, agents, skills, hooks, and MCP/LSP servers before installationclaude agents terminal tab title now shows the awaiting-input count so an alt-tabbed window tells you when an agent needs attentionbackground_tasks and session_crons fields; as the command separatorgh pr create and other PR-state-changing commands run in-session/review using a deprecated projectCards GraphQL query that errored on repos with Classic Projectsclaude plugin validate not flagging skills: entries that point at a file instead of a directory — the error now suggests the parent directorycontext: fork could repeatedly re-invoke itself instead of runningMay 19, 2026
/resume support for background sessions — sessions started via claude --bg or agent view now appear alongside interactive ones, marked with bg/plugin browse and discover panes now show when a plugin was last updated/model now changes the model for the current session only; press d in the model picker to set a default for new sessions/extra-usage is now /usage-credits (old name still works)api.anthropic.com is unreachable (captive portal, firewall, VPN issues) — side-channel API calls now time out after 15shead/tail file views now satisfy the read-before-edit check, and a "no matches" result (exit code 1) from egrep, fgrep, git grep, or git diff is no longer reported as a command failure/branch failing with "No conversation to branch" after entering a worktree or in some background sessionsapplyFlagSettings after startup/model choice/model picker (regression in v2.1.129)forceLoginMethod and forceLoginOrgUUID settools/list responses only returning the first page, silently dropping tools.md files no longer trigger skill reloads.claude/settings.json now show an actionable claude plugin install hintclaude mcp list silently reporting no servers when .mcp.json can't be parsed (e.g. using VS Code's "servers" key instead of "mcpServers") — now shows configuration errorsANTHROPIC_BASE_URL setups and Bedrock Mantle not using Haiku — now falls back correctly when a first-party API key is configured or no Haiku model is setclaude agents leaving the list unresponsive to keyboard input/bg and ←-detach now preserve directories added via /add-dirclaude respawn <id> on a stopped background session showing "stopped" instead of running/resume picker not showing sessions forked from a background sessionclaude agents or running claude logs <id> hanging when the background service is unresponsive — now times out after 10s with a recovery hintclaude agents attached sessions rendering as plain text instead of clickable hyperlinksspinnerVerbs applying to the post-turn duration message — past-tense built-ins like "Worked for 5s" are restored thereclaude agents / --bg rejection messages now name the specific gate (non-TTY, env var, or setting) instead of a generic messageclaude --bg --name <label> now echoes the name in the post-spawn confirmationclaude agents: renaming a background session with Ctrl+R now updates the attached session's banner immediatelyWorktreeCreate hooks configuredCLAUDE_CODE_PLUGIN_PREFER_HTTPS/plugin now returns to the Installed list after enabling, disabling, or uninstalling a plugin/doctor now shows an exec-form example when a command hook is missing the command field/doctor for the full breakdownMay 15, 2026
claude plugin disable now refuses when another enabled plugin depends on the target (with a copy-pasteable disable-chain hint), and claude plugin enable force-enables transitive dependencies/plugin marketplace browse paneworktree.bgIsolation: "none" setting to let background sessions edit the working copy directly without EnterWorktree, for repos where worktrees are impractical-ExecutionPolicy Bypass. Opt out with CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1.credentials.json with a non-array scopes value hanging the CLI on startup or silently aborting OAuth token refreshclaude agents on Windows Terminal and WSLCLAUDE_CODE_STOP_HOOK_BLOCK_CAP)/loop wakeup while Claude is idle between iterations/goal evaluator firing while background shells or delegated subagents are still runningNO_COLOR/FORCE_COLOR in settings.json env stripping Claude Code's own UI colors — they now apply to subprocesses only/bg without a prompt sending "continue" to the forked session — the fork now waits for input--agent <name> not finding plugin-contributed agents without the plugin: prefixCLAUDE_CODE_USE_POWERSHELL_TOOL=0.claude agents now accepts --add-dir, --settings, --mcp-config, and --plugin-dir and applies them to the dashboard and to background sessions dispatched from itclaude agents accepts --permission-mode, --model, --effort, and --dangerously-skip-permissions to set defaults for sessions dispatched from the viewclaude --bg --dangerously-skip-permissions now persists across retire→wakeclaude agentsrm -rf when git worktree remove fails, preventing loss of gitignored or in-progress files~/Documents, ~/Desktop, or ~/Downloads, even with Full Disk Access granted./bg now preserves --mcp-config, --settings, --add-dir, --plugin-dir, and --strict-mcp-config, so backgrounded sessions keep their MCP servers and settings across respawn.claude agents now honor permissions.defaultMode from settings.json (was previously overridden to auto mode)claude agents while a response was streaming could leave the agents list unresponsive to all input/bg and ←-detach now preserve --fallback-model, so backgrounded workers degrade to the fallback model on overload instead of hard-failing./bg and ←-detach now preserve --allow-dangerously-skip-permissions, so the forked worker keeps bypass-permissions available in its Shift+Tab cycle.~/.local/bin/claude launcher is missing or non-executableclaude agents --allow-dangerously-skip-permissions defaulting dispatched sessions to bypass mode instead of making it available in the permission cycleMay 14, 2026
claude agents flags: --add-dir, --settings, --mcp-config, --plugin-dir, --permission-mode, --model, --effort, and --dangerously-skip-permissions to configure dispatched background sessionsCLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1 to pin fast mode to Opus 4.6SKILL.md and no skills/ subdirectory are now surfaced as a skill/plugin details pane and claude plugin details now show LSP servers a plugin provides/web-setup warns before replacing an existing GitHub App connectionMCP_TOOL_TIMEOUT not raising the per-request fetch timeout for remote HTTP and SSE MCP servers, which capped tool calls at 60 seconds regardless of the configured valuebrew upgrade), causing dispatched agents to crash-loop on the deleted pathclaude agents session — the background worker's headless browser shim no longer applies while attachedclaude agents "v to open in editor" using the daemon's default editor instead of your shell's $EDITOR/$VISUALclaude agents deadlocking on Windows with network-drive working directories; Ctrl+C now works during startupclaude agents session from Apple Terminal or other 256-color-only terminalsclaude --bg --dangerously-skip-permissions not persisting across retire/wakeset_model requests from remote clients injecting duplicate /model breadcrumbs into the transcriptskills: ["./"] showing a false "path escapes plugin directory" error/plugin browse pane showing "0 installs" for newly published pluginsplugin.json key that shadows a default folderSessionStart/Setup/SubagentStart now shows a clear "use a command-type hook instead" error/model claude-sonnet-4-20250514 suggestion from Usage Policy refusal messagesMay 13, 2026
terminalSequence field to hook JSON output so hooks can emit desktop notifications, window titles, and bells without a controlling terminalCLAUDE_CODE_PLUGIN_PREFER_HTTPS to clone GitHub plugin sources over HTTPS instead of SSH, for environments without a GitHub SSH keyANTHROPIC_WORKSPACE_ID environment variable for workload identity federation — scopes the minted token to a specific workspace when the federation rule covers more than oneclaude agents --cwd <path> to scope the session list to a directory/feedback can now include recent sessions (last 24 hours or 7 days) for issues spanning more than the current sessionpermissions.ask rule caused the prompt/bg or ←← now preserve the current permission mode instead of reverting to defaultclaude agents: agents that finish work but leave a background shell running now move to Completed instead of staying under Working→/Tab switch tabs, ↑ moves to the tab strip, and tab headers and search box are clickable in fullscreen modeANTHROPIC_SMALL_FAST_MODEL override is set — now falls back to the main-loop modelclaude daemon status and /doctor on Windows throwing when the daemon pipe key file is locked or unreadable — now shows the underlying error instead of an opaque failureclaude agents showing the agent-type list instead of the dashboard when launched through a wrapper that adds flagsclaude agents opening a crashed session firing redundant dispatches when the working directory was deletedANTHROPIC_BASE_URL gateway not getting auto-named — the namer now uses the main model when no Haiku model is configured/model in one session silently changing the autocompact threshold in other concurrent sessionstranscript_path after EnterWorktree switches the working directorychat:submit keybindings (e.g. meta+enter, ctrl+enter) not working when enter is rebound to chat:newlinespinnerVerbs setting not being honored in turn-completion messagesx on a selected subagent in the agent panel typing into the prompt instead of stopping the agent/tui silently dropping running background shells and subagents — now refuses and asks to wait for them to finish/mcp server list not keeping the focused server visible in short terminals in fullscreen mode/feedback bundles producing invalid JSON for quoted values like session IDsapiKeyHelper/ANTHROPIC_AUTH_TOKEN from host managed-settingsclaude plugin install failing for plugins whose marketplace ref no longer exists upstream when a sha is also pinned.mcp.json.mcp.json entries no longer drop other MCP servers${var%pattern}) being incorrectly flagged as missing environment variables/loginvoice:pushToTalk keybindings and "space": null unbinds being silently ignoredawsCredentialExport now always runs when configured instead of being skipped when ambient AWS credentials resolve, fixing auth for cross-account accesssox libsox-fmt-pulse for WSLg usersclaude agents: launching a session no longer fails when the pre-warmed background worker is unhealthy — now falls back to a fresh launchclaude agents no longer shows empty placeholder sessions left over from backgrounding a fresh REPL, and shows onboarding text when entered via ← with no other agents← are now automatically retired by the daemon after 5 minutesMay 12, 2026
subagent_type matching to accept case- and separator-insensitive values (e.g. "Code Reviewer" resolves to code-reviewer)/goal silently hanging when disableAllHooks or allowManagedHooksOnly is set — now shows a clear message instead of an indicator that never resolvesConfigChange hooksclaude --bg failing with "connection dropped mid-request" when the background service was about to idle-exitextraKnownMarketplaces auto-update policy not being persisted to known_marketplaces.json/loop scheduling redundant wakeups to poll for background tasks that already notify on completiongh) triggered synchronous where.exe re-spawns on every checkRead tool calls failing validation when offset is passed as a whitespace-padded or +-prefixed stringcommands/) is silently ignored because plugin.json sets the matching key. Shown in /doctor, claude plugin list, and /plugin.May 11, 2026
claude agents to get started. See https://code.claude.com/docs/en/agent-view/goal command: 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/scroll-speed command to tune mouse wheel scroll speed with a live previewclaude plugin details <name> to show a plugin's component inventory and projected per-session token cost? for keyboard shortcuts, {/} to jump between user prompts, v to toggle shortcut panelargs: string[] field (exec form) that spawns the command directly without a shell, so path placeholders never need quotingcontinueOnBlock config option for PostToolUse — set to true to feed the hook's rejection reason back to Claude and continue the turnCLAUDE_PROJECT_DIR in their environment, matching hooks. Plugin configs can reference ${CLAUDE_PROJECT_DIR} in commands/mcp Reconnect now picks up .mcp.json edits without a restart, and shows the HTTP status and URL when reconnecting fails/context all per-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/plugin installed-plugin details now show hook event names and MCP server names cleanly/context now shows the providing plugin's name for plugin-sourced skillsx-claude-code-agent-id / x-claude-code-parent-agent-id headers, and claude_code.llm_request OTEL spans include agent_id / parent_agent_id attributes/schedule, claude.ai MCP connectors, and notification preferences are now disabled when ANTHROPIC_API_KEY / apiKeyHelper / ANTHROPIC_AUTH_TOKEN is set, even if a Claude.ai login also exists. Unset the API key to use these featuresforceRemoteSettingsRefresh policy setting blocked claude auth login/logout/status with no way to recoverautoAllowBashIfSandboxed not auto-approving commands with shell expansions like $VAR and $(cmd)Skill(name *) permission rules — the wildcard form now works as a prefix match, matching Bash(ls *) behavior~/.claude/settings.json/model picker "Default" row not reflecting ANTHROPIC_DEFAULT_OPUS_MODEL/ANTHROPIC_DEFAULT_SONNET_MODEL overridesexit 1 when 10+ MCP servers are configured and the cache directory is unwritable — the error message now includes the underlying causeopus alias@server: autocompletefs.watch being resurrected when the last subscriber leaves while a fetch is in flightclaude_code.active_time.total OpenTelemetry metric not being emitted in --print modeclaude plugin update not preserving cross-plugin symlinks inside a marketplaceclaudeCode.enableReopenClosedSessionShortcutMay 8, 2026
CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL to re-enable the session quality survey for enterprises capturing responses through OpenTelemetrysettings.autoMode.hard_deny for auto mode classifier rules that block unconditionally regardless of user intent or allow exceptions.mcp.json, plugins, and claude.ai connectors silently disappearing after /clear in the VS Code extension, JetBrains plugin, and Agent SDK--resume / --continue not finding sessions when the project path contains underscoresEdit(...) allow rule existsStop/UserPromptSubmit hooks failing when cache cleanup deletes a version still in use by a running session@ file picker not matching files created mid-session in small non-git directories@-mention file picker not finding files in directories with more than 100 entries/usage weekly reset showing time of day instead of the calendar date/insights crash when session history contains tool calls with malformed input fieldsskills entry in plugin.json hiding the plugin's default skills/ directory, and listing a file path now shows an error instead of failing silentlyCLAUDE_CONFIG_DIRCLAUDE_ENV_FILE SessionStart hooks going stale after /resume or /clear/branch saving a multi-line session title when given a pasted multi-line name/install-github-app, /desktop, /resume, and /web-setup/doctor MCP schema errors not naming the missing field or showing the source file path/myplugin review) not resolving to their namespaced formAskUserQuestion discarding multi-select answers when supplied as an array/clear <name> not labeling the cleared session for /resumeCronList output missing qualifiers and the scheduled prompt/release-notes getting stuck on an old version after a failed changelog refresh/mcp server list not scrolling when there are more servers than fit in the terminalautoScrollEnabled: falsekeybindings.json/settings language change being reverted on Escape after confirming/terminal-setup only appearing in autocomplete on exact name match instead of partial prefixesAskUserQuestion dialog erasing the question text--worktree collides with an existing or stale worktreed (matching delete elsewhere) instead of r which collided with retryMay 7, 2026
worktree.baseRef setting (fresh | head) to choose whether --worktree, EnterWorktree, and agent-isolation worktrees branch from origin/<default> or local HEAD. Note: the default fresh changes EnterWorktree's base back to origin/<default> (it has been local HEAD since 2.1.128) — set worktree.baseRef: "head" to keep unpushed commits in new worktreessandbox.bwrapPath and sandbox.socatPath managed settings (Linux/WSL) to specify custom bubblewrap and socat binary locationsparentSettingsBehavior admin-tier key ('first-wins' | 'merge') to let admins opt SDK managedSettings (parent tier) into the policy mergeeffort.level JSON input field and the $CLAUDE_EFFORT environment variable, and Bash tool commands can read $CLAUDE_EFFORTEdit/Write allow rules scoped to a drive root (C:\) or POSIX / matching incorrectly and always promptingECOMPROMISED) when a history or session-log file lock is compromised by clock skew or slow diskHTTP(S)_PROXY / NO_PROXY / mTLS not being respected for the full MCP OAuth flow including discovery, dynamic client registration, token exchange, and token refresh--add-dir / SDK additionalDirectories/effort in one session unexpectedly changing the effort level of other concurrent sessions, and a related issue where an IDE effort change could be silently droppedclaude --help now lists --remote-control alongside --remote-control-session-name-prefixclaudeCode.claudeProcessWrapper failing with "Unsupported platform" when the extension build doesn't bundle a Claude binaryMay 6, 2026
CLAUDE_CODE_SESSION_ID environment variable to the Bash tool subprocess environment, matching the session_id passed to hooksCLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 env var to opt out of the fullscreen alternate-screen renderer and keep the conversation in the terminal's native scrollbackkill -INT) not running graceful shutdown — terminal modes are now restored and the --resume hint is printed instead of an abrupt exit--resume failing with no low surrogate in string when a tool error truncation split an emoji; pre-corrupted sessions are sanitized on load--permission-mode flag being ignored when resuming a plan-mode session with -p --continue/--resume, and plan mode not being re-applied after ExitPlanMode within the same sessionfg until the next keystroke or stream output/ silently swallowing the input or triggering an unknown-command reply/usage Ctrl+S hanging when copying the stats screenshot to the clipboard on Linux/X11/terminal-setup showing a contradictory error in Windows Terminal — Shift+Enter is natively supported there/effort picker not reflecting the CLAUDE_CODE_EFFORT_LEVEL env var override/status showing the wrong default model for some userscontext_window token counts reflecting cumulative session totals instead of current context usageclaude agentstools/list silently showing 0 tools — they now retry once and show "connected · tools fetch failed" in /mcp-p mode retrying non-transient 4xx connection failures/login, /upgrade, /extra-usage dialog spacing/tui fullscreen startup banner to describe additional renderer benefits (lower memory usage, mouse support, auto-copy on select)ENABLE_PROMPT_CACHING_1H is setMay 6, 2026
--plugin-url <url> flag to fetch a plugin .zip archive from a URL for the current sessionCLAUDE_CODE_FORCE_SYNC_OUTPUT=1 env var to force-enable synchronized output on terminals that auto-detection misses (e.g. Emacs eat)CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE: when set on Homebrew or WinGet installations, Claude Code runs the upgrade command in the background and prompts to restartthemes and monitors should now be declared under "experimental": { ... }. Top-level declarations still work but claude plugin validate will warn/v1/models discovery for the /model picker is now opt-in via CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 (was automatic in 2.1.126–2.1.128)ANTHROPIC_BASE_URL gateway) no longer see spinner tips pointing at first-party Anthropic surfacesskillOverrides setting now works: off hides from model and /, user-invocable-only hides from model only, name-only collapses descriptionclaude_code.pull_request.count OTel metric now counts PRs/MRs created via MCP tools, not just shell commands/clear not resetting the terminal tab title after a conversation/rename disappearing while a permission or other dialog is active/context dumping its rendered ASCII visualization grid into the conversation, wasting ~1.6k tokens per call/agents Library list arrow-key navigation: the highlighted agent now stays visible when the list exceeds the viewport/branch success message not including the new branch's session id for /resumeuser:inference scope/clear or compaction when changing /effort or /modelBash(mkdir *), Bash(touch *) and similar allow rules not being honored for in-project pathsdeniedMcpServers patterns with a *:// scheme wildcard not matching mixed-case hostnames--debug during voice mode/clear not clearing the conversation context and displayed transcriptMay 4, 2026
/color (no args) now picks a random session color/mcp now shows the tool count for connected servers and flags servers that connected with 0 tools--plugin-dir now accepts .zip plugin archives in addition to directories--channels now works with console (API key) authentication — console orgs with managed settings must set channelsEnabled: true to enable/model picker: collapsed duplicate Opus 4.7 entries, and current Opus now shows as "Opus" instead of "Opus 4.7"OTEL_* environment variables, so OTEL-instrumented apps run via the Bash tool no longer pick up the CLI's own OTLP endpointworkspace is now a reserved server name — existing servers with that name will be skipped with a warninglocalSettings suggestion for Bash permission prompts, so "Always allow" writes to .claude/settings.local.jsonEnterWorktree now creates the new branch from local HEAD as documented, instead of origin/<default-branch> — unpushed commits are no longer dropped/compact, or run with --debug)/exit in Kitty and other terminals that interpret OSC 9 as a notificationclaude -p via stdin/plugin Components panel showing "Marketplace 'inline' not found" for plugins loaded via --plugin-dir/config stranding focus — the tab header now stays focused so arrows and Esc keep workinglabel (url) instead of just the URL/fast on 3P providers fuzzy-matching to an unrelated skill instead of showing "not available"global.* instead of the region-appropriate prefixSpace in NORMAL mode now moves the cursor right, matching standard vi/vim behavior/rename without args failing on resumed sessions whose last entry is a compact boundary--resume/--continueinstalled_plugins.json entries pointing at deleted cache directories polluting PATHCLAUDE_CODE_SHELL_PREFIX is set and an argument contains spaces or shell metacharacterscache_creation reduction)/plugin update never detecting new versions of npm-sourced plugins--output-format stream-json: init.plugin_errors now includes --plugin-dir load failures in addition to dependency demotionsMay 1, 2026
/model picker now lists models from your gateway's /v1/models endpoint when ANTHROPIC_BASE_URL points at an Anthropic-compatible gatewayclaude project purge [path] to delete all Claude Code state for a project (transcripts, tasks, file history, config entry) — supports --dry-run, -y/--yes, -i/--interactive, and --all--dangerously-skip-permissions now bypasses prompts for writes to .claude/, .git/, .vscode/, shell config files, and other previously-protected paths (catastrophic removal commands still prompt as a safety net)claude auth login now accepts the OAuth code pasted into the terminal when the browser callback can't reach localhost (WSL2, SSH, containers)claude_code.skill_activated OpenTelemetry event now fires for user-typed slash commands and carries a new invocation_trigger attribute ("user-slash", "claude-proactive", or "nested-skill")CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST) no longer auto-disable analytics on Bedrock/Vertex/Foundry.NET global tool is now detectedallowManagedDomainsOnly / allowManagedReadPathsOnly being ignored when a higher-priority managed-settings source lacked a sandbox blockCtrl+L clearing the prompt input — it now only forces a screen redraw, matching readline behaviorcontext: fork and other subagents on their first turn--channels/plugin Uninstall reporting "Enabled" instead of "Uninstalled"/remote-control retries appearing stuck on "connecting…" — each retry now shows its result-- (e.g. git diff -- file) is no longer mis-flagged as the --% stop-parsing tokenApril 28, 2026
ANTHROPIC_BEDROCK_SERVICE_TIER environment variable to select a Bedrock service tier (default, flex, or priority), sent as the X-Amzn-Bedrock-Service-Tier header/resume search box now finds the session that created that PR (GitHub, GitHub Enterprise, GitLab, and Bitbucket)/mcp now shows claude.ai connectors hidden by a manually-added server with the same URL, with a hint to remove the duplicate/mcp message shown when an MCP server is still unauthorized after the browser sign-in flowapi_request/api_error log events are now emitted as numbers, not stringsclaude_code.at_mention log event for @-mention resolution/branch producing forks that fail with "tool_use ids were found without tool_result blocks" when the source session contained entries from rewound timelines/model not showing the Effort option for Bedrock application inference profile ARNs, and those ARNs not receiving output_config.effortinvalid_request_error: output_config: Extra inputs are not permitted on session-title generation and other structured-output queriescount_tokens endpoint returning 400 errors for users behind proxy gatewaysspinnerTipsOverride.excludeDefault not suppressing the time-based spinner tips!exit / !quit in bash mode terminating the CLI instead of running as a shell commandtmux -CC control pipes and pause the terminalsettings.json no longer invalidating the entire fileApril 28, 2026
alwaysLoad option to MCP server config — when true, all tools from that server skip tool-search deferral and are always availableclaude plugin prune to remove orphaned auto-installed plugin dependencies; plugin uninstall --prune cascades/skills so you can find a skill in long lists without scrollinghookSpecificOutput.updatedToolOutput (previously MCP-only)claude -p: CLAUDE_CODE_FORK_SUBAGENT=1 now works in non-interactive sessions--dangerously-skip-permissions no longer prompts for writes to .claude/skills/, .claude/agents/, and .claude/commands//terminal-setup now enables iTerm2's "Applications in terminal may access clipboard" setting so /copy works, including from tmuxlanguage settingmcp_authenticate now supports redirectUri for custom scheme completion and claude.ai connectorsstop_reason, gen_ai.response.finish_reasons, and user_system_prompt (gated behind OTEL_LOG_USER_PROMPTS) to LLM request spansaccessibility.voice.speechLanguage setting when no Claude Code language is configured/context now opens a native token usage dialog/usage leaking up to ~2GB of memory on machines with large transcript histories--resume crashing on startup in external builds--resume failing on large sessions when a transcript line was corrupted by an unclean shutdown — the corrupt line is now skippedthinking.type.enabled is not supported error when using Bedrock application inference profile ARNsprompt parameterNO_PROXY not being respected for all HTTP clients when set via managed-settings.json under the native build/usage returning "rate limited" after a stale OAuth token — now refreshes automaticallysettings.json invalidating the entire settings file/usage dialog content being clipped when no-flicker mode is off/focus showing "Unknown command" when the fullscreen renderer is off — now explains how to enable itfind in the Bash tool on large directory treesApril 24, 2026
claude ultrareview [target] subcommand to run /ultrareview non-interactively from CI or scripts — prints findings to stdout (--json for raw output) and exits 0 on completion or 1 on failure${CLAUDE_EFFORT} in their contentAI_AGENT environment variable for subprocesses so gh can attribute traffic to Claude Codeclaude plugin validate now accepts $schema, version, and description at the top level of marketplace.json and $schema in plugin.jsonauto (lowercase, no token count) instead of a misleading token value/rewind and other interactive overlays not responding to keyboard input after launching with claude --resumeDISABLE_TELEMETRY / CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC not suppressing usage metrics telemetry for API and enterprise users/plugin marketplace failing to load when one entry uses an unrecognized source format — that entry is shown but installing it prompts you to update/usage now opens the native Account & Usage dialog instead of returning plain-text session costlanguage setting in ~/.claude/settings.jsonfind in the Bash tool exhausting open file descriptors on large directory trees, causing host-wide crashes (macOS/Linux native builds)April 23, 2026
/config settings (theme, editor mode, verbose, etc.) now persist to ~/.claude/settings.json and participate in project/local/policy override precedenceprUrlTemplate setting to point the footer PR badge at a custom code-review URL instead of github.comCLAUDE_CODE_HIDE_CWD environment variable to hide the working directory in the startup logo--from-pr now accepts GitLab merge-request, Bitbucket pull-request, and GitHub Enterprise PR URLs--print mode now honors the agent's tools: and disallowedTools: frontmatter, matching interactive-mode behavior--agent <name> now honors the agent definition's permissionMode for built-in agentsPostToolUse and PostToolUseFailure hook inputs now include duration_ms (tool execution time, excluding permission prompts and PreToolUse hooks)owner/repo#N shorthand links in output now use your git remote's host instead of always pointing at github.comblockedMarketplaces now correctly enforces hostPattern and pathPattern entriestool_result and tool_decision events now include tool_use_id; tool_result also includes tool_input_size_byteseffort.level and thinking.enabledPostToolUse hooks that emit no response payload writing empty entries to the session transcriptENABLE_TOOL_SEARCH)@-file Tab completion replacing the entire prompt when used inside a slash command with an absolute pathp character appearing at the prompt on startup in macOS Terminal.app via Docker or SSH${ENV_VAR} placeholders in headers for HTTP/SSE/WebSocket MCP servers not being substituted before requests--client-secret not being sent during token exchange for servers requiring client_secret_post/skills Enter key closing the dialog instead of pre-filling /<skill-name> in the prompt/agents detail view mislabeling built-in tools unavailable to subagents as "Unrecognized"/export showing the current default model instead of the model the conversation actually used/usage progress bars overlapping with their "Resets …" labels${user_config.*} references an optional field left blank/plan and /plan open not acting on the existing plan when entering plan mode/reload-plugins and /doctor reporting load errors for disabled pluginsisolation: "worktree" reusing stale worktrees from prior sessions/statusTaskList returning tasks in arbitrary filesystem order instead of sorted by IDgh output contained PR titles mentioning "rate limit"read_file not correctly enforcing size cap on growing files/doctor warning about MCP server entries overridden by a higher-precedence scopeApril 23, 2026
v) and visual-line mode (V) with selection, operators, and visual feedback/cost and /stats into /usage — both remain as typing shortcuts that open the relevant tab/theme, or hand-edit JSON files in ~/.claude/themes/; plugins can also ship themes via a themes/ directorytype: "mcp_tool"DISABLE_UPDATES env var to completely block all update paths including manual claude update — stricter than DISABLE_AUTOUPDATERwslInheritsWindowsSettings policy key"$defaults" in autoMode.allow, autoMode.soft_deny, or autoMode.environment to add custom rules alongside the built-in list instead of replacing itclaude plugin tag to create release git tags for plugins with version validation--continue/--resume now find sessions that added the current directory via /add-dir/color now syncs the session accent color to claude.ai/code when Remote Control is connected/model picker now honors ANTHROPIC_DEFAULT_*_MODEL_NAME/_DESCRIPTION overrides when using a custom ANTHROPIC_BASE_URL gateway/doctor and the /plugin Errors tab/mcp menu hiding OAuth Authenticate/Re-authenticate actions for servers configured with headersHelper, and HTTP/SSE MCP servers with custom headers being stuck in "needs authentication" after a transient 401expires_in requiring re-authentication every hourinsufficient_scope 403 names a scope the current token already has~/.claude/.credentials.json/login having no effect in a session launched with CLAUDE_CODE_OAUTH_TOKEN — the env token is now cleared so disk credentials take effect/plugin badges--dangerously-skip-permissionsStop or SubagentStopprompt hooks re-firing on tool calls made by an agent-hook verifier subagent/fork writing the full parent conversation to disk per fork — now writes a pointer and hydrates on readmodel setting in ~/.claude/settings.json/plugin install on an already-installed plugin not re-resolving a dependency installed at the wrong versionSendMessage not restoring the explicit cwd they were spawned withApril 22, 2026
CLAUDE_CODE_FORK_SUBAGENT=1mcpServers are now loaded for main-thread agent sessions via --agent/model: selections now persist across restarts even when the project pins a different model, and the startup header shows when the active model comes from a project or managed-settings pin/resume command now offers to summarize stale, large sessions before re-reading them, matching the existing --resume behaviorplugin install on an already-installed plugin now installs any missing dependencies instead of stopping at "already installed"claude plugin marketplace add now auto-resolves missing dependencies from configured marketplacesblockedMarketplaces and strictKnownMarketplaces are now enforced on plugin install, update, refresh, and autoupdate/compactcleanupPeriodDays retention sweep now also covers ~/.claude/tasks/, ~/.claude/shell-snapshots/, and ~/.claude/backups/user_prompt events now include command_name and command_source for slash commands; cost.usage, token.usage, api_request, and api_error now include an effort attribute when the model supports effort levels. Custom/MCP command names are redacted unless OTEL_LOG_TOOL_DETAILS=1 is setGlob and Grep tools are replaced by embedded bfs and ugrep available through the Bash tool — faster searches without a separate tool round-trip (Windows and npm-installed builds unchanged)where.exe executable lookups per process for faster subprocess launcheshigh (was medium)WebFetch hanging on very large HTML pages by truncating input before HTML-to-markdown conversionTypeError/login having no effect when launched with CLAUDE_CODE_OAUTH_TOKEN env var and that token expiresCtrl+_) doing nothing immediately after typing, and skipping a state on each undo stepNO_PROXY not being respected for remote API requests when running under Bunreload_plugins reconnecting all user MCP servers seriallyelicitation/create requests auto-cancelling in print/SDK mode when the server finishes connecting mid-turn/context percentages and autocompacting too early — Claude Code was computing against a 200K context window instead of Opus 4.7's native 1MApril 20, 2026
/resume on large sessions is significantly faster (up to 67% on 40MB+ sessions) and handles sessions with many dead-fork entries more efficientlyresources/templates/list is now deferred to first @-mention/terminal-setup now configures the editor's scroll sensitivity/config search now matches option values (e.g. searching "vim" finds the Editor mode setting)/doctor can now be opened while Claude is responding, without waiting for the current turn to finish/reload-plugins and background plugin auto-update now auto-install missing plugin dependencies from marketplaces you've already addedgh commands hit GitHub's API rate limit, so agents can back off instead of retryinghooks: now fire when running as a main-thread agent via --agentrm/rmdir targeting /, $HOME, or other critical system directorieshttps://downloads.claude.ai/claude-code-releases instead of https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releasesnpx, bun run)/branch rejecting conversations with transcripts larger than 50MB/resume silently showing an empty conversation on large session files instead of reporting the load error/plugin Installed tab showing the same item twice when it appears under Needs attention or Favorites/update and /tui not working after entering a worktree mid-session