Claude CodeのautoUpdatesChannelでstableとlatestを選ぶ
autoUpdatesChannelのstableとlatestの違い、minimumVersionが切り替え時のダウングレードを防ぐ仕組み、インストール方法ごとのチャネルの決まり方をまとめます。
autoUpdatesChannel は、Claude Codeの自動更新と claude update がどのリリースを追いかけるかを決める設定です。値は "latest"(既定)か "stable" の2つ。"stable" は約1週間遅れのバージョンに追従し、重大な回帰のあるリリースを飛ばします。
チャネルを切り替えるときの落とし穴は、新しい latest に乗っている状態で stable へ変えると、古いバージョンへ下がりかねない点です。これを防ぐのが minimumVersion で、/config から切り替えると自動で書き込まれます。
stableとlatestは何が違うのか
2つのチャネルの追従先
latest
最新リリースに追従します。新機能も新モデル対応も、出た時点で届きます。
stable
通常は約1週間前のバージョンに追従し、重大な回帰のあるリリースは飛ばされます。
「約1週間」は公式の「typically」つきの目安で、何日遅れるかは固定ではありません。重大な回帰が見つかったリリースを飛ばすぶん、その時々で変わります。具体的なバージョンは、切り替えたあとの claude --version で確かめられます。
設定キーを書かなければ latest と同じ動きです。チャネルは settings.json に直接書くか、/config のAuto-update channelで選びます。
{
"autoUpdatesChannel": "stable"
}スコープは設定ファイルのどれでも指定できます。組織全体で同じチャネルに揃えたいときは、managed settingsに入れます。
stableに寄せると何を失うのか
遅れる分、新機能の到着も遅れます。とくに効くのが新モデルです。新しく公開されたモデルが、stableチャネルの配るバージョンより新しいClaude Codeを要求することがあります。公式の記載はこうです。
- 新しいモデルは、stableが配信するバージョンより新しいClaude Codeを必要とする場合がある
- そのモデルをすぐ使うなら、latestチャネルへ移る
つまり「stableで安定運用し、新モデルが出た週だけlatestに寄せる」という使い方が成り立ちます。逆に、新モデルの当日利用が仕事の前提になっているチームは、stableだと待たされる場面があります。
切り替えでダウングレードしないためのminimumVersion
latest から stable へ変えると、チャネルが指すバージョンが手元より古い場合があります。そこで minimumVersion が下限として働きます。バックグラウンドの自動更新と claude update は、この値より古いバージョンを入れません。
/config での挙動は次のとおりです。
/config でlatestからstableへ切り替えたとき
- 1
Auto-update channelを選ぶ
/configを開き、Auto-update channelでstableを選びます。 - 2
ダウングレードを許すか尋ねられる
「ダウングレードを許可する」か「今のバージョンに留まる」かを選びます。
- 3
留まると minimumVersion が入る
留まる方を選ぶと、現在のバージョンが
minimumVersionに書き込まれます。 - 4
latestへ戻すと消える
/configでlatestに戻すと、autoUpdatesChannelのキーもminimumVersionも消えます。
手書きで両方を指定する場合の形は次のとおりです。
{
"autoUpdatesChannel": "stable",
"minimumVersion": "2.1.100"
}minimumVersion に有効なバージョン番号でない値を入れると、無視されます。タイプミスで効いていない状態になるので、書いたあとは claude doctor の Auto-updates の行で状態を確かめられます。
自動で書かれる値と手書きの値の違い
/config 経由で書かれる minimumVersion は、その瞬間のバージョンです。stableが追いつけば、いずれ下限より新しいバージョンを配るようになります。下限を引き上げ続けたいわけではなく、「切り替えで下がらない」ことだけが目的の値です。/config で latest に戻したときに消えるのはこの自動で書かれた値で、手書きで入れた値まで消えるかどうかは、設定リファレンスに記載がありません。
手書きでは、実際に問題のなかったバージョンを下限に置く使い方もできます。ただし minimumVersion が拒否するのは自動更新と claude update だけです。起動そのものは止まりません。起動を止めたいなら、managed settings専用の requiredMinimumVersion を使います。違いの詳細はClaude Codeバージョンの確認・固定・ダウングレード手順にまとまっています。
managed settingsで組織のチャネルと下限を決める
autoUpdatesChannel も minimumVersion もmanaged settingsに置けます。組織向けの動きは2点です。
| キー | managedに置いたとき | 起動への影響 |
|---|---|---|
autoUpdatesChannel | managedに置いたとき組織全体で1つのチャネルを強制できる | 起動への影響なし |
minimumVersion | managedに置いたとき組織全体の下限になり、ユーザー設定・プロジェクト設定では下げられない | 起動への影響なし(更新だけを縛る) |
requiredMinimumVersion | managedに置いたとき古いバージョンの起動を拒否する | 起動への影響あり(v2.1.163以降) |
{
"autoUpdatesChannel": "stable",
"minimumVersion": "2.1.150"
}「全員をstableに揃え、下限を割る更新だけは入れさせない」という最小構成がこれです。起動できるバージョンの範囲まで縛る場合は、requiredMinimumVersion と requiredMaximumVersion を足します。後者は、組織が許す最新バージョンを決めるキーで、上限を超えたバージョンは起動時に終了します。設定の置き場所や優先順位はmanaged settingsの導入ガイドで扱っています。
インストール方法によってチャネルの決まり方が違う
autoUpdatesChannel が効くのは、ネイティブインストールの自動更新と claude update です。ほかの経路は、設定キーではなく入れた側で決まります。
| 入れ方 | チャネルの決め方 |
|---|---|
| ネイティブインストーラー | チャネルの決め方autoUpdatesChannel。claude install stable / claude install latest も保存する |
| Homebrew | チャネルの決め方claude-code のcaskがstable、claude-code@latest がlatest。キーは無視される |
| apt / dnf / apk | チャネルの決め方リポジトリで選ぶ(stable用とlatest用のURLが別) |
| npm | チャネルの決め方公式の記載はnpmの更新コマンド(@latest)のみで、チャネル指定の記述なし |
aptでlatestへ移るには、URLのパスとsuite名の両方を latest に変えます。dnfは baseurl を、apkはリポジトリの行を差し替えます。
Homebrewでは claude update も brew upgrade に処理を委ねます。キーを書いても効かないので、「stableにしたはずなのにlatestのままだ」という場合は、まず入れたcaskを確認します。Homebrew固有の注意はHomebrewでのインストールにあります。
なお、Homebrew・WinGet・apt・dnf・apkの導入は、既定では自動更新されません。HomebrewとWinGetで自動更新を有効にするには、環境変数 CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE を 1 にします。apt・dnf・apkは管理者権限が要るため、手動更新のままです。
ネイティブインストーラーでは、最初から stable を指定して入れられます。
curl -fsSL https://claude.ai/install.sh | bash -s stableWindowsでは、PowerShellとCMDで stable の渡し方が違います。PowerShellは irm の結果をスクリプトブロックにして引数を渡します。CMDはインストーラーを保存して実行し、末尾に stable を付けます。
& ([scriptblock]::Create((irm https://claude.ai/install.ps1))) stablecurl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd stable && del install.cmdmacOS・Linux・WSLの bash -s stable も含め、インストール時に選んだチャネルは、以後の自動更新の既定として残ります。
切り替えたあとに確かめること
設定を書いただけでは、実際にどのバージョンが入っているかは分かりません。切り替えの前後で、次の3つを控えておくと状況を追えます。
claude --version
claude doctor
claude updateclaude --version は今動いているバージョンです。claude doctor は直近の更新結果と Auto-updates の行を表示します。claude update は、バックグラウンドのチェックを待たずに更新を適用します。成功すると Successfully updated from <旧> to version <新> と出て、すでに最新なら Claude Code is up to date (<version>) と出ます。Homebrew、WinGet、apkの導入では Claude is up to date! という別の文言です。
更新はバックグラウンドでダウンロードとインストールまで済み、反映されるのは次に起動したときです。チャネルを変えた直後に走っているセッションのバージョンは変わりません。
stableに乗ったあとで特定のバージョンへ戻す、あるいはバージョンを固定する必要が出たときは、claude install <バージョン> と minimumVersion の使い分けが別の話になります。チャネルは「どこを追うか」、固定は「どこで止めるか」と切り分けると混ざりません。
チャネルを揃える前に確認したい前提
チーム展開では、メンバーの導入経路がそろっているとは限りません。ネイティブインストーラー、Homebrew、aptが混在していれば、managed settingsの autoUpdatesChannel が効くのはネイティブ導入の端末だけです。
また、autoUpdatesChannel はmanagedに置くと組織全体で強制できる一方、requiredMinimumVersion と requiredMaximumVersion はmanaged専用で、ほかのスコープに書いても警告なしで無視されます。置き場所を間違えて「効いていない」と気づくまでに時間がかかる点は、設定の確認手順に含めておくと見落としを防げます。
自動更新そのものを止めたいとき
チャネルは「何に追従するか」を選ぶ設定で、追従をやめる設定ではありません。更新自体を止めるには、settings.json の env に DISABLE_AUTOUPDATER を "1" で入れます。これはバックグラウンドの更新チェックを止めるだけで、claude update と claude install は動きます。手動の更新まで塞ぐなら DISABLE_UPDATES です。止めた状態の確認は claude doctor の Auto-updates の行で行います。autoUpdates: false を書いても止まらなかったという報告についてはautoUpdatesが効かない件の整理にあります。
どのチャネルを選ぶかの目安
状況別のチャネルの選び方
新機能・新モデルを当日使いたい
latest(既定)のままにします。キーは不要です。
退行で作業が止まるのを避けたい
stableを選び、
/configから切り替えて現在のバージョンに留まります。チーム全員を同じ条件に揃えたい
managed settingsに
autoUpdatesChannelとminimumVersionを入れます。起動できる範囲まで縛りたい
requiredMinimumVersionとrequiredMaximumVersionを使います。