# Claude Code 2.0: Release Date, New Features and How to Update

> Claude Code 2.0 shipped on September 29, 2025 and is not current: 2.1.316 is the October 31, 2026 release. Update steps for native, Homebrew, WinGet and npm.

- Canonical HTML: https://omniakey.com/blog/claude-code-2-0
- Markdown: https://omniakey.com/blog/claude-code-2-0.md
- Published: 2026-10-31 (updated 2026-10-31)
- Author: Kiki, COO at OmniaKey
- Language: en
- Category: Guide
- Reading time: 10 min
- All posts: https://omniakey.com/blog/llms.txt

---

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:

```bash
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 `language` setting 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 `agents` for background agents, `attach`, `logs`, `stop` and `rm` for background sessions, `auth`, `import` to bring in config from another AI coding agent, `purge` to delete a project's Claude Code data from the computer, and `ultrareview`, a cloud-hosted multi-agent code review.
- New options, among them `--worktree` for a new git worktree, `--effort` from `low` to `max`, `--bg` to start in the background, `--remote-control`, `--safe-mode` to start with all customizations off, and `--name`.
- `--permission-mode` dropped `default` and `delegate` and added `auto` and `manual`, so scripts that pass `default` or `delegate` need 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.

```bash
# Native installer
claude update
```

```bash
# Homebrew, stable channel
brew upgrade claude-code
# Homebrew, latest channel
brew upgrade claude-code@latest
```

```bash
# WinGet
winget upgrade Anthropic.ClaudeCode
```

```bash
# 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.

```text
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.

```text
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:

```text
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.

```text
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:

```bash
curl -fsSL https://claude.ai/install.sh | bash -s 2.1.89
```

```powershell
& ([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:

```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:

```json
{"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](https://github.com/anthropics/claude-code/issues/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](https://github.com/anthropics/claude-code/issues/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](https://github.com/anthropics/claude-code/issues/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.

```bash
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](https://docs.omniakey.com/en/guides/claude-code-api-key) covers the variables and Windows setup. For the longer walkthrough, read [our setup guide](https://omniakey.com/blog/claude-code-setup) and [Claude Code without a subscription](https://omniakey.com/blog/claude-code-api-without-subscription). The [Claude Opus 5.5](https://omniakey.com/claude-opus-5-5) and [Claude Sonnet 5.5](https://omniakey.com/claude-sonnet-5-5) model pages show what each one is for, and plan prices sit in [our Claude Code pricing guide](https://omniakey.com/blog/claude-code-pricing).

## 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](https://www.npmjs.com/package/@anthropic-ai/claude-code) — checked October 31, 2026
- [Anthropic: Enabling Claude Code to work more autonomously](https://www.anthropic.com/news/enabling-claude-code-to-work-more-autonomously) — checked October 31, 2026
- [Claude Code changelog](https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md) — checked October 31, 2026
- [Claude Code setup](https://code.claude.com/docs/en/setup) — checked October 31, 2026
- [Claude Code checkpointing](https://code.claude.com/docs/en/checkpointing) — checked October 31, 2026
- [Claude Code with an LLM gateway](https://code.claude.com/docs/en/llm-gateway-connect) — checked October 31, 2026
- [Claude Code model configuration](https://code.claude.com/docs/en/model-config) — checked October 31, 2026
- [Claude Code errors](https://code.claude.com/docs/en/errors) — checked October 31, 2026
- [Claude Code in VS Code](https://code.claude.com/docs/en/vs-code) — checked October 31, 2026
- [Use Claude Code with Pro, Max or Ultra](https://support.claude.com/en/articles/11145838-use-claude-code-with-your-pro-max-or-ultra) — checked October 31, 2026
- [GitHub issue #8657](https://github.com/anthropics/claude-code/issues/8657) — checked October 31, 2026
- [GitHub issue #25165](https://github.com/anthropics/claude-code/issues/25165) — checked October 31, 2026
- [GitHub issue #60065](https://github.com/anthropics/claude-code/issues/60065) — checked October 31, 2026
