Claude Code をインストールしたまま放置していて、新機能(/voice の tap モード、/branch、--bare、Editor mode など)が使えるか不安な人向け
新機能の告知を見て今すぐ試したい場面や、CI(自動テスト環境)で実行前に必ず最新版にしたい場面で叩く。普段はバックグラウンドの自動更新が走っているので、わざわざ叩かなくていい。叩いた後は Claude Code を一度終了して起動し直すまで反映されないので、再起動とセットで使う。
Claude Code を入れたまま数週間放置していると、「あれ、/voice の tap モードってもう来てる?」「--bare って効くんだっけ?」と不安になる場面が出てきます。claude update は、その「いま手元で動いているやつを、今すぐ最新版に上げる」ためのコマンドです。
ただし大事な前提として、Native インストール(公式の正規ルート)は すでにバックグラウンドで自動更新が走っている。だから普段は何もしなくていい。claude update を叩くのは「自動更新を待たずに、いま反映させたい」ときだけです。
噛み砕くと
例えるなら、スマホアプリの「アップデート」ボタンに近いです。普段は夜中に勝手にアップデートされていて、朝起きたら最新版になっている。ただ、新機能の告知を見て「いま試したい」と思ったとき、自分で「アップデート」ボタンを押しに行くこともある。claude update はそのボタンです。
そして、押した直後にすぐ新機能が使えるわけではない。公式が「次に起動したときに反映される」と書いている通り、一度 Claude Code を終了して立ち上げ直す必要があります。ここを誤解する人が多い。
大事な前提:インストール方式によって挙動が全然違う
「自動更新が効いているか / claude update が効くか」はインストール方式で変わります。先にここを押さえないと、「自動更新されない!」「claude update が動かない!」と空回りします。
| インストール方式 | 自動更新 | 手動更新コマンド |
|---|---|---|
| Native | あり(既定でオン) | claude update |
| Homebrew(Mac) | なし | brew upgrade claude-code |
| WinGet(Windows) | なし | winget upgrade Anthropic.ClaudeCode |
| apt / dnf / apk(Linux) | なし | 各システムの更新コマンド |
npm(@anthropic-ai/claude-code) |
なし | npm install -g @anthropic-ai/claude-code@latest |
Native だけが特別扱い。それ以外は自分で更新コマンドを叩く必要があります。
「Claude Code を最新版にして、新しいスラッシュコマンドが使えるか確認する」のを例に、実際の手順を見る
X で「/voice に tap モードが追加された」という告知を見たとします。手元の Claude Code がそれをまだ持っているか分からない。claude update を試す典型ケースです。
ステップ1: いま入っているバージョンを確認する
黒い画面を開いて、次の1行を打ちます。Mac なら「ターミナル」アプリ、Windows なら「PowerShell」または「コマンドプロンプト」です。
$ claude --version
例えば 2.1.118 みたいに数字が返ってくる。これが現状のバージョンです。
ステップ2: claude update を叩く
$ claude update
裏で最新版がダウンロード・置き換えされて、メッセージが返ってきます。ここで「Already up to date」と出れば、もう最新版が入っていた、ということ。
ステップ3: 一度終了して、起動し直す
これが見落とされやすい。公式 docs に "take effect the next time you start Claude Code" と書かれている通り、ダウンロードしただけでは反映されません。次に Claude Code を起動した時に初めて新バージョンが動き始める仕組みです。いま開いているセッションは一旦閉じて、もう一度 claude を叩きます。
ステップ4: バージョンが変わったか確認する
$ claude --version
数字が上がっていれば成功。数字が変わっていなければ、ステップ3の「起動し直し」が抜けているか、設定で更新がブロックされている可能性があります(後述)。
ステップ5: 新しいスラッシュコマンドを試す
Claude Code を起動した状態で、/voice や /branch など気になっていたものを叩いてみる。Unknown command と返らなければ、無事に新機能が手元に降りてきています。
ここで初心者がやりがちな勘違い
「claude update を叩いた瞬間に新機能が使える」と思って、開きっぱなしのセッションで /voice を叩いて「動かない!」となる人が多い。ダウンロード ≠ 反映。再起動して初めて反映される、と覚えておくと迷いません。
つまり claude update は何をしてくれるのか
- やってくれる: 「いま、自動更新を待たずに最新版を取りに行く」処理。Native インストールなら確実に動く
- やってくれない: 反映までは面倒を見ない。次の起動を待つ必要がある。また Homebrew/WinGet/apt/dnf/apk/npm で入れた場合は公式docsで動作が明示されていないため、各管理ツールの更新コマンドを使うのが安全
- 意味が薄い場面: 普段の作業中。Native の自動更新が裏でちゃんと走っているので、放っておけば次の起動で勝手に新しくなる。気になる新機能が告知されていない時にわざわざ叩く必要はない
使いどころ3シナリオ(具体題材で再現)
シナリオ1: 新機能の告知を見て、いま試したい
例えば「/voice に tap モードが来た」「/branch で会話を分岐できるようになった」といった告知を X やリリースノートで見たとき。Native の自動更新は次の起動タイミングで反映されるので、いま開きっぱなしのセッションのままだと最大1日以上待つことになる。claude update を1回叩いて Claude Code を立ち上げ直せば、その場で新機能が降りてきます。私だったら告知見て興奮してる勢いで打つ。
シナリオ2: GitHub Actions などの CI で、毎回最新版で走らせたい
CI の中で Claude Code を走らせるとき、毎回新しい実行環境で起動するので「次の起動を待つ」が来ない。実行直前のステップに claude update を入れておくと、常にその時点の最新版で動かせます。逆に「最新版で予期しない動きが入ると困る」場面では DISABLE_UPDATES でバージョン固定する選択肢もある。CI 用途は両極端。
シナリオ3: Homebrew で入れた人の例外運用
Mac で brew install --cask claude-code で入れている場合、自動更新は止まっています。この場合は claude update ではなく brew upgrade claude-code を使うのが筋。Homebrew のおまかせ流儀を崩さずに済みます。ちなみに Homebrew には2種類の cask があり、安定版重視なら claude-code、新機能即反映なら claude-code@latest を選びます。
初心者が踏みやすい落とし穴
- 叩いたのに新機能が使えない。ダウンロードは終わっても、いま開いているセッションには反映されません。一度 Claude Code を閉じて起動し直す
- そもそも自動更新が走っていない。
settings.jsonの env にDISABLE_AUTOUPDATERを"1"でセットしている、あるいは Homebrew/WinGet/apt/dnf/apk で入れた場合は止まっています。claude --versionがずっと変わらないなら疑う - バージョンを固定したい。逆に「勝手に上がるのは困る」場合は、
settings.jsonに"minimumVersion": "2.1.118"のように下限を書くか、env のDISABLE_UPDATESを"1"にする。DISABLE_AUTOUPDATERはバックグラウンド更新だけ止める一方、DISABLE_UPDATESはclaude updateも含めて全部止めるので、止め方の強度が違う。混同しないこと - 新機能で挙動が変わって困った。
settings.jsonに"autoUpdatesChannel": "stable"を書くと、約1週間古い安定版チャンネルに切り替わります。メジャー回帰込みのリリースを避けた系統です。新機能を即追いたい人は"latest"のまま(こちらが既定値) claude udpateと打ち間違えた。公式が typo を検出するように作られていて、"Did you mean claude update?" と提案して終わります。慌てず打ち直す- WinGet で更新したら失敗した。Windows は Claude Code が起動中だと実行ファイルがロックされて更新が落ちる仕様。一度
claudeを終了させてからwinget upgrade Anthropic.ClaudeCodeを叩く claude installとの違いを混同する。claude installは「特定バージョンを指定して入れ直す」用途で、claude install 2.1.118のようにバージョン番号を渡せる。一方claude updateは「設定済みのチャンネルの最新版へ上げるだけ」。バージョン固定の用事なら install、最新化なら update と使い分ける- パッケージマネージャーに自動更新を任せたい。Homebrew や WinGet で入れた人が「いちいち手で叩きたくない」場合、
settings.jsonの env に"CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE": "1"を入れると、新バージョンが出たときに Claude Code が裏でbrew upgradeやwinget upgradeを叩いてくれます。apt/dnf/apk は管理者権限が必要なのでこの自動化は対象外
書き方
claude update
やってみるとこうなる
入力
$ claude update
出力例
Checking for updates...
Downloading Claude Code 2.1.118 -> 2.1.140
Update downloaded. It will take effect the next time you start Claude Code.
# 反映確認:
$ claude --version
2.1.140
このページに出てきた言葉
- Native インストール
- Claude Code 本体を直接パソコンに入れる正規ルート。<code>curl ... | bash</code> や PowerShell の <code>irm ... | iex</code> で入れる方式
- autoUpdatesChannel
- <code>settings.json</code> で指定する「どのバージョン系列を受け取るか」の設定。<code>latest</code>(既定、新機能即反映)か <code>stable</code>(約1週間遅れの安定版)を選べる
- minimumVersion
- <code>settings.json</code> で「これより古いバージョンには下げないで」と床を決める設定。<code>stable</code> に切り替えた時のダウングレードを防ぐ用途
- DISABLE_AUTOUPDATER
- <code>settings.json</code> の env に <code>"1"</code> で入れるとバックグラウンドの自動更新だけ止める設定値。<code>claude update</code> 自体は手で叩けば動く
- DISABLE_UPDATES
- <code>settings.json</code> の env に <code>"1"</code> で入れると自動更新も <code>claude update</code> も全部止める設定値。バージョン完全固定したい時に使う
- CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE
- <code>settings.json</code> の env に <code>"1"</code> を入れると、Homebrew や WinGet で入れた人にも Claude Code が裏で <code>brew upgrade</code> や <code>winget upgrade</code> を叩いてくれる設定値
- claude install
- <code>claude update</code> と似ているが用途が違う。<code>claude install 2.1.118</code> のように特定バージョンを指定して入れ直したい時に使う。<code>claude update</code> は単に最新版に上げるだけ
- 配布チャンネル
- 同じソフトの「どのバージョン系列を受け取るか」を選ぶ口。Claude Code には新機能即反映の <code>latest</code> と、約1週間遅れの <code>stable</code> の2系統がある