claude-code/CHANGELOG.md
2025-10-02 19:29:00 +00:00

26 KiB

Changelog

2.0.2

  • Updated Bedrock default Sonnet model to global.anthropic.claude-sonnet-4-5-20250929-v1:0
  • Various bug fixes and presentation improvements

2.0.1

  • Skip Sonnet 4.5 default model setting change for Bedrock and Vertex
  • Various bug fixes and presentation improvements

2.0.0

  • New native VS Code extension
  • Fresh coat of paint throughout the whole app
  • /rewind a conversation to undo code changes
  • /usage command to see plan limits
  • Tab to toggle thinking (sticky across sessions)
  • Ctrl-R to search history
  • Unshipped claude config command
  • Hooks: Reduced PostToolUse 'tool_use' ids were found without 'tool_result' blocks errors
  • SDK: The Claude Code SDK is now the Claude Agent SDK
  • Add subagents dynamically with --agents flag

1.0.126

  • Enable /context command for Bedrock and Vertex
  • Add mTLS support for HTTP-based OpenTelemetry exporters

1.0.124

  • Set CLAUDE_BASH_NO_LOGIN environment variable to 1 or true to to skip login shell for BashTool
  • Fix Bedrock and Vertex environment variables evaluating all strings as truthy
  • No longer inform Claude of the list of allowed tools when permission is denied
  • Fixed security vulnerability in Bash tool permission checks
  • Improved VSCode extension performance for large files

1.0.123

  • Bash permission rules now support output redirections when matching (e.g., Bash(python:*) matches python script.py > output.txt)
  • Fixed thinking mode triggering on negation phrases like "don't think"
  • Fixed rendering performance degradation during token streaming
  • Added SlashCommand tool, which enables Claude to invoke your slash commands. https://docs.claude.com/en/docs/claude-code/slash-commands#SlashCommand-tool
  • Enhanced BashTool environment snapshot logging
  • Fixed a bug where resuming a conversation in headless mode would sometimes enable thinking unnecessarily
  • Migrated --debug logging to a file, to enable easy tailing & filtering

1.0.120

  • Fix input lag during typing, especially noticeable with large prompts
  • Improved VSCode extension command registry and sessions dialog user experience
  • Enhanced sessions dialog responsiveness and visual feedback
  • Fixed IDE compatibility issue by removing worktree support check
  • Fixed security vulnerability where Bash tool permission checks could be bypassed using prefix matching

1.0.119

  • Fix Windows issue where process visually freezes on entering interactive mode
  • Support dynamic headers for MCP servers via headersHelper configuration
  • Fix thinking mode not working in headless sessions
  • Fix slash commands now properly update allowed tools instead of replacing them

1.0.117

  • Add Ctrl-R history search to recall previous commands like bash/zsh
  • Fix input lag while typing, especially on Windows
  • Add sed command to auto-allowed commands in acceptEdits mode
  • Fix Windows PATH comparison to be case-insensitive for drive letters
  • Add permissions management hint to /add-dir output

1.0.115

  • Improve thinking mode display with enhanced visual effects
  • Type /t to temporarily disable thinking mode in your prompt
  • Improve path validation for glob and grep tools
  • Show condensed output for post-tool hooks to reduce visual clutter
  • Fix visual feedback when loading state completes
  • Improve UI consistency for permission request dialogs

1.0.113

  • Deprecated piped input in interactive mode
  • Move Ctrl+R keybinding for toggling transcript to Ctrl+O

1.0.112

  • Transcript mode (Ctrl+R): Added the model used to generate each assistant message
  • Addressed issue where some Claude Max users were incorrectly recognized as Claude Pro users
  • Hooks: Added systemMessage support for SessionEnd hooks
  • Added spinnerTipsEnabled setting to disable spinner tips
  • IDE: Various improvements and bug fixes

1.0.111

  • /model now validates provided model names
  • Fixed Bash tool crashes caused by malformed shell syntax parsing

1.0.110

  • /terminal-setup command now supports WezTerm
  • MCP: OAuth tokens now proactively refresh before expiration
  • Fixed reliability issues with background Bash processes

1.0.109

  • SDK: Added partial message streaming support via --include-partial-messages CLI flag

