Part ofWhat Is Claude Code? The Complete Guide
In This Article
8 sectionsQuick answer
The fastest way to update Claude Code is to run `claude update` in your terminal — it fetches the latest version and installs it in seconds. Check your current build first with `claude --version`. Because Claude Code auto-updates in the background on startup, you're usually already current; this guide covers how to update Claude Code manually, by npm, and by package manager for the times you're not.
We update Claude Code constantly — new models and features ship weekly, and staying current is the difference between using last month's agent and today's. The good news: it's almost always a single command. Below is exactly how to update Claude Code on every install method, how the built-in auto-updater works, and what to do when an update refuses to apply.
Step 1: Check your current Claude Code version
Before you update, see what you're running so you can confirm the change afterward. In any terminal, run:
claude --version
That prints the installed version number. You can also type /status inside an interactive Claude Code session to see the version alongside your model and account. Note it down — in Step 3 you'll compare against it to prove the update landed. If the command isn't found at all, Claude Code isn't installed yet, and you want our what is Claude Code explainer instead of this update guide.
Step 2: Run the claude update command
For the standard (native) installation, one command does everything:
claude update
This applies an update immediately instead of waiting for the next background check. It downloads the latest release, swaps it in, and reports the new version. This is the single most important thing to know about how to update Claude Code — the built-in updater handles the download, install, and cleanup for you, so you rarely need npm or a package manager at all.
Step 3: Verify Claude Code updated to the latest version
Confirm the update actually applied. Run the version command again:
claude --version
The number should now be higher than what you saw in Step 1. If Claude Code was already running, fully quit and relaunch it — updates take effect on the next start, not mid-session. Once the version bumps, you're done: that's the complete path for how to update Claude Code on a default install.
How to update Claude Code installed with npm
If you installed Claude Code through Node's package manager, update it the npm way. This is the answer to the common "npm update Claude Code" question:
npm install -g @anthropic-ai/claude-code@latest
Using @latest forces npm to pull the newest published package rather than a cached one. If you hit a permissions error on the global install, that usually points to a Node setup issue — our guide on Node.js for Claude Code walks through fixing the global install path so update Claude Code npm commands run cleanly without sudo.
How to update Claude Code from a package manager
Package-manager installs are the exception to auto-updates — Homebrew, WinGet, apt, dnf, and apk do not update Claude Code automatically. You upgrade them with the manager's own command:
| Installed via | Update command |
|---|---|
| Native installer | claude update |
| npm | npm install -g @anthropic-ai/claude-code@latest |
| Homebrew (macOS) | brew upgrade claude-code |
| WinGet (Windows) | winget upgrade Anthropic.ClaudeCode |
| apt / dnf / apk (Linux) | your manager's upgrade command for the claude-code package |
If you're not sure which method you used, claude update is safe to try first — on a package-manager install it will simply tell you to use the manager instead.
How Claude Code auto-updates (and how to turn it off)
Most of the time you never think about updates because Claude Code checks for them on startup and periodically while running, then downloads and installs in the background. The new version takes effect the next time you launch. That's why claude --version sometimes jumps without you doing anything.
You can control that behavior in your settings.json env block:
| Setting | Effect |
|---|---|
DISABLE_AUTOUPDATER=1 | Stops background update checks only — claude update and claude install still work |
DISABLE_UPDATES=1 | Blocks all update paths, including manual ones |
Reach for DISABLE_AUTOUPDATER on a metered connection or when you want to pin a version for a workday but still update on demand. Use DISABLE_UPDATES only when you distribute Claude Code through your own channel and need everyone on a fixed build. Anthropic documents both in the Claude Code setup guide.
If you originally installed through npm and want the smoother hands-off experience, you can migrate to the self-updating native build by running claude install. After that, background updates and claude update take over — it's the cleanest long-term answer to how to update Claude Code without thinking about it again.
When and why to update Claude Code
Claude Code ships updates on a near-weekly cadence — new model support, tool and slash-command improvements, and bug fixes — and you can see exactly what changed in the official Claude Code changelog. Staying current matters more here than with most CLI tools: when Anthropic releases a new model like Claude Opus 4.8, an up-to-date Claude Code is what lets you actually select it in the model picker.
A practical rhythm keeps you current without fuss:
- Let auto-update do its job day to day. On a native install you're usually already on the latest without lifting a finger.
- Run
claude updatebefore anything big. A large refactor or a long agentic session is exactly when you want the newest reasoning and fixes. - Update after any Anthropic model or feature announcement. New capabilities often need a fresh build to appear as a model or command.
- Pin a version only with a reason. If a workflow depends on specific behavior, disable auto-updates and move deliberately.
Knowing how to update Claude Code on demand — rather than only trusting the background updater — is what keeps that cadence in your hands.
Troubleshooting a Claude Code update that won't apply
You now know how to update Claude Code the normal way; when the version stubbornly won't move, work through these in order:
- You didn't restart. Updates apply on the next launch. Quit Claude Code completely (close the terminal session) and reopen it.
- Auto-updates are disabled. Check your
settings.jsonforDISABLE_AUTOUPDATERorDISABLE_UPDATESand remove them, then runclaude update. - Wrong install method. A package-manager install ignores
claude update— usebrew upgrade,winget upgrade, or the relevant manager command from the table above. - Permissions or a stale npm cache. For npm installs, a failed global write blocks the update. Fix the Node global path (see the Node.js guide linked above) and re-run with
@latest.
Almost every "update won't work" case is one of those four. For the full command reference — every flag and config option — see our Claude Code CLI documentation.
Frequently Asked Questions

Written by
InnovateTechie
Writing about Claude and the Anthropic toolkit — models, Claude Code, pricing, features, and fixes, in clear, practical, hands-on guides tested by daily use.
View all posts →




