Claude Code 2.0: Release Date, New Features and How to Update
Claude Code 2.0 shipped in 2025. The current release is 2.1.316.
On this page
- When was Claude Code 2.0 released?
- What was new in Claude Code 2.0?
- What changed after 2.0?
- How do I check my version and update Claude Code?
- What happens when you update an old 2.0 install?
- Can I pin a version, roll back or slow down updates?
- Will an old Claude Code version still work?
- Is the new version better on the same task?
- How do I use Claude Code with an API key instead of a subscription?
- Common questions
- Is Claude Code 2.0 the latest version?
- When was Claude Code 2.0 released?
- How do I update Claude Code?
- How do I install an older version of Claude Code?
- Does Claude Code work on the free plan?
- Sources checked
Claude Code 2.0 shipped on September 29, 2025 with a VS Code extension, a refreshed terminal interface and checkpoints you can return to with /rewind. It is no longer current: the 2.0 line ended at 2.0.77 on January 6, 2026, and the newest release on October 31, 2026 is 2.1.316.
| Version | Released | Status |
|---|---|---|
| 2.0.0 | Sep 29, 2025 | First 2.0 release |
| 2.0.77 | Jan 6, 2026 | Last 2.0.x |
| 2.1.0 | Jan 7, 2026 | First 2.1 release |
| 2.1.316 | Oct 31, 2026 | Latest |
To update a native install:
claude update
claude --version
When was Claude Code 2.0 released?
Anthropic published 2.0.0 to npm on September 29, 2025 at 14:41 UTC, the same day as its announcement, "Enabling Claude Code to work more autonomously" (npm registry, checked October 31, 2026). The 2.0 line ran to 2.0.77 on January 6, 2026, 70 published versions in all. Version 2.0.74 came out on December 19, 2025 and 2.0.76 on December 22, 2025.
Version 2.1.0 arrived the next day, January 7, 2026, and the registry held 555 versions in all by October 31, 2026. That day the latest tag pointed at 2.1.316 and the stable tag at 2.1.309. Anthropic's setup page says the stable channel is typically about a week behind and skips releases with major regressions (checked October 31, 2026).
What was new in Claude Code 2.0?
The main changes, from Anthropic's September 29, 2025 announcement and the 2.0.0 changelog:
- A native VS Code extension in beta, with a sidebar panel and inline diffs.
- A refreshed terminal interface with better status visibility and searchable prompt history on Ctrl+r.
- Checkpoints that save the code state before each change.
- The Claude Code SDK renamed the Claude Agent SDK.
- Claude Sonnet 4.5 as the default model.
The 2.0.0 changelog has ten items, among them "New native VS Code extension", "Fresh coat of paint throughout the whole app", "/rewind a conversation to undo code changes" and "/usage command to see plan limits".
Checkpoints still work that way today: every prompt that starts a turn creates one, a session keeps the 100 most recent, and snapshots are deleted about 30 days after the session last saved one. /rewind, or Esc twice on an empty prompt, opens a menu with four choices: restore code and conversation, restore the conversation, restore the code, or summarize. Files changed only by Bash commands are not tracked, and edits by subagents are usually not captured, so commit to git before a risky change.
What changed after 2.0?
Version 2.0.74, on December 19, 2025, added an LSP (Language Server Protocol) tool for go-to-definition, find references and hover documentation. Version 2.1.0, on January 7, 2026, carried 15 items, among them:
- Skills reload as soon as you create or edit them, without a restart.
- Skills can run in a forked sub-agent with
context: fork. - A
languagesetting picks the language Claude replies in. - Shift+Enter works out of the box in iTerm2, WezTerm, Ghostty and Kitty.
- A security fix stops OAuth tokens, API keys and passwords from appearing in debug logs.
Since version 2.1.89 (March 31, 2026), release manifests are signed, and earlier versions ship checksums only. The npm package now asks for Node.js 22 or later, up from Node.js 18 for 2.0.0. The default model for Pro, Max, Ultra, Team, Enterprise and the Anthropic API is now Opus 5.5.
| 2.0 (2025) | Now | |
|---|---|---|
| Version | 2.0.0 | 2.1.316 |
| Default model | Sonnet 4.5 | Opus 5.5 |
| Node for npm | 18+ | 22+ |
| CLI options | 40 | 66 |
| Commands | 6 | 18 |
The CLI options and Commands rows count the claude --help output of 2.0.76 and 2.1.316.
Compared with 2.0.76, the help output of 2.1.316 shows:
- New commands include
agentsfor background agents,attach,logs,stopandrmfor background sessions,auth,importto bring in config from another AI coding agent,purgeto delete a project's Claude Code data from the computer, andultrareview, a cloud-hosted multi-agent code review. - New options, among them
--worktreefor a new git worktree,--effortfromlowtomax,--bgto start in the background,--remote-control,--safe-modeto start with all customizations off, and--name. --permission-modedroppeddefaultanddelegateand addedautoandmanual, so scripts that passdefaultordelegateneed a new value.- Only one option disappeared:
--mcp-debug, which 2.0.76 already marked deprecated.
How do I check my version and update Claude Code?
Run claude --version to see which version you have: it prints the number followed by "(Claude Code)", for example 2.1.316 (Claude Code). Then update the same way you installed it.
# Native installer
claude update
# Homebrew, stable channel
brew upgrade claude-code
# Homebrew, latest channel
brew upgrade claude-code@latest
# WinGet
winget upgrade Anthropic.ClaudeCode
# npm
npm install -g @anthropic-ai/claude-code@latest
Native installs update themselves in the background, checking at startup and while running, and the new version takes effect the next time you start Claude Code. Homebrew, WinGet and Linux package installs (apt, dnf, apk) need a manual update. On a native install, claude update prints one of the first two lines below, and on a Homebrew, WinGet or apk install it prints the third.
Successfully updated from <old version> to version <new version>
Claude Code is up to date (<version>)
Claude is up to date!
claude doctor shows the result of the last update attempt and whether auto-updates are on. The VS Code extension's version number is the Claude Code version it bundles.
On npm, avoid npm update -g: it keeps the version range of the original install and may not reach the newest release. Do not use sudo npm install -g either.
What happens when you update an old 2.0 install?
On October 31, 2026 we ran five fresh installs on a Mac with Node.js 26.12.1, each in an empty home folder, and pointed them at Claude models through the OmniaKey API.
| Install | Started? | After update |
|---|---|---|
| Native 2.0.0 | Yes | 2.1.308 |
| Native 2.0.76 | Yes | 2.1.314 |
| npm 2.0.76 | Yes | Failed |
| npm 2.0.0 | Crashed | Not run |
Both native installs started, and claude update moved each one to 2.1.x. Installing 2.0.0 took 36.6 seconds and its update 35.6 seconds, and installing 2.0.76 took 51.6 seconds and its update 29.6 seconds.
Successfully updated from 2.0.0 to version 2.1.308
Successfully updated from 2.0.76 to version 2.1.314
Neither landed on 2.1.316, the newest version on npm that hour, so check claude --version after an update.
The npm 2.0.76 install started and then failed to update:
New version available: 2.1.316 (current: 2.0.76)
Error: Failed to install update
Or consider using native installation with: claude install
The version stayed 2.0.76. The npm 2.0.0 build never got that far: it crashed at startup on Node.js 26.12.1 with exit code 1.
TypeError: Cannot read properties of undefined (reading 'prototype')
The native 2.0.0 binary started fine on the same machine, so that crash belongs to the npm build of 2.0.0 on this Node version. The npm 2.1.316 install started and printed 2.1.316 (Claude Code). With an npm install, update with the npm command above, or, as the message suggests, move to the native installer with claude install.
After a native update, both versions stay under ~/.local/share/claude/versions/ and the launcher points at the new one. The binaries we measured were 74 MB for 2.0.0, 182 MB for 2.0.76, 275 MB for 2.1.308 and 279 MB for 2.1.314, so each update left the old binary on disk.
Can I pin a version, roll back or slow down updates?
Install a specific version with the same script and a version number:
curl -fsSL https://claude.ai/install.sh | bash -s 2.1.89
& ([scriptblock]::Create((irm https://claude.ai/install.ps1))) 2.1.89
Use stable in place of the number to start on the stable channel. Whichever channel you pick at install becomes the default for auto-updates, and you can change it later in settings.json:
{"autoUpdatesChannel": "stable"}
latest, the default, installs new releases as they appear. stable is typically about a week old and skips releases with major regressions, and the same switch sits in /config. A newly launched model can need a version newer than the stable channel serves, so switch to latest to run it at once.
minimumVersion sets a floor, and auto-updates plus claude update then refuse to install anything older:
{"minimumVersion": "2.1.143"}
DISABLE_AUTOUPDATER set to 1 in the env key of settings.json stops only the background check, and claude update still works. DISABLE_UPDATES blocks every path, manual ones included.
Two users' bug reports on GitHub show the rough edges. On February 12, 2026, one user reported: "When running curl -fsSL https://claude.ai/install.sh | bash -s <version> to install a specific version, the script downloads the new binary but fails to update the symlink, leaving the user on the old version" (issue #25165, closed).
On May 17, 2026, a Windows user reported that after installing 2.1.143 on the stable channel, the auto-updater put back 2.1.133, the stable build at the time. Setting autoUpdatesChannel: "latest" together with minimumVersion: "2.1.143" "stopped the revert" (issue #60065, closed).
After pinning, run claude --version and confirm the number you expected.
Will an old Claude Code version still work?
Anthropic publishes no cut-off date for old builds, and none of its pages we checked says 2.0.x is refused. The API can still reject a request with a 400 claude_code_version_too_old when the model you selected needs a newer build, or when your organization's policy requires one (Anthropic errors page, checked October 31, 2026).
Behind a gateway, an old install's built-in default model can break it. Started with no model set, 2.0.76 asked for claude-sonnet-4-5-20250929, its built-in default, and the request failed because our gateway does not serve that model. 2.1.316 asked for claude-opus-5-5 and answered.
Set the model yourself with --model or the ANTHROPIC_MODEL environment variable. Given --model claude-sonnet-5-5, 2.0.76 did the bug fix below without trouble.
Early 2.0 builds had their own problems too: a user reported on October 1, 2025 that Claude Code 2.0.0 and 2.0.1 kept freezing in Emacs and in a shell on Linux (issue #8657, closed).
So update unless you have a reason to stay. If you stay on 2.0, name the model in every session.
Is the new version better on the same task?
We ran one bug-fix task on 2.0.76 and 2.1.316, non-interactively, both with --model claude-sonnet-5-5.
Task:
The tests in test_wordcount.py fail. Find the bug in wordcount.py, fix it, and run python3 test_wordcount.py to confirm. Do not change the test file.
The bug was a case-sensitive word count.
| 2.0.76 | 2.1.316 | |
|---|---|---|
| Fix | Same line | Same line |
| Tests after | Pass | Pass |
| Time | 25.8 s | 15.9 s |
| Turns | 5 | 5 |
| CLI cost estimate | $0.129 | $0.055 |
| Cache read | 50,547 | 34,306 |
Both versions made the same one-line fix, lowercasing the text with text.lower() before counting, and left the test file alone. The tests passed on both, and the two diffs are byte-identical, so the newer build changed the time taken, not the answer.
Version 2.1.316 finished in 15.9 seconds against 25.8 seconds, 38% less time, and its Claude Code cost estimate was $0.055 against $0.129, mostly because it read and wrote fewer cached tokens. Those two dollar figures are Claude Code's own cost estimate, not what we paid. One task, one run on each version, is a small sample.
How do I use Claude Code with an API key instead of a subscription?
Claude Code needs a Pro, Max, Ultra, Team, Enterprise or Console account, and the free claude.ai plan does not include it. A gateway takes two variables: ANTHROPIC_BASE_URL for where requests go, and a credential, where ANTHROPIC_AUTH_TOKEN is sent as Authorization: Bearer and ANTHROPIC_API_KEY as x-api-key. The base URL changes where requests go, not which model answers, so name the model as well.
export ANTHROPIC_BASE_URL="https://api.omniakey.com"
export ANTHROPIC_AUTH_TOKEN="your-omniakey-api-key"
claude --model claude-sonnet-5-5
Our tests above ran this way, with an OmniaKey key in ANTHROPIC_AUTH_TOKEN.
The Claude Code API key guide covers the variables and Windows setup. For the longer walkthrough, read our setup guide and Claude Code without a subscription. The Claude Opus 5.5 and Claude Sonnet 5.5 model pages show what each one is for, and plan prices sit in our Claude Code pricing guide.
Common questions
Is Claude Code 2.0 the latest version?
No. The 2.0 line ended at 2.0.77 on January 6, 2026, and the newest release on October 31, 2026 is 2.1.316. Run claude --version to see yours.
When was Claude Code 2.0 released?
Claude Code 2.0 was released on September 29, 2025, when version 2.0.0 reached npm on the same day as Anthropic's announcement. The 2.1 line started on January 7, 2026.
How do I update Claude Code?
On a native install, run claude update, or let it update itself in the background. Homebrew uses brew upgrade claude-code or brew upgrade claude-code@latest, WinGet uses winget upgrade Anthropic.ClaudeCode, and npm uses npm install -g @anthropic-ai/claude-code@latest. Then check the result with claude --version.
How do I install an older version of Claude Code?
Pass the version to the install script: curl -fsSL https://claude.ai/install.sh | bash -s 2.1.89 on macOS, Linux or WSL, or & ([scriptblock]::Create((irm https://claude.ai/install.ps1))) 2.1.89 in PowerShell.
Does Claude Code work on the free plan?
No. The free claude.ai plan does not include Claude Code, which needs a Pro, Max, Ultra, Team, Enterprise or Console account. The other way in is an API key, from the Anthropic Console or from a gateway, billed by usage.
Sources checked
- npm: @anthropic-ai/claude-code — checked October 31, 2026
- Anthropic: Enabling Claude Code to work more autonomously — checked October 31, 2026
- Claude Code changelog — checked October 31, 2026
- Claude Code setup — checked October 31, 2026
- Claude Code checkpointing — checked October 31, 2026
- Claude Code with an LLM gateway — checked October 31, 2026
- Claude Code model configuration — checked October 31, 2026
- Claude Code errors — checked October 31, 2026
- Claude Code in VS Code — checked October 31, 2026
- Use Claude Code with Pro, Max or Ultra — checked October 31, 2026
- GitHub issue #8657 — checked October 31, 2026
- GitHub issue #25165 — checked October 31, 2026
- GitHub issue #60065 — checked October 31, 2026
Related articles
Use Claude Code with OmniaKey
Point Claude Code at OmniaKey's Anthropic-native endpoint — two environment variables, Claude models that are never silently swapped, billing per token with no monthly plan.
Claude Code API Without a Subscription
Claude Code's local terminal can use API billing instead of a monthly Claude plan. You still pay for model usage; the difference is how authentication and billing work.
Claude Code Pricing
Pick a subscription for a recurring allowance and the Claude apps, or API billing when you want metered usage, explicit model costs and per-project spend control.
Recent posts
- Seedream 5.0 Pro vs Nano Banana Pro: Same-Prompt Test and Price
- Suno v6 Review: Real Songs, Speed and How It Compares to v4.5
- Wan 3.0 API: Text-to-Video and Image-to-Video in Python
- Codex Image Generation With a Custom Provider: imagegen Setup
- Factory Droid Custom Models: Use Claude and GPT With Your Own API Key