# Update Claude Code: the one command, per install

> How to update Claude Code: it usually updates itself, claude update forces it now, and the right manual command depends on how you installed it.

By Matt Burns, BeingAINative. Canonical: https://beingainative.com/answers/update-claude-code  
Published: 2026-08-16

## The short answer

To update Claude Code manually, run claude update in your terminal. It'll tell you either the version it just installed or that you're already current.

Honestly though, most people never need to run it, because the native install updates itself in the background: it checks when you start it and periodically while it runs, and the new version kicks in the next time you launch. The exceptions are package-manager installs like Homebrew and npm, which follow their own upgrade commands.

Run claude --version any time to see what you're on, and claude doctor to see what the last update attempt actually did. All commands verified against Anthropic's setup docs on 2026-08-06.

This is one of those questions where the answer is shorter than the search that got you here: it probably already updated itself. But let's cover the cases where it didn't.

## Which command matches your install?

The right manual command depends on how Claude Code got onto your machine in the first place ([setup docs](https://code.claude.com/docs/en/setup)):

| You installed with | Update command | Auto-updates? |
| --- | --- | --- |
| The install script (native) | `claude update` | Yes, in the background |
| Homebrew | `brew upgrade claude-code` | No, by default |
| WinGet | `winget upgrade Anthropic.ClaudeCode` | No, by default |
| npm | `npm install -g @anthropic-ai/claude-code@latest` | Only if the global directory is writable |

![The native Claude Code install updates itself in the background with nothing to type, while the Homebrew, WinGet, and npm installs wait until you type an upgrade command at the terminal prompt.](https://beingainative.com/_astro/update-channels.wAJT0h8l.svg)

One npm trap I want to name specifically, because it burns people: don't use `npm update -g`. It respects the version range from your original install and can quietly leave you on an old release while telling you nothing. The `@latest` command in the table always moves you forward.

## Why is my version behind on purpose?

Because Claude Code ships on two release channels, and you might be on the careful one.

The default channel, latest, gets new features the moment they ship. The stable channel runs about a week behind and skips releases with major regressions ([release channels](https://code.claude.com/docs/en/setup#configure-release-channel)). So before you assume something's broken, check `/config` under Auto-update channel.

![Claude Code's latest channel sits on the newest release while the stable channel holds a version about a week back and skips a release with a major regression, so a trailing version can be deliberate rather than broken.](https://beingainative.com/_astro/update-release-channels.t2b5auY8.svg)

(Homebrew picks the channel by cask name instead: `claude-code` tracks stable, `claude-code@latest` tracks latest. Naming things is hard.)

## Can you turn updates off?

Yes. Set `DISABLE_AUTOUPDATER` to `"1"` in the `env` block of your `settings.json` and the background check stops ([disable auto-updates](https://code.claude.com/docs/en/setup#disable-auto-updates)). `claude update` still works, so you choose the moment yourself. Teams that ship their own builds can block every update path with `DISABLE_UPDATES` instead.

And if an update ever leaves things feeling weird? Run `claude doctor`. It prints install diagnostics without starting a session, including exactly what the last update attempt did. Verify before you assume.