1.0.106

  • Windows: Fixed path permission matching to consistently use POSIX format (e.g., Read(//c/Users/...))

1.0.97

  • Settings: /doctor now validates permission rule syntax and suggests corrections

1.0.94

  • Vertex: add support for global endpoints for supported models
  • /memory command now allows direct editing of all imported memory files
  • SDK: Add custom tools as callbacks
  • Added /todos command to list current todo items

1.0.93

  • Windows: Add alt + v shortcut for pasting images from clipboard
  • Support NO_PROXY environment variable to bypass proxy for specified hostnames and IPs

1.0.90

  • Settings file changes take effect immediately - no restart required

1.0.88

  • Fixed issue causing "OAuth authentication is currently not supported"
  • Status line input now includes exceeds_200k_tokens
  • Fixed incorrect usage tracking in /cost.
  • Introduced ANTHROPIC_DEFAULT_SONNET_MODEL and ANTHROPIC_DEFAULT_OPUS_MODEL for controlling model aliases opusplan, opus, and sonnet.
  • Bedrock: Updated default Sonnet model to Sonnet 4

1.0.86

  • Added /context to help users self-serve debug context issues
  • SDK: Added UUID support for all SDK messages
  • SDK: Added --replay-user-messages to replay user messages back to stdout

1.0.85

  • Status line input now includes session cost info
  • Hooks: Introduced SessionEnd hook

1.0.84

  • Fix tool_use/tool_result id mismatch error when network is unstable
  • Fix Claude sometimes ignoring real-time steering when wrapping up a task
  • @-mention: Add ~/.claude/* files to suggestions for easier agent, output style, and slash command editing
  • Use built-in ripgrep by default; to opt out of this behavior, set USE_BUILTIN_RIPGREP=0

1.0.83

  • @-mention: Support files with spaces in path
  • New shimmering spinner

1.0.82

  • SDK: Add request cancellation support
  • SDK: New additionalDirectories option to search custom paths, improved slash command processing
  • Settings: Validation prevents invalid fields in .claude/settings.json files
  • MCP: Improve tool name consistency
  • Bash: Fix crash when Claude tries to automatically read large files

1.0.81

1.0.80

  • UI improvements: Fix text contrast for custom subagent colors and spinner rendering issues

1.0.77

  • Bash tool: Fix heredoc and multiline string escaping, improve stderr redirection handling
  • SDK: Add session support and permission denial tracking
  • Fix token limit errors in conversation summarization
  • Opus Plan Mode: New setting in /model to run Opus only in plan mode, Sonnet otherwise

1.0.73

  • MCP: Support multiple config files with --mcp-config file1.json file2.json
  • MCP: Press Esc to cancel OAuth authentication flows
  • Bash: Improved command validation and reduced false security warnings
  • UI: Enhanced spinner animations and status line visual hierarchy
  • Linux: Added support for Alpine and musl-based distributions (requires separate ripgrep installation)

1.0.72

  • Ask permissions: have Claude Code always ask for confirmation to use specific tools with /permissions

1.0.71

  • Background commands: (Ctrl-b) to run any Bash command in the background so Claude can keep working (great for dev servers, tailing logs, etc.)
  • Customizable status line: add your terminal prompt to Claude Code with /statusline

1.0.70

  • Performance: Optimized message rendering for better performance with large contexts
  • Windows: Fixed native file search, ripgrep, and subagent functionality
  • Added support for @-mentions in slash command arguments

1.0.69

  • Upgraded Opus to version 4.1

1.0.68

  • Fix incorrect model names being used for certain commands like /pr-comments
  • Windows: improve permissions checks for allow / deny tools and project trust. This may create a new project entry in .claude.json - manually merge the history field if desired.
  • Windows: improve sub-process spawning to eliminate "No such file or directory" when running commands like pnpm
  • Enhanced /doctor command with CLAUDE.md and MCP tool context for self-serve debugging
  • SDK: Added canUseTool callback support for tool confirmation
  • Added disableAllHooks setting
  • Improved file suggestions performance in large repos

1.0.65

  • IDE: Fixed connection stability issues and error handling for diagnostics
  • Windows: Fixed shell environment setup for users without .bashrc files

1.0.64

  • Agents: Added model customization support - you can now specify which model an agent should use
  • Agents: Fixed unintended access to the recursive agent tool
  • Hooks: Added systemMessage field to hook JSON output for displaying warnings and context
  • SDK: Fixed user input tracking across multi-turn conversations
  • Added hidden files to file search and @-mention suggestions

1.0.63

  • Windows: Fixed file search, @agent mentions, and custom slash commands functionality

1.0.62

  • Added @-mention support with typeahead for custom agents. @ to invoke it
  • Hooks: Added SessionStart hook for new session initialization
  • /add-dir command now supports typeahead for directory paths
  • Improved network connectivity check reliability

1.0.61

  • Transcript mode (Ctrl+R): Changed Esc to exit transcript mode rather than interrupt
  • Settings: Added --settings flag to load settings from a JSON file
  • Settings: Fixed resolution of settings files paths that are symlinks
  • OTEL: Fixed reporting of wrong organization after authentication changes
  • Slash commands: Fixed permissions checking for allowed-tools with Bash
  • IDE: Added support for pasting images in VSCode MacOS using ⌘+V
  • IDE: Added CLAUDE_CODE_AUTO_CONNECT_IDE=false for disabling IDE auto-connection
  • Added CLAUDE_CODE_SHELL_PREFIX for wrapping Claude and user-provided shell commands run by Claude Code

1.0.60

  • You can now create custom subagents for specialized tasks! Run /agents to get started

1.0.59

  • SDK: Added tool confirmation support with canUseTool callback
  • SDK: Allow specifying env for spawned process
  • Hooks: Exposed PermissionDecision to hooks (including "ask")
  • Hooks: UserPromptSubmit now supports additionalContext in advanced JSON output
  • Fixed issue where some Max users that specified Opus would still see fallback to Sonnet

1.0.58

  • Added support for reading PDFs
  • MCP: Improved server health status display in 'claude mcp list'
  • Hooks: Added CLAUDE_PROJECT_DIR env var for hook commands

1.0.57

  • Added support for specifying a model in slash commands
  • Improved permission messages to help Claude understand allowed tools
  • Fix: Remove trailing newlines from bash output in terminal wrapping

1.0.56

  • Windows: Enabled shift+tab for mode switching on versions of Node.js that support terminal VT mode
  • Fixes for WSL IDE detection
  • Fix an issue causing awsRefreshHelper changes to .aws directory not to be picked up

1.0.55

  • Clarified knowledge cutoff for Opus 4 and Sonnet 4 models
  • Windows: fixed Ctrl+Z crash
  • SDK: Added ability to capture error logging
  • Add --system-prompt-file option to override system prompt in print mode

1.0.54

  • Hooks: Added UserPromptSubmit hook and the current working directory to hook inputs
  • Custom slash commands: Added argument-hint to frontmatter
  • Windows: OAuth uses port 45454 and properly constructs browser URL
  • Windows: mode switching now uses alt + m, and plan mode renders properly
  • Shell: Switch to in-memory shell snapshot to fix file-related errors

1.0.53

  • Updated @-mention file truncation from 100 lines to 2000 lines
  • Add helper script settings for AWS token refresh: awsAuthRefresh (for foreground operations like aws sso login) and awsCredentialExport (for background operation with STS-like response).

1.0.52

  • Added support for MCP server instructions

1.0.51

  • Added support for native Windows (requires Git for Windows)
  • Added support for Bedrock API keys through environment variable AWS_BEARER_TOKEN_BEDROCK
  • Settings: /doctor can now help you identify and fix invalid setting files
  • --append-system-prompt can now be used in interactive mode, not just --print/-p.
  • Increased auto-compact warning threshold from 60% to 80%
  • Fixed an issue with handling user directories with spaces for shell snapshots
  • OTEL resource now includes os.type, os.version, host.arch, and wsl.version (if running on Windows Subsystem for Linux)
  • Custom slash commands: Fixed user-level commands in subdirectories
  • Plan mode: Fixed issue where rejected plan from sub-task would get discarded

1.0.48

  • Fixed a bug in v1.0.45 where the app would sometimes freeze on launch
  • Added progress messages to Bash tool based on the last 5 lines of command output
  • Added expanding variables support for MCP server configuration
  • Moved shell snapshots from /tmp to ~/.claude for more reliable Bash tool calls
  • Improved IDE extension path handling when Claude Code runs in WSL
  • Hooks: Added a PreCompact hook
  • Vim mode: Added c, f/F, t/T

1.0.45

  • Redesigned Search (Grep) tool with new tool input parameters and features
  • Disabled IDE diffs for notebook files, fixing "Timeout waiting after 1000ms" error
  • Fixed config file corruption issue by enforcing atomic writes
  • Updated prompt input undo to Ctrl+_ to avoid breaking existing Ctrl+U behavior, matching zsh's undo shortcut
  • Stop Hooks: Fixed transcript path after /clear and fixed triggering when loop ends with tool call
  • Custom slash commands: Restored namespacing in command names based on subdirectories. For example, .claude/commands/frontend/component.md is now /frontend:component, not /component.

1.0.44

  • New /export command lets you quickly export a conversation for sharing
  • MCP: resource_link tool results are now supported
  • MCP: tool annotations and tool titles now display in /mcp view
  • Changed Ctrl+Z to suspend Claude Code. Resume by running fg. Prompt input undo is now Ctrl+U.

1.0.43

  • Fixed a bug where the theme selector was saving excessively
  • Hooks: Added EPIPE system error handling

1.0.42

  • Added tilde (~) expansion support to /add-dir command

1.0.41

  • Hooks: Split Stop hook triggering into Stop and SubagentStop
  • Hooks: Enabled optional timeout configuration for each command
  • Hooks: Added "hook_event_name" to hook input
  • Fixed a bug where MCP tools would display twice in tool list
  • New tool parameters JSON for Bash tool in tool_decision event

1.0.40

  • Fixed a bug causing API connection errors with UNABLE_TO_GET_ISSUER_CERT_LOCALLY if NODE_EXTRA_CA_CERTS was set

1.0.39

  • New Active Time metric in OpenTelemetry logging

1.0.38

1.0.37

  • Remove ability to set Proxy-Authorization header via ANTHROPIC_AUTH_TOKEN or apiKeyHelper

1.0.36

  • Web search now takes today's date into context
  • Fixed a bug where stdio MCP servers were not terminating properly on exit

1.0.35

  • Added support for MCP OAuth Authorization Server discovery

1.0.34

  • Fixed a memory leak causing a MaxListenersExceededWarning message to appear

1.0.33

  • Improved logging functionality with session ID support
  • Added prompt input undo functionality (Ctrl+Z and vim 'u' command)
  • Improvements to plan mode

1.0.32

  • Updated loopback config for litellm
  • Added forceLoginMethod setting to bypass login selection screen

1.0.31

  • Fixed a bug where ~/.claude.json would get reset when file contained invalid JSON

1.0.30

  • Custom slash commands: Run bash output, @-mention files, enable thinking with thinking keywords
  • Improved file path autocomplete with filename matching
  • Added timestamps in Ctrl-r mode and fixed Ctrl-c handling
  • Enhanced jq regex support for complex filters with pipes and select

1.0.29

  • Improved CJK character support in cursor navigation and rendering

1.0.28

  • Slash commands: Fix selector display during history navigation
  • Resizes images before upload to prevent API size limit errors
  • Added XDG_CONFIG_HOME support to configuration directory
  • Performance optimizations for memory usage
  • New attributes (terminal.type, language) in OpenTelemetry logging

1.0.27

  • Streamable HTTP MCP servers are now supported
  • Remote MCP servers (SSE and HTTP) now support OAuth
  • MCP resources can now be @-mentioned
  • /resume slash command to switch conversations within Claude Code

1.0.25

  • Slash commands: moved "project" and "user" prefixes to descriptions
  • Slash commands: improved reliability for command discovery
  • Improved support for Ghostty
  • Improved web search reliability

1.0.24

  • Improved /mcp output
  • Fixed a bug where settings arrays got overwritten instead of merged

1.0.23

  • Released TypeScript SDK: import @anthropic-ai/claude-code to get started
  • Released Python SDK: pip install claude-code-sdk to get started

1.0.22

  • SDK: Renamed total_cost to total_cost_usd

1.0.21

  • Improved editing of files with tab-based indentation
  • Fix for tool_use without matching tool_result errors
  • Fixed a bug where stdio MCP server processes would linger after quitting Claude Code

1.0.18

  • Added --add-dir CLI argument for specifying additional working directories
  • Added streaming input support without require -p flag
  • Improved startup performance and session storage performance
  • Added CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR environment variable to freeze working directory for bash commands
  • Added detailed MCP server tools display (/mcp)
  • MCP authentication and permission improvements
  • Added auto-reconnection for MCP SSE connections on disconnect
  • Fixed issue where pasted content was lost when dialogs appeared

1.0.17

  • We now emit messages from sub-tasks in -p mode (look for the parent_tool_use_id property)
  • Fixed crashes when the VS Code diff tool is invoked multiple times quickly
  • MCP server list UI improvements
  • Update Claude Code process title to display "claude" instead of "node"

1.0.11

  • Claude Code can now also be used with a Claude Pro subscription
  • Added /upgrade for smoother switching to Claude Max plans
  • Improved UI for authentication from API keys and Bedrock/Vertex/external auth tokens
  • Improved shell configuration error handling
  • Improved todo list handling during compaction

1.0.10

  • Added markdown table support
  • Improved streaming performance

1.0.8

  • Fixed Vertex AI region fallback when using CLOUD_ML_REGION
  • Increased default otel interval from 1s -> 5s
  • Fixed edge cases where MCP_TIMEOUT and MCP_TOOL_TIMEOUT weren't being respected
  • Fixed a regression where search tools unnecessarily asked for permissions
  • Added support for triggering thinking non-English languages
  • Improved compacting UI

1.0.7

  • Renamed /allowed-tools -> /permissions
  • Migrated allowedTools and ignorePatterns from .claude.json -> settings.json
  • Deprecated claude config commands in favor of editing settings.json
  • Fixed a bug where --dangerously-skip-permissions sometimes didn't work in --print mode
  • Improved error handling for /install-github-app
  • Bugfixes, UI polish, and tool reliability improvements

1.0.6

  • Improved edit reliability for tab-indented files
  • Respect CLAUDE_CONFIG_DIR everywhere
  • Reduced unnecessary tool permission prompts
  • Added support for symlinks in @file typeahead
  • Bugfixes, UI polish, and tool reliability improvements

1.0.4

  • Fixed a bug where MCP tool errors weren't being parsed correctly

1.0.1

  • Added DISABLE_INTERLEAVED_THINKING to give users the option to opt out of interleaved thinking.
  • Improved model references to show provider-specific names (Sonnet 3.7 for Bedrock, Sonnet 4 for Console)
  • Updated documentation links and OAuth process descriptions

1.0.0

  • Claude Code is now generally available
  • Introducing Sonnet 4 and Opus 4 models

0.2.125

  • Breaking change: Bedrock ARN passed to ANTHROPIC_MODEL or ANTHROPIC_SMALL_FAST_MODEL should no longer contain an escaped slash (specify / instead of %2F)
  • Removed DEBUG=true in favor of ANTHROPIC_LOG=debug, to log all requests

0.2.117

  • Breaking change: --print JSON output now returns nested message objects, for forwards-compatibility as we introduce new metadata fields
  • Introduced settings.cleanupPeriodDays
  • Introduced CLAUDE_CODE_API_KEY_HELPER_TTL_MS env var
  • Introduced --debug mode

0.2.108

  • You can now send messages to Claude while it works to steer Claude in real-time
  • Introduced BASH_DEFAULT_TIMEOUT_MS and BASH_MAX_TIMEOUT_MS env vars
  • Fixed a bug where thinking was not working in -p mode
  • Fixed a regression in /cost reporting
  • Deprecated MCP wizard interface in favor of other MCP commands
  • Lots of other bugfixes and improvements

0.2.107

  • CLAUDE.md files can now import other files. Add @path/to/file.md to ./CLAUDE.md to load additional files on launch

0.2.106

  • MCP SSE server configs can now specify custom headers
  • Fixed a bug where MCP permission prompt didn't always show correctly

0.2.105

  • Claude can now search the web
  • Moved system & account status to /status
  • Added word movement keybindings for Vim
  • Improved latency for startup, todo tool, and file edits

0.2.102

  • Improved thinking triggering reliability
  • Improved @mention reliability for images and folders
  • You can now paste multiple large chunks into one prompt

0.2.100

  • Fixed a crash caused by a stack overflow error
  • Made db storage optional; missing db support disables --continue and --resume

0.2.98

  • Fixed an issue where auto-compact was running twice

0.2.96

0.2.93

  • Resume conversations from where you left off from with "claude --continue" and "claude --resume"
  • Claude now has access to a Todo list that helps it stay on track and be more organized

0.2.82

  • Added support for --disallowedTools
  • Renamed tools for consistency: LSTool -> LS, View -> Read, etc.

0.2.75

  • Hit Enter to queue up additional messages while Claude is working
  • Drag in or copy/paste image files directly into the prompt
  • @-mention files to directly add them to context
  • Run one-off MCP servers with claude --mcp-config <path-to-file>
  • Improved performance for filename auto-complete

0.2.74

  • Added support for refreshing dynamically generated API keys (via apiKeyHelper), with a 5 minute TTL
  • Task tool can now perform writes and run bash commands

0.2.72

  • Updated spinner to indicate tokens loaded and tool usage

0.2.70

  • Network commands like curl are now available for Claude to use
  • Claude can now run multiple web queries in parallel
  • Pressing ESC once immediately interrupts Claude in Auto-accept mode

0.2.69

  • Fixed UI glitches with improved Select component behavior
  • Enhanced terminal output display with better text truncation logic

0.2.67

  • Shared project permission rules can be saved in .claude/settings.json

0.2.66

  • Print mode (-p) now supports streaming output via --output-format=stream-json
  • Fixed issue where pasting could trigger memory or bash mode unexpectedly

0.2.63

  • Fixed an issue where MCP tools were loaded twice, which caused tool call errors

0.2.61

  • Navigate menus with vim-style keys (j/k) or bash/emacs shortcuts (Ctrl+n/p) for faster interaction
  • Enhanced image detection for more reliable clipboard paste functionality
  • Fixed an issue where ESC key could crash the conversation history selector

0.2.59

  • Copy+paste images directly into your prompt
  • Improved progress indicators for bash and fetch tools
  • Bugfixes for non-interactive mode (-p)

0.2.54

  • Quickly add to Memory by starting your message with '#'
  • Press ctrl+r to see full output for long tool results
  • Added support for MCP SSE transport

0.2.53

  • New web fetch tool lets Claude view URLs that you paste in
  • Fixed a bug with JPEG detection

0.2.50

  • New MCP "project" scope now allows you to add MCP servers to .mcp.json files and commit them to your repository

0.2.49

  • Previous MCP server scopes have been renamed: previous "project" scope is now "local" and "global" scope is now "user"

0.2.47

  • Press Tab to auto-complete file and folder names
  • Press Shift + Tab to toggle auto-accept for file edits
  • Automatic conversation compaction for infinite conversation length (toggle with /config)

0.2.44

  • Ask Claude to make a plan with thinking mode: just say 'think' or 'think harder' or even 'ultrathink'

0.2.41

  • MCP server startup timeout can now be configured via MCP_TIMEOUT environment variable
  • MCP server startup no longer blocks the app from starting up

0.2.37

  • New /release-notes command lets you view release notes at any time
  • claude config add/remove commands now accept multiple values separated by commas or spaces

0.2.36

  • Import MCP servers from Claude Desktop with claude mcp add-from-claude-desktop
  • Add MCP servers as JSON strings with claude mcp add-json <n> <json>

0.2.34

  • Vim bindings for text input - enable with /vim or /config

0.2.32

  • Interactive MCP setup wizard: Run "claude mcp add" to add MCP servers with a step-by-step interface
  • Fix for some PersistentShell issues

0.2.31

  • Custom slash commands: Markdown files in .claude/commands/ directories now appear as custom slash commands to insert prompts into your conversation
  • MCP debug mode: Run with --mcp-debug flag to get more information about MCP server errors

0.2.30

  • Added ANSI color theme for better terminal compatibility
  • Fixed issue where slash command arguments weren't being sent properly
  • (Mac-only) API keys are now stored in macOS Keychain

0.2.26

  • New /approved-tools command for managing tool permissions
  • Word-level diff display for improved code readability
  • Fuzzy matching for slash commands

0.2.21

  • Fuzzy matching for /commands