T-CREATOR

<div />

Claude Code のアップデートの動き: Homebrew は自動で上がらず brew upgrade が要る

Claude Code のアップデートの動き: Homebrew は自動で上がらず brew upgrade が要る

Claude Code が自動で新しくなるかは、入れ方で決まります。公式のインストーラーや npm で入れたときは自動で更新され、Homebrew や WinGet や apt などで入れたときは、自分で更新するまで古いままです。2026年11月5日に、Homebrew で入れた Claude Code 2.1.309 で表示を確かめました。自動で更新されるときの動きは、公式の「Advanced setup」のページによります。

経緯

2026年11月2日に Homebrew で入れた Claude Code が、11月5日になっても 2.1.309 のままでした。Homebrew にはもっと新しいバージョンが出ていたので、入れ方ごとの更新のされ方と、今の状態の確かめ方を調べました。

環境

  • macOS 26.6.2
  • Claude Code 2.1.309(Homebrew の claude-code で入れたもの。2026年11月5日に確認)
  • Homebrew 7.0.12(Mac にソフトを入れて更新する道具)

動き

入れ方で、自動で更新されるかが決まる

公式の説明では、入れ方ごとの更新のされ方は次のとおりです。

入れ方更新のされ方
公式のインストーラー(公式のページの install.sh を実行して入れる)自動で更新される
npm(Node.js のパッケージを入れる道具。npm install -g @anthropic-ai​/​claude-code)自動で更新される
Homebrew、WinGet自動では更新されない。brew upgrade か winget upgrade で上げる
apt、dnf、apk(Linux のパッケージを入れる道具)自動では更新されない。いつものシステムの更新で上がる

自動で更新されるときは、Claude Code が起動したときと使っている途中に新しいバージョンを探し、裏で入れます。新しいバージョンになるのは、次に Claude Code を起動したときからです。開いたままの画面は、古いバージョンのまま動きます。

今のバージョンは claude --version で分かる

terminal$ claude --version
2.1.309 (Claude Code)

入れ方と更新の状態は claude doctor で分かる

claude doctor は、入れ方や、自動の更新の状態を表示します。表示を読むだけで、設定は変えません。

terminal$ claude doctor
Claude Code doctor

Running: package-manager (2.1.309)
Commit: 1ce7e4ff2da8
Platform: darwin-arm64
Package manager: homebrew
Path: /opt/homebrew/Caskroom/claude-code/2.1.309/claude
Config install method: unknown
Search: OK (bundled)
Auto-updates: Managed by package manager
Auto-update channel: latest
Last update attempt: none recorded
(以下、省略)

No installation issues found.
行意味
Package manager: homebrewHomebrew で入れたもの
Auto-updates: Managed by package managerClaude Code は自分で更新せず、Homebrew に任せている
Auto-update channel: latest自動で更新するときに追う版の種類の設定。Homebrew で入れたときは、この設定ではなく、入れたパッケージの種類で決まる(下の節)
Last update attempt: none recorded自動の更新の記録がない

Homebrew では、新しい版が出ても上がらない

brew info --cask claude-code で、入っている版と、Homebrew にある版を比べられます。

terminal$ brew info --cask claude-code
==> claude-code (Claude Code): 2.1.309 → 2.1.311
Terminal-based AI coding assistant
https://claude.com/product/claude-code
Installed (on request)
/opt/homebrew/Caskroom/claude-code/2.1.309 (275.9MB)

1行目の 2.1.309 → 2.1.311 は、入っているのが 2.1.309 で、Homebrew には 2.1.311 があるという意味です。3日のあいだに新しい版が出ていましたが、手元は上がっていませんでした。

Homebrew の Claude Code には、2種類のパッケージがあります。claude-code は、1週間ほど遅れて、大きな不具合のある版を飛ばす stable の版を追います。claude-code@latest は、出たばかりの latest の版を追います。同じ日に brew info --cask claude-code@latest で見ると、2.1.317 でした。

公式との違い

公式の「Advanced setup」のページには、入れ方ごとの更新のされ方が、それぞれの節に分かれて書かれています。claude doctor の各行の意味はまとまっていません。また、Homebrew の claude-code(stable の版)で入れていても、claude doctor には Auto-update channel: latest と出ました。Homebrew で入れたときに追う版は、この表示ではなく、入れたパッケージの種類で決まります。

対処

Homebrew で入れたものを更新したいとき

claude-code で入れたときは、次のコマンドを実行します(公式の説明による)。

terminal$ brew upgrade claude-code

claude-code@latest で入れたときは、brew upgrade claude-code@latest です。claude update も、Homebrew で入れたときは Homebrew を通して更新します(claude update --help の説明による)。Homebrew は古い版をディスクに残すので、ときどき brew cleanup で消します。

Homebrew でも自動で更新したいとき

環境変数 CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE を 1 にすると、新しい版が出たときに Claude Code が裏で Homebrew の更新を実行します。終わったら、再起動を促します(公式の説明による)。設定ファイルの env に書くときは、次のようにします。

json{
  "env": {
    "CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE": "1"
  }
}

どの設定ファイルに書くと効くかは、Claude Code の設定ファイルの優先順位にあります。

公式のインストーラーで自動の更新を止めたいとき

設定ファイルの env に DISABLE_AUTOUPDATER を "1" で書きます(公式の説明による)。止めずに1週間ほど遅れた版にしたいときは、"autoUpdatesChannel": "stable" を書くか、​/​config の Auto-update channel で選びます。

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

注意点

更新の知らせが出ても、Homebrew にまだないことがある

公式の説明では、Claude Code が新しい版を知らせたときに、Homebrew や WinGet にはまだ届いていないことがあります。brew upgrade で上がらないときは、時間をおいてからやり直します。

自動の更新は、次に起動したときから効く

自動の更新は、次に起動したときから効きます。開いている Claude Code を一度終えてから、claude --version で確かめます。

参考文献

著書

とあるクリエイター

フロントエンドエンジニア Next.js / React / TypeScript / Node.js / Docker / AI Coding