Key takeaways

  • Running claude update applies the newest Claude Code version immediately, and native installs also update in the background.
  • Homebrew, WinGet, apt, dnf, apk and npm installs do not auto-update and need their own upgrade command.
  • The autoUpdatesChannel setting picks latest or stable, DISABLE_AUTOUPDATER stops background updates, and claude doctor shows the last update attempt.

Claude Code how to update, in short: run claude update in your terminal. It applies the newest version at once. Native installs also update themselves in the background, but Homebrew, WinGet, npm and Linux package installs need their own upgrade command. This guide follows Anthropic's advanced setup page, as read on October 29, 2026.

If you haven't installed it yet, start with our guide on how to install Claude Code.

Check which version you have

Run this in your shell:

claude --version

It prints a number such as 2.1.211 (Claude Code). For more detail, run claude doctor. It prints read-only diagnostics without starting a session, including the result of the last update attempt and whether auto-updates are on.

How to update Claude Code with claude update

claude update

If an update installs, the command prints Successfully updated from <old version> to version <new version>. If you are current, it prints Claude Code is up to date (<version>). Installs managed by Homebrew, WinGet or apk print Claude is up to date! instead.

A new version takes effect the next time you start Claude Code, so restart any open session.

Update by installation method

How you update depends on how you installed. The docs list these commands:

Installed with Auto-updates? Update command
Native installer Yes, in the background claude update
Homebrew (stable cask) No brew upgrade claude-code
Homebrew (latest cask) No brew upgrade claude-code@latest
WinGet No winget upgrade Anthropic.ClaudeCode
apt (Debian, Ubuntu) No sudo apt update && sudo apt upgrade claude-code
dnf (Fedora, RHEL) No sudo dnf upgrade claude-code
apk (Alpine) No apk update && apk upgrade claude-code
npm See below npm install -g @anthropic-ai/claude-code@latest

For npm, Anthropic says to avoid npm update -g. It respects the version range from the original install and may not reach the newest release. Do not use sudo with npm global installs either.

Anthropic also notes a known issue: Claude Code can announce an update before the new version reaches Homebrew, WinGet or the Linux repositories. If the upgrade fails, wait and try again later. Homebrew keeps old versions on disk, so run brew cleanup now and then to free space.

How auto-updates work

On native installs, Claude Code checks for updates on startup and while it runs. It downloads and installs them in the background, and they apply the next time you start it.

Homebrew and WinGet users can opt in. Set the environment variable CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE to 1, and Claude Code runs the upgrade for you and shows a restart prompt. On WinGet this can fail while Claude Code is running, because Windows locks the executable. apt, dnf and apk always need a manual upgrade, because those commands need elevated privileges.

Choose the stable or latest channel

Two release channels exist:

  • latest, the default. New versions arrive as soon as they ship.
  • stable. A version that is typically about a week old, which skips releases with major regressions.

Set it in /config under Auto-update channel, or in your settings.json:

{
  "autoUpdatesChannel": "stable"
}

One catch from the docs: a newly launched model can need a Claude Code version newer than the stable channel serves. If a model isn't available to you, move to latest. Homebrew picks the channel by cask name (claude-code is stable, claude-code@latest is latest), and apt, dnf and apk pick it by repository.

To avoid being moved backwards, use minimumVersion. Auto-updates and claude update refuse to install anything below it:

{
  "autoUpdatesChannel": "stable",
  "minimumVersion": "2.1.100"
}

How to turn off Claude Code auto-updates

Set DISABLE_AUTOUPDATER to "1" in the env key of settings.json:

{
  "env": {
    "DISABLE_AUTOUPDATER": "1"
  }
}

Run claude doctor to confirm. The Auto-updates line should read disabled (set by env: DISABLE_AUTOUPDATER). This only stops the background check. claude update and claude install still work. To block every update path, set DISABLE_UPDATES instead. Anthropic suggests that for teams who distribute Claude Code through their own tooling.

Install a specific version

The native installer accepts a version number or a channel name. On macOS, Linux and WSL:

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

In Windows PowerShell, the docs use & ([scriptblock]::Create((irm https://claude.ai/install.ps1))) 2.1.89. Run claude --version afterward to confirm.

When the update fails

  • Auto-update failed · Run claude doctor in the footer. The background update didn't install, and you can keep working. Run claude update in your shell to finish it or to see the error.
  • The connection dropped while downloading the update. Claude Code retries up to three times. Run claude update again. If you are behind a proxy, set HTTPS_PROXY first. A download that stalls for 10 minutes fails with a timeout and is not retried.
  • Release verification failed for Claude Code. Nothing was installed and your current version still works. If the reason starts with sidecar_fetch_, run the command again. Otherwise try again later, and report the problem if it repeats.
  • npm install can't update. If the npm global directory isn't writable, Claude Code shows a notice at startup and claude doctor lists fixes.
  • Custom launcher on macOS or Linux. If you replaced ~/.local/bin/claude with your own script or symlink, updates install new versions but leave your launcher alone. Remove the file and run claude update to hand control back.

Anthropic's docs also say that updating Claude Code to v2.1.301 or later removes stray >0q characters some older terminals print at startup. For anything else, /doctor inside Claude Code runs an automated check.

Frequently asked questions

How do I check my Claude Code version?

Run claude --version, which prints a number such as 2.1.211 (Claude Code). Run claude doctor for more detail, including the result of the last update attempt.

Does Claude Code update automatically?

Native installations update in the background and apply the update the next time you start Claude Code. Homebrew, WinGet, apt, dnf, apk and npm installs need a manual upgrade by default.

How do I turn off Claude Code auto-updates?

Set DISABLE_AUTOUPDATER to "1" in the env key of settings.json. This stops only the background check, so claude update still works. Set DISABLE_UPDATES to block every update path.

What is the difference between the stable and latest channels?

Latest, the default, gets new versions as soon as they ship. Stable is typically about a week behind and skips releases with major regressions. Set autoUpdatesChannel in settings.json or use /config.

Sources

  1. Advanced setup: Update Claude CodeAnthropic
  2. Troubleshoot installation and loginAnthropic
  3. TroubleshootingAnthropic