This page helps with the practical version questions people actually search for: what is the current Claude Code version, how do I update it, and what should I check if behavior changes after an update.
To check the current state:
claude --version
npm view @anthropic-ai/claude-code dist-tags --jsonThen update with the command that matches your install method:
| Install method | Update command | Notes |
|---|---|---|
| Native installer | claude update | Native installs also update in the background. |
| npm global package | npm install -g @anthropic-ai/claude-code@latest | Do not rely on npm update -g for latest. |
| Homebrew stable | brew upgrade claude-code | Tracks the more conservative stable channel. |
| Homebrew latest | brew upgrade claude-code@latest | Receives new versions sooner. |
| WinGet | winget upgrade Anthropic.ClaudeCode | Close running Claude Code sessions if Windows locks the executable. |
| apt | sudo apt update && sudo apt upgrade claude-code | Uses the system package manager. |
| dnf | sudo dnf upgrade claude-code | Uses the system package manager. |
| apk | apk update && apk upgrade claude-code | Used for Alpine. |
Do not trust a random screenshot as the source of truth. Claude Code has latest and stable channels, several installers, and background auto-updates, so different machines can show different versions on the same day.
claude --versionIf the command is missing, return to the installation guide and check PATH plus the install method used in your real development terminal.
npm view @anthropic-ai/claude-code dist-tags --jsonYou may see output like:
{
"latest": "2.1.156",
"next": "2.1.156",
"stable": "2.1.145"
}Use the tags this way:
| Tag | Meaning | Best for |
|---|---|---|
latest | Fastest public release channel. | Personal development and early feature access. |
next | A moving release tag; currently the same as latest when both point to the same version. | People watching rolling releases. |
stable | More conservative channel, typically behind latest. | Teams, production repositories, and client delivery work. |
Use official sources for release notes:
At the time this page was checked, 2.1.156 was the newest changelog entry and fixed an Opus 4.8 issue where thinking blocks could be modified and cause API errors. The important user-facing release is 2.1.154, which added Opus 4.8 support, dynamic workflows, cheaper Opus 4.8 fast mode, high effort defaults, and several agent, plugin, MCP, safety, and background-session fixes.
The May 28-29, 2026 update is worth separating into two layers:
| Layer | What changed | Why it matters |
|---|---|---|
| Claude model | Claude Opus 4.8 is available as claude-opus-4-8. | It targets stronger long-horizon agentic coding, better tool triggering, better compaction behavior, and fewer unsupported claims. |
| Claude Code CLI | 2.1.154 added Opus 4.8 support and 2.1.156 fixed a same-week Opus 4.8 thinking-block error. | Update to at least 2.1.156 if you hit Opus 4.8 API errors after the rollout. |
| Effort | Opus 4.8 defaults to high effort. Claude Code points difficult work toward /effort xhigh. | Better quality can cost more tokens, so do not treat a model upgrade as free. |
| Dynamic workflows | Claude Code can orchestrate many subagents in the background through workflow scripts. | Useful for large audits, migrations, and cross-checked research, but it can consume far more usage than a normal session. |
| Ultracode | Claude Code exposes an ultracode effort setting that combines xhigh with workflow choice. | Use it for serious scoped sessions, not as a permanent default. |
| Fast mode | Opus 4.8 fast mode is available at 2x standard pricing for up to 2.5x output speed. | Good for latency-sensitive work; poor default for long unattended runs. |
For the new workflow feature, read Claude Code Dynamic Workflows and Claude Code Ultracode before turning either into a team default. If Opus 4.8 feels slow or expensive after the update, use Opus 4.8 slow or expensive troubleshooting.
Many searches for “Claude Code latest version” are really asking: should I chase latest or stay on stable?
| Scenario | Recommended channel | Why |
|---|---|---|
| Personal learning | latest | You can try new capabilities early. |
| Everyday solo development | latest or stable | Use latest if small changes are acceptable; stable if the repo is sensitive. |
| Shared team workflow | Start with stable | Reduces version-related collaboration drift. |
| Client or production repository | stable or a pinned version | Avoid surprise behavior changes during delivery. |
| Known bug fix | Check changelog first | Upgrade when a newer version actually fixes your issue. |
If you are working on a SaaS template, payments, database migrations, Cloudflare deployment, or SEO URL migration, treat an upgrade like a small engineering change: verify it locally before making it part of the main workflow.
Native installs normally update in the background. To update immediately:
claude update
claude --versionFor a more conservative release channel, set:
{
"autoUpdatesChannel": "stable"
}You can also pin a version floor:
{
"autoUpdatesChannel": "stable",
"minimumVersion": "2.1.100"
}If you installed Claude Code globally with npm:
npm install -g @anthropic-ai/claude-code@latest
claude --versionThe official setup docs warn against relying on npm update -g for the newest release because it may respect the semver range from the original install.
Avoid:
sudo npm install -g @anthropic-ai/claude-codeUsing sudo for global npm installs can create permission and security problems. Fix the npm global directory or use the native installer instead.
Stable cask:
brew upgrade claude-code
claude --versionLatest cask:
brew upgrade claude-code@latest
claude --versionHomebrew keeps older versions on disk after upgrades. Reclaim space with:
brew cleanupwinget upgrade Anthropic.ClaudeCode
claude --versionIf the upgrade fails, close all running Claude Code sessions and try again. Windows can block replacement while the executable is still running.
Debian or Ubuntu:
sudo apt update && sudo apt upgrade claude-codeFedora or RHEL:
sudo dnf upgrade claude-codeAlpine:
apk update && apk upgrade claude-codeThese package-manager installs generally update through the system package manager, not through Claude Code background updates.
Before upgrading, check:
| Check | Why it matters |
|---|---|
| Which install method is active? | native, npm, Homebrew, WinGet, apt, dnf, and apk use different update paths. |
| What version is installed now? | Run claude --version before changing anything. |
| Do you need a new feature or a bug fix? | If not, stable may be the better choice. |
| Is a release or migration in progress? | Avoid adding version drift during sensitive work. |
| Does the team need one version? | Different versions can change permission modes, UI labels, and command behavior. |
| Is this a production repository? | Test in a small repo or branch first. |
For database, auth, payment, Cloudflare, MCP permissions, or SEO URL work, start with Plan Mode and make the upgrade a reviewed step.
After updating:
claude --version
claude doctorThen check a small project:
For teams, record:
| Record | Example |
|---|---|
| Previous version | 2.1.145 |
| New version | 2.1.156 |
| Install method | Homebrew stable / npm / native |
| Reason | Required bug fix or feature |
| Verification result | claude doctor OK, MCP OK |
| Rollback path | Reinstall previous version or switch back to stable |
claude --version Still Shows an Old VersionCheck which binary your shell resolves:
which claude
npm list -g @anthropic-ai/claude-code --depth=0On macOS or Linux, multiple claude binaries can exist and PATH order decides which one runs. On Windows, check PowerShell, CMD, Git Bash, WSL, and the IDE terminal separately.
Common causes:
Confirm the install method first, then use the matching update command.
PowerShell, CMD, Git Bash, and WSL are separate environments. Updating in PowerShell does not update WSL. Check and update Claude Code inside the terminal where the project actually runs.
Check:
If the update disrupts production work, move back to the last known-good version or stable, then investigate.
Use one of these strategies:
| Strategy | How | Best for |
|---|---|---|
| Stable channel | autoUpdatesChannel: "stable" or Homebrew stable cask | Team defaults. |
| Minimum version | minimumVersion | Prevent very old machines. |
| Specific version | Native installer with a version number | Client delivery, reproduction, rollback. |
Specific version example:
curl -fsSL https://claude.ai/install.sh | bash -s 2.1.89Official releases also provide manifest and signature verification for controlled environments.
As checked on May 29, 2026, npm reports latest and next as 2.1.156, and stable as 2.1.145. Always verify before upgrading:
npm view @anthropic-ai/claude-code dist-tags --jsonPackage publishing, documentation generation, and package-manager sync can have small delays. Use the source tied to your install method, then read the official changelog to decide whether the change matters.
No. Use latest for personal experimentation. Use stable or a pinned version for shared teams, client work, and production repositories.
Native installs auto-update in the background. Homebrew, WinGet, apt, dnf, apk, and npm installs usually require manual updates.
claude update or npm install -g?Use the command that matches your original install method. Native installer users should use claude update; npm users should use npm install -g @anthropic-ai/claude-code@latest. Mixing installers is the fastest way to create version confusion.