v2.1.110

PerformanceMiscFeatureImprovementBug Fix
  • Added /tui command and tui setting — run /tui fullscreen to switch to flicker-free rendering in the same conversation
  • Changed Ctrl+O to toggle between normal and verbose transcript only; focus view is now toggled separately with the new /focus command
  • Added autoScrollEnabled config to disable conversation auto-scroll in fullscreen mode
  • Added option to show Claude's last response as commented context in the Ctrl+G external editor (enable via /config)
  • Improved /plugin Installed tab — items needing attention and favorites appear at the top, disabled items are hidden behind a fold, and f favorites the selected item
  • Improved /doctor to warn when an MCP server is defined in multiple config scopes with different endpoints
  • --resume/--continue now resurrects unexpired scheduled tasks
  • /autocompact, /context, /exit, and /reload-plugins now work from Remote Control (mobile/web) clients
  • Write tool now informs the model when you edit the proposed content in the IDE diff before accepting
  • Bash tool now enforces the documented maximum timeout instead of accepting arbitrarily large values
  • SDK/headless sessions now read TRACEPARENT/TRACESTATE from the environment for distributed trace linking
  • Session recap is now enabled for users with telemetry disabled (Bedrock, Vertex, Foundry, DISABLE_TELEMETRY). Opt out via /config or CLAUDE_CODE_ENABLE_AWAY_SUMMARY=0.
  • Fixed MCP tool calls hanging indefinitely when the server connection drops mid-response on SSE/HTTP transports
  • Fixed non-streaming fallback retries causing multi-minute hangs when the API is unreachable
  • Fixed session recap, local slash-command output, and other system status lines not appearing in focus mode
  • Fixed high CPU usage in fullscreen when text is selected while a tool is running
  • Fixed plugin install not honoring dependencies declared in plugin.json when the marketplace entry omits them; /plugin install now lists auto-installed dependencies
  • Fixed skills with disable-model-invocation: true failing when invoked via / mid-message
  • Fixed --resume sometimes showing the first prompt instead of the /rename name for sessions still running or exited uncleanly
  • Fixed queued messages briefly appearing twice during multi-tool-call turns
  • Fixed session cleanup not removing the full session directory including subagent transcripts
  • Fixed dropped keystrokes after the CLI relaunches (e.g. /tui, provider setup wizards)
  • Fixed garbled startup rendering in macOS Terminal.app and other terminals that don't support synchronized output
  • Hardened "Open in editor" actions against command injection from untrusted filenames
  • Fixed PermissionRequest hooks returning updatedInput not being re-checked against permissions.deny rules; setMode:'bypassPermissions' updates now respect disableBypassPermissionsMode
  • Fixed PreToolUse hook additionalContext being dropped when the tool call fails
  • Fixed stdio MCP servers that print stray non-JSON lines to stdout being disconnected on the first stray line (regression in 2.1.105)
  • Fixed headless/SDK session auto-title firing an extra Haiku request when CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC or CLAUDE_CODE_DISABLE_TERMINAL_TITLE is set
  • Fixed potential excessive memory allocation when piped (non-TTY) Ink output contains a single very wide line
  • Fixed /skills menu not scrolling when the list overflows the modal in fullscreen mode
  • Fixed Remote Control sessions showing a generic error instead of prompting for re-login when the session is too old
  • Fixed Remote Control session renames from claude.ai not persisting the title to the local CLI session

v2.1.109

Improvement
  • Improved the extended-thinking indicator with a rotating progress hint

v2.1.108

FeatureSecurityMiscImprovementBug Fix
  • Added ENABLE_PROMPT_CACHING_1H env var to opt into 1-hour prompt cache TTL on API key, Bedrock, Vertex, and Foundry (ENABLE_PROMPT_CACHING_1H_BEDROCK is deprecated but still honored), and FORCE_PROMPT_CACHING_5M to force 5-minute TTL
  • Added recap feature to provide context when returning to a session, configurable in /config and manually invocable with /recap; force with CLAUDE_CODE_ENABLE_AWAY_SUMMARY if telemetry disabled.
  • The model can now discover and invoke built-in slash commands like /init, /review, and /security-review via the Skill tool
  • /undo is now an alias for /rewind
  • Improved /model to warn before switching models mid-conversation, since the next response re-reads the full history uncached
  • Improved /resume picker to default to sessions from the current directory; press Ctrl+A to show all projects
  • Improved error messages: server rate limits are now distinguished from plan usage limits; 5xx/529 errors show a link to status.claude.com; unknown slash commands suggest the closest match
  • Reduced memory footprint for file reads, edits, and syntax highlighting by loading language grammars on demand
  • Added "verbose" indicator when viewing the detailed transcript (Ctrl+O)
  • Added a warning at startup when prompt caching is disabled via DISABLE_PROMPT_CACHING* environment variables
  • Fixed paste not working in the /login code prompt (regression in 2.1.105)
  • Fixed subscribers who set DISABLE_TELEMETRY falling back to 5-minute prompt cache TTL instead of 1 hour
  • Fixed Agent tool prompting for permission in auto mode when the safety classifier's transcript exceeded its context window
  • Fixed Bash tool producing no output when CLAUDE_ENV_FILE (e.g. ~/.zprofile) ends with a # comment line
  • Fixed claude --resume losing the session's custom name and color set via /rename
  • Fixed session titles showing placeholder example text when the first message is a short greeting
  • Fixed terminal escape codes appearing as garbage text in the prompt input after --teleport
  • Fixed /feedback retry: pressing Enter to resubmit after a failure now works without first editing the description
  • Fixed --teleport and --resume precondition errors (e.g. dirty git tree, session not found) exiting silently instead of showing the error message
  • Fixed Remote Control session titles set in the web UI being overwritten by auto-generated titles after the third message
  • Fixed --resume truncating sessions when the transcript contained a self-referencing message
  • Fixed transcript write failures (e.g., disk full) being silently dropped instead of being logged
  • Fixed diacritical marks (accents, umlauts, cedillas) being dropped from responses when the language setting is configured
  • Fixed policy-managed plugins never auto-updating when running from a different project than where they were first installed

v2.1.107

Misc
  • Show thinking hints sooner during long operations

v2.1.105

FeatureMiscImprovementBug Fix
  • Added path parameter to the EnterWorktree tool to switch into an existing worktree of the current repository
  • Added PreCompact hook support: hooks can now block compaction by exiting with code 2 or returning {"decision":"block"}
  • Added background monitor support for plugins via a top-level monitors manifest key that auto-arms at session start or on skill invoke
  • /proactive is now an alias for /loop
  • Improved stalled API stream handling: streams now abort after 5 minutes of no data and retry non-streaming instead of hanging indefinitely
  • Improved network error messages: connection errors now show a retry message immediately instead of a silent spinner
  • Improved file write display: long single-line writes (e.g. minified JSON) are now truncated in the UI instead of paginating across many screens
  • Improved /doctor layout with status icons; press f to have Claude fix reported issues
  • Improved /config labels and descriptions for clarity
  • Improved skill description handling: raised the listing cap from 250 to 1,536 characters and added a startup warning when descriptions are truncated
  • Improved WebFetch to strip