Claude Code は、どのモデルで応答するかを sonnet や opus といったエイリアス、またはモデルの正式名で切り替えられます。この記事では、公式ドキュメント「Model configuration」をもとに、/model と --model の使い分け、設定の優先順位、計画だけ Opus に任せる opusplan、推論の深さを決める effort(エフォート)の調整までをまとめます。
モデルエイリアスの種類
Claude Code の model 設定には、モデルエイリアスかモデル名のどちらかを指定します。モデル名は Anthropic API なら正式なモデル名(例: claude-opus-5-5)、Amazon Bedrock なら推論プロファイルの ARN、Microsoft Foundry ならデプロイ名です。エイリアスを使うと、バージョン番号を覚えなくても用途に合ったモデルを選べます。
| エイリアス | 動作 |
|---|---|
default | モデルの上書きを解除し、アカウント種別ごとの既定モデルに戻す特別な値(それ自体はエイリアスではない) |
sonnet | 日常のコーディング向けの最新 Sonnet |
opus | 複雑な推論向けの最新 Opus |
haiku | 単純な作業向けの高速な Haiku |
fable | 長時間かかる難しい作業向けの Fable モデル |
best | Fable が使える環境では fable と同じモデル、使えなければ opus と同じモデル |
sonnet[1m] / opus[1m] | 100 万トークンのコンテキストウィンドウで使う |
opusplan | プランモード中は opus、実行時は sonnet に切り替える特別なモード |
エイリアスが指すバージョンはプロバイダーごとに異なり、時期によって更新されます。公式ドキュメント(確認日 2026-09-28)では、Anthropic API の場合 opus は Opus 5.5、sonnet は Sonnet 5 を指し、Amazon Bedrock や Google Cloud では sonnet が Sonnet 4.5 を指すなど差があります。特定のバージョンに固定したいときは、claude-opus-5-5 のように正式名を指定するか、ANTHROPIC_DEFAULT_OPUS_MODEL などの環境変数でエイリアスの行き先を決めます。
| 環境変数 | 決めるもの |
|---|---|
ANTHROPIC_DEFAULT_OPUS_MODEL | opus、およびプランモード中の opusplan が使うモデル |
ANTHROPIC_DEFAULT_SONNET_MODEL | sonnet、およびプランモード以外の opusplan が使うモデル |
ANTHROPIC_DEFAULT_HAIKU_MODEL | haiku とバックグラウンド処理が使うモデル |
ANTHROPIC_DEFAULT_FABLE_MODEL | fable が使うモデル |
CLAUDE_CODE_SUBAGENT_MODEL | モデルを個別に指定していないサブエージェントなどの既定モデル |
モデルを指定する方法と優先順位
モデルは次の5通りで指定でき、上にあるものほど優先されます。
- セッション中:
/model <エイリアスまたは名前>ですぐに切り替える。引数なしの/modelで選択画面(ピッカー)を開く - 起動時:
claude --model <エイリアスまたは名前>で起動する - 環境変数:
ANTHROPIC_MODEL=<エイリアスまたは名前>を設定する - 設定ファイル: settings の
modelフィールドに書いて恒久的に使う - 新規セッションの既定:
ANTHROPIC_DEFAULT_MODEL=<エイリアスまたは名前>を設定する(v2.1.236 以降)
たとえば Opus で起動し、途中で Sonnet に切り替えるには次のようにします。
claude --model opus
/model sonnet
設定ファイルに書く場合の例です。
{
"permissions": {
"allow": ["Bash(npm run lint)"]
},
"model": "opus"
}
/model は既定値として保存される
/model で選んだモデルは、ユーザー設定(~/.claude/settings.json)の model に書き込まれ、次回以降のセッションの既定になります。ピッカーでは Enter が「切り替えて既定として保存」、s が「このセッションだけ切り替え、既定は変えない」です。/model sonnet のように直接名前を打った場合は Enter と同じ扱いになります。
一方、--model フラグと ANTHROPIC_MODEL はそれで起動したセッションにだけ効きます。複数のターミナルで別々のモデルを同時に使いたいときは、/model で切り替えるのではなく、それぞれ --model を付けて起動します。
/model で切り替えると、メイン会話のモデルを引き継ぐサブエージェントにも反映されます。サブエージェントを小さなモデルのまま使いたい場合は、その定義に model を書いておきます。
opusplan とフォールバックモデル
opusplan: 計画は Opus、実装は Sonnet
opusplan は、プランモードの間は opus で設計や方針の検討を行い、実行モードに移ると自動で sonnet に切り替えてコードを書くエイリアスです。Opus の推論力を計画に、Sonnet の効率を実装に使い分けられます。
/model opusplan
両方のフェーズで 100 万トークンのコンテキストを要求したいときは opusplan[1m] を指定します(/model で設定する場合は v2.1.265 以降。それより前は --model か model 設定を使う)。
フォールバックモデルの連鎖
メインのモデルが過負荷や利用不可などのサーバーエラーを返したとき、失敗させずに別のモデルへ切り替えるよう設定できます。1回のセッションだけなら --fallback-model にカンマ区切りで並べます。
claude --fallback-model sonnet,haiku
毎回使うなら settings に fallbackModel を配列で書きます。
{
"fallbackModel": ["claude-sonnet-5", "claude-haiku-4-5"]
}
フラグは設定より優先されます。切り替えはそのターンだけで、次のメッセージでは再びメインのモデルから試します。連鎖は重複を除いて最大3モデルまでです。認証・課金・レート制限などのエラーでは切り替わりません。また、起動時に確認表示は出ず /status にも出ないため、実際に切り替わったときの通知が設定が効いている最初のサインになります。
effort で推論の深さを調整する
effort(エフォート)レベルは、モデルがどの程度考えるかを制御します。低いほど速く安く、高いほど複雑な問題を深く推論します。使えるレベルはモデルによって異なり、最新の Opus・Sonnet・Fable では low・medium・high・xhigh・max の5段階です。対応していないレベルを指定すると、それ以下で最も高い対応レベルに落とされます。
| レベル | 向いている場面 |
|---|---|
low | 短く範囲が限られ、速さを重視する作業 |
medium | 多少の性能と引き換えにトークンを節約したい作業 |
high | トークン消費と性能のバランスを取る |
xhigh | より多くのトークンを使って深く推論する |
max | 難しい作業で効くことがあるが、効果が頭打ちになったり考えすぎたりしやすい。広く使う前に試す |
既定値はモデルごとに決まっており、公式ドキュメントでは大半のモデルが high、Opus 5.5 は medium とされています。変更方法は次のとおりです。
/effort: 引数なしでスライダーを開く。/effort highのように直接指定、/effort autoで保存したレベルを解除/modelのピッカー: 左右の矢印キーで effort のスライダーを動かす--effortフラグ:claude --effort highのように起動時に指定(そのセッションだけ)- 環境変数
CLAUDE_CODE_EFFORT_LEVEL: レベル名かautoを設定 - スキルやサブエージェントの frontmatter の
effort: それが動く間だけ上書き
/effort やピッカーで Enter を押すとレベルがモデルごとに保存され、s を押すとそのセッションだけに適用されます。max は環境変数で指定した場合を除き、そのセッション限りです。
設定を変えずに1回だけ深く考えさせたいときは、プロンプトのどこかに ultrathink と書きます。Claude Code はこのキーワードを認識して指示を追加しますが、API に送る effort レベルは変わりません。「think hard」などほかの言い回しはキーワードとしては扱われず、普通の文章として渡されます。
現在のモデルの確認と切り替わらないときの原因
いま使っているモデルは /status(アカウント情報や effort レベルも表示)か、設定していればステータスラインで確認できます。/model status でも現在のモデルを表示できます。effort レベルはセッションのヘッダーにモデル名と並んで表示されます。
次のセッションが選んだモデルで始まらない
/model で選んだのに次のセッションが別のモデルで始まる場合、公式ドキュメントは主に次の原因を挙げています。
- そのセッション限りで選んでいた: ピッカーで
sを押した、--modelで起動した、-pの非対話モードで/modelを実行した場合は既定値が変わらない - より優先度の高い指定がある: プロジェクト設定や管理設定の
model、シェルのANTHROPIC_MODEL、管理者が設定した組織の既定モデルが起動のたびに適用される。プロジェクト設定や管理設定が原因なら起動時のヘッダーにファイル名が出る - 選択を保存できなかった:
~/.claude/settings.jsonが別のツールで生成されている、読み取り専用などで書き込めないと、選択はそのセッションだけになる - セッションを再開した:
claude --resumeや--continueで再開したセッションは、通常そのセッションで使っていたモデルを引き継ぐ
組織でモデルが制限されている
管理者は管理設定の availableModels で選べるモデルを制限できます。制限外のモデルは /model のピッカーに表示されず、/model で指定するとエラーになります。--model や ANTHROPIC_MODEL、model 設定で制限外のモデルを指定した場合は、警告のうえ既定のモデルで起動します。
エイリアスが指すモデルや既定の effort レベル、必要なバージョンは更新されることがあります。正確な内容は公式ドキュメントの Model configuration、CLI reference、Commands をご確認ください(確認日 2026-09-28)。