This document chronicles the development history of Claude Code, documenting major features, enhancements, and architectural changes across releases. It provides a chronological view of how the system evolved from its initial release to its current state, organized by functional area and version milestone.
For details on the current system architecture, see System Architecture. For licensing terms, see License & Security Policy. For GitHub automation workflow history, see GitHub Automation.
Sources: README.md1-73 CHANGELOG.md1-3000
Claude Code follows a three-part version numbering scheme: MAJOR.MINOR.PATCH (e.g., 2.1.49). The current release series is 2.1.x, with patch versions incrementing for bug fixes, features, and improvements. Release channels include:
/config)The version number can be queried via the CLI or displayed in the UI status bar during active sessions.
Sources: CHANGELOG.md502 README.md3
The following table summarizes significant releases that introduced major capabilities or architectural changes:
| Version | Release | Key Features |
|---|---|---|
| 2.1.49 | Current | Worktree isolation, background agent control (Ctrl+F), plugin default settings, ConfigChange hook, improved startup performance |
| 2.1.47 | Recent | VS Code plan preview improvements, compaction fixes for PDF-heavy sessions, memory usage optimizations |
| 2.1.45 | Recent | Claude Sonnet 4.6 support, plugin discovery from --add-dir, rate limit status in SDK |
| 2.1.33 | Major | Agent Teams (multi-agent collaboration), TeammateIdle/TaskCompleted hooks, memory frontmatter for agents |
| 2.1.32 | Major | Claude Opus 4.6 release, automatic memory recording/recall, partial conversation summarization |
| 2.1.30 | Major | PDF page ranges, OAuth pre-config for MCP, /debug command, Task metrics |
| 2.1.21 | Major | Python virtual environment auto-activation (VS Code), file operation tool preference |
| 2.1.20 | Major | PR status indicator in prompt footer, external editor (Ctrl+G), task management improvements |
| 2.1.18 | Major | Customizable keyboard shortcuts system, chord sequences |
| 2.1.16 | Major | New task management system with dependency tracking, native plugin management (VS Code) |
| 2.1.11 | Major | MCP list_changed notifications, hooks in agent frontmatter, Vim motion extensions |
| 2.1.0 | Major | Automatic skill hot-reload, forked sub-agent context, language setting, wildcard permission patterns |
Sources: CHANGELOG.md1-1000
The following diagram visualizes when major feature categories were introduced across versions:
Sources: CHANGELOG.md1-2000
The agent system began with basic subagent spawning via the Task tool, allowing the main agent to delegate work to specialized agents. Key early features:
.claude/agents/*.md filesSources: CHANGELOG.md563-564 CHANGELOG.md350
Version 2.1.32 introduced automatic memory recording where Claude records and recalls information across sessions. Version 2.1.33 brought the major Agent Teams feature:
TeammateIdle and TaskCompleted hook events for workflow orchestrationmemory field with user, project, or local scopesTask(agent_type) syntax in agent tools frontmatterSources: CHANGELOG.md222-224 CHANGELOG.md202-207
The latest enhancement introduced git worktree isolation:
--worktree (-w) flag to start Claude in an isolated git worktreeisolation: "worktree" for temporary branch workbackground: true for automatic backgroundingSources: CHANGELOG.md5-7 CHANGELOG.md202-207 CHANGELOG.md222-224
Recent versions refined agent lifecycle control:
model field properly respected when spawning teammatesSources: CHANGELOG.md7 CHANGELOG.md50-51 CHANGELOG.md72
The initial tool system included:
Sources: CHANGELOG.md160 CHANGELOG.md244
Model Context Protocol (MCP) integration brought external tool support:
list_changed notifications for dynamic tool updates (2.1.11)Sources: CHANGELOG.md251-252 CHANGELOG.md564 CHANGELOG.md458
Progressive improvements to file tools:
pages: "1-5" parameter for selective reading, lightweight references for large PDFsSources: CHANGELOG.md251 CHANGELOG.md160 CHANGELOG.md100 CHANGELOG.md34
Continuous security and functionality enhancements:
sandbox.enabled settingBash(*), Bash(npm *), etc.Sources: CHANGELOG.md57 CHANGELOG.md534-535 CHANGELOG.md229 CHANGELOG.md426 CHANGELOG.md562
Sources: CHANGELOG.md45 CHANGELOG.md198-199
The configuration system uses a four-tier hierarchy:
managed-settings.json (organizational policy)~/.claude/settings.json (personal defaults).claude/settings.json (repository-specific)settings.local.json (gitignored overrides)Plugins can ship settings.json for defaults (2.1.49).
Sources: CHANGELOG.md9
The permission system matured significantly:
Bash(*), Bash(npm *), Bash(* install), Bash(git * main) for flexible matching\ escaping blocked commandsSources: CHANGELOG.md562 CHANGELOG.md45 CHANGELOG.md449 CHANGELOG.md470 CHANGELOG.md503
Managed settings introduced organizational lockdown:
allowManagedHooksOnly: Force centralized hook controlallowManagedPermissionRulesOnly: Centralized permission rulesstrictKnownMarketplaces: Block untrusted plugin sourcesdisableAllHooks respects managed hierarchy (2.1.49)Sources: CHANGELOG.md28
New hook event fires when configuration files change during a session, enabling:
Sources: CHANGELOG.md24
Progressive improvements to time-to-interactive:
| Version | Optimization | Impact |
|---|---|---|
| 2.1.49 | Deferred SessionStart hook execution | ~500ms reduction |
| 2.1.49 | Cached MCP auth failures | Fewer redundant connections |
| 2.1.49 | Reduced HTTP calls for analytics | Fewer startup requests |
| 2.1.49 | Batched MCP tool token counting | Single API call |
| 2.1.47 | Warmed @ file index with background refresh | Faster file suggestions |
| 2.1.45 | Removed eager session history loading | Reduced stat calls |
| 2.1.42 | Deferred Zod schema construction | Faster validation setup |
| 2.1.23 | Optimized screen data layout | Better rendering throughput |
| 2.1.10 | Captured keystrokes before REPL ready | No input loss |
Sources: CHANGELOG.md20 CHANGELOG.md25-27 CHANGELOG.md40 CHANGELOG.md42 CHANGELOG.md121 CHANGELOG.md139 CHANGELOG.md300 CHANGELOG.md427
Long-running session memory fixes:
Sources: CHANGELOG.md18 CHANGELOG.md22 CHANGELOG.md39 CHANGELOG.md43-44 CHANGELOG.md122 CHANGELOG.md265
Cache hit rate improvements:
Sources: CHANGELOG.md140 CHANGELOG.md258 CHANGELOG.md12
Core rendering improvements across versions:
Sources: CHANGELOG.md172 CHANGELOG.md175 CHANGELOG.md246 CHANGELOG.md37 CHANGELOG.md71 CHANGELOG.md331 CHANGELOG.md472
Major UX milestone allowing personalized workflows:
/keybindings commandSources: CHANGELOG.md372
| Shortcut | Version | Purpose |
|---|---|---|
| Ctrl+B | 2.1.0+ | Background all running tasks |
| Ctrl+F | 2.1.49 | Kill background agents (two-press) |
| Ctrl+G | 2.1.20+ | Open external editor |
| Ctrl+R | Various | Search command history |
| Ctrl+S | 2.1.19 | Prompt stash/restore |
| Shift+Enter | 2.1.0 | Multi-line input (iTerm2/WezTerm/Ghostty/Kitty) |
| Shift+Tab | 2.1.2 | Quick "auto-accept edits" in plan mode |
| Shift+Down | 2.1.47 | Navigate teammates (wrapping) |
Sources: CHANGELOG.md7 CHANGELOG.md563 CHANGELOG.md326 CHANGELOG.md361 CHANGELOG.md546 CHANGELOG.md520 CHANGELOG.md52
Progressive enhancements to real-time feedback:
showTurnDuration)Sources: CHANGELOG.md326 CHANGELOG.md95 CHANGELOG.md446 CHANGELOG.md123
Version 2.1.47 enhanced plan preview:
Sources: CHANGELOG.md36
Early plugin system established:
plugin.json structure with metadataSources: CHANGELOG.md542
Sources: CHANGELOG.md542-543 CHANGELOG.md120 CHANGELOG.md397 CHANGELOG.md398 CHANGELOG.md13-14
Skills evolved significantly:
context: fork for sub-agent executionagent field for specific agent types/skills menu.claude/skills/Sources: CHANGELOG.md542-544 CHANGELOG.md567-568 CHANGELOG.md208 CHANGELOG.md467 CHANGELOG.md230
VS Code extension gained full plugin UI:
Sources: CHANGELOG.md381 CHANGELOG.md429 CHANGELOG.md430 CHANGELOG.md513
Plugins can now ship settings.json files that provide default configuration values, eliminating manual setup for common settings.
Sources: CHANGELOG.md9
GitHub automation workflows are documented separately in GitHub Automation, but key milestones include:
claude-issue-triage.yml): Label categorization and lifecycle managementclaude-dedupe-issues.yml): Parallel search agents with false positive filteringauto-close-duplicates.yml): 3-day grace period for duplicatesoncall-triage.yml): Critical issue detection with engagement thresholdsFor detailed workflow documentation, see Issue Triage System, Issue Deduplication System, Stale Issue Management, Oncall Issue Detection, and Event Logging & Analytics.
Sources: CHANGELOG.md1-3000 (workflows not directly in changelog)
Critical security patches:
\ escaping blocked commandsSources: CHANGELOG.md523 CHANGELOG.md449 CHANGELOG.md470 CHANGELOG.md185 CHANGELOG.md45
Data security improvements:
Sources: CHANGELOG.md549 CHANGELOG.md529 CHANGELOG.md548
Bash sandboxing matured:
.claude/skills directory blocked in sandboxSources: CHANGELOG.md240 CHANGELOG.md115 CHANGELOG.md295 CHANGELOG.md186
Enhanced permission enforcement:
disableBypassMode setting prevents skipping checksSources: CHANGELOG.md28 CHANGELOG.md15 CHANGELOG.md30
npm installation deprecated (2.1.15):
claude install script or Homebrew/WinGetSources: CHANGELOG.md390 README.md14-15
Deprecated path: C:\ProgramData\ClaudeCode\managed-settings.json
New path: C:\Program Files\ClaudeCode\managed-settings.json
Administrators must migrate to the new location.
Sources: CHANGELOG.md536
$ARGUMENTS.0 to $ARGUMENTS[0]/mcp enable <name> insteadSources: CHANGELOG.md366 CHANGELOG.md487 CHANGELOG.md52
| Version | Model | Capabilities |
|---|---|---|
| 2.1.45 | Claude Sonnet 4.6 | Current Sonnet variant |
| 2.1.36 | Opus 4.6 Fast Mode | Speed optimization for Opus |
| 2.1.32 | Claude Opus 4.6 | Frontier Opus release |
| 2.1.49 | Sonnet 4.6 with 1M context | Extended context (replacing 4.5) |
Sources: CHANGELOG.md110 CHANGELOG.md194 CHANGELOG.md222 CHANGELOG.md16
supportedEffortLevels and supportsAdaptiveThinking in SDKspeed attribute in OTel eventsSources: CHANGELOG.md23 CHANGELOG.md141 CHANGELOG.md154 CHANGELOG.md209
The most recent releases focus on stability, performance, and developer experience:
Sources: CHANGELOG.md1-31
This document provides a comprehensive view of Claude Code's evolution from its early releases to the current 2.1.49 version, organized by functional area and supported by extensive changelog citations. For implementation details of current features, refer to the relevant functional documentation in sections 2-6.
Refresh this wiki