Claude Codeで複数モデル(Opus/Sonnet/Haiku)を場面で使い分けたい人向け
Claude Codeで長い指示文を書いている途中で「やっぱり別のモデルで答えさせたい」と気が変わったときに叩く。書きかけを破棄せずにOpus/Sonnet/Haikuを切り替えられるので、設計フェーズの長文指示を書き終わる直前に実装用Sonnetへ切替、みたいな使い分けができる
Claude Codeで作業しているとき、最初に opus で重い設計を進めて、途中から sonnet に切り替えて軽い実装を流したい場面が出てきます。普通に /model と入力欄に打ち込むと、書きかけのプロンプトが全部消える。Alt+P(macOSはOption+P)は、その「書きかけを残したままモデル切替画面を出す」だけのキーです。
地味だけど、長い指示文を書いている最中ほど効きます。
そもそもこのキーは何をする?
1回押すと、その瞬間に「モデル選択画面」(model picker)が開きます。入力欄に書きかけの文字はそのまま残ります。画面で別のモデルを選んでEnterすると元の画面に戻り、書きかけのプロンプトの続きから打てます。
機能としては /model をコマンドの後ろに何も書かずに叩いたときと完全に同じで、画面に出てくる選択肢も同じです。違いは1点だけ。/model は入力欄に文字を打つので、そこに書いてあった内容が上書きされて消えます。Alt+Pはキー入力なので入力欄に触らない。
公式のキーバインド表 interactive-mode docs には次のように書いてあります。
Option+P (macOS) or Alt+P (Windows/Linux) | Switch model | Switch models without clearing your prompt
「プロンプトを消さずにモデル切替」が公式の説明文そのものです。
macOSで使うには事前に1か所だけ設定する
macOSの場合、Option+P を「Optionキー+P」として使うには、ターミナル側で「Option as Meta」設定をオンにする必要があります。これはOptionキーをEscキーのような特殊な信号として送るための切替です。デフォルトのままだと、Option+Pを押しても文字記号「π」が入力欄に入るだけで、画面は開きません。
公式docsが挙げている設定箇所はこの3つです。
- iTerm2: Settings → Profiles → Keys → General → Left/Right Option key を「Esc+」に変更
- Apple Terminal(標準のターミナルアプリ): Settings → Profiles → Keyboard → 「Use Option as Meta Key」にチェック
- VS Code内蔵ターミナル: VS Codeの設定で
"terminal.integrated.macOptionIsMeta": trueを追加
WindowsとLinuxは Alt+P がそのまま動くので、この設定は要りません。
ちなみに同じAlt系の Alt+T、拡張思考のオン・オフはv2.1.132でこの設定なしでも動くように例外化されました。ただAlt+Pは現時点で例外化されておらず、依然このOption as Meta設定が必須です。同じAlt系兄弟でも挙動が違うので注意。
「料理ブログのアーキ設計をOpusで進めて、実装からSonnetに切り替える」を実際にやってみる
料理ブログサイトを Claude Code で組み立てているとします。最初は opusplan モードで起動していて、いま plan mode の中。Opus 4.7 が「カテゴリ構造はこうしたほうがいい、レシピと食材を別テーブルに分ける案と1テーブルでまとめる案があって…」みたいな話を出してきたあとで、自分は次の指示を入力欄に書き始めています。
200字くらい書いた段階で、「いやこの先は実装フェーズだから Sonnet 4.6 で速く回したい」と気が変わります。ここでAlt+Pを叩く流れを順に見ます。
ステップ1: いまどのモデルで動いているか確認する
切替前に /status を叩くと、アカウント情報と現在のモデルが表示されます。status lineを設定していれば画面下部にも常時出ています。
> /status
Model: Opus 4.7 (effort: xhigh)
Account: Max plan
「Opus 4.7 で動いてるな」と確認できたら閉じる。
ステップ2: 書きかけのプロンプトを残したままAlt+Pを叩く
入力欄にはこんな指示文が書いてある状態だとします。
> レシピ一覧ページのコンポーネントを作って。
カードは1行3枚で、画像は16:9で上に置いて、
タイトルと調理時間を下に並べてほしい。スマホは1列。
画像のlazy loadも入れて、(まだ書きかけ)
この状態でOption+P、macOSならOption+Pを押すと、入力欄の文字には触らずに別画面が開きます。
┌─ Select model ─────────────────────────────────┐
│ > Opus 4.7 (current) │
│ Sonnet 4.6 │
│ Haiku │
│ Default (Opus 4.7 for Max plan) │
│ │
│ Effort: ◯─●─◯─◯─◯ medium │
│ (← →で調整) │
└─────────────────────────────────────────────────┘
画面下にeffort sliderも出ます。これはモデルを選んだあと、左右矢印で「どれくらい深く考えさせるか」を一緒に決められる仕組み。Opus 4.7だけ5段階で low / medium / high / xhigh / max が選べて、他のモデルは4段階です。
ステップ3: Sonnet 4.6を選ぶ
下矢印で「Sonnet 4.6」に移動してEnter。ここで会話に前回応答がある状態だと、確認画面が出ます。
The next response will re-read the full history without cached context.
Continue? (y/N)
これは公式の仕様で、モデルを切り替えると次の応答は会話全体を最初から読み直すため、これまで効いていた一時保存が無効になります。結果として、次のClaudeの返事は普段より遅くなる + 料金もちょっと跳ねる。yを押して進めると、picker閉じて元の画面に戻ります。
ステップ4: 書きかけのプロンプトの続きを書いてEnter
入力欄に戻ると、さっき書きかけだった文字列がそのまま残っています。
> レシピ一覧ページのコンポーネントを作って。
カードは1行3枚で、画像は16:9で上に置いて、
タイトルと調理時間を下に並べてほしい。スマホは1列。
画像のlazy loadも入れて、(まだ書きかけ)
ここに続きを書き足してEnter。今度はSonnet 4.6が応答します。最初の1発だけ少し遅いですが、それ以降はSonnet 4.6で軽快に動きます。
ステップ5: 次回起動時もSonnet 4.6で立ち上がる
picker での選択はユーザー設定ファイルに自動で保存されます。次にClaude Codeを起動するときも、自動的にSonnet 4.6で起動します。
これが落とし穴の1つで、「いまだけSonnetに切り替えたい」つもりでも、何もしないと次回もSonnetで起動してしまいます。本当に一時切替したいだけなら、picker経由ではなく、起動時に claude --model opus のように指定するほうが安全です。--model でつけたモデルは設定ファイルに保存されません。
ここで初心者がやりがちな勘違いがある。「Alt+Pは一時的な切替」と思い込んで、毎回 Alt+P で切り替えてしまうと、その都度ユーザー設定ファイルが上書きされ続けます。本来 picker は「メインモデルを変える」操作で、「ちょっとだけ使い分け」用ではありません。
つまりAlt+Pは何をしてくれるのか
- やってくれる: 書きかけのプロンプトを残したまま、モデル選択画面を一発で開く。
/modelを入力欄に打って書きかけが消える事故を防ぐ - やってくれない: モデルを「一時的に」切り替えること。picker での選択はユーザー設定に永続保存される。一時的に使いたいなら起動時に
claude --model <名前>を使う - 意味が薄い場面: そもそも入力欄が空のときは、
/modelと打っても何も消えないので Alt+P の優位性はない。opusplanで動かしていて plan→実装の自動切替に任せる運用にしている人も、手動で切り替える機会自体が少ない
使いどころ3シナリオ
シナリオ1: 設計フェーズの長いプロンプトを書いている途中で、実装フェーズに移したい
料理ブログ・家計簿アプリ・ポートフォリオサイトみたいな個人プロジェクトで、Claude Codeに「次は◯◯を作って」という指示を200字3段組で書いている最中。書き始めた時点ではOpusで設計を詰めていたが、書き終わるころには「これ実装作業だからSonnetでいいや」と気が変わる。書きかけを破棄したくないのでAlt+Pで画面を出し、Sonnet 4.6を選んで戻る。書きかけはそのまま残っているので続きを書いて送信。
シナリオ2: コードレビューのコメントを書きかけのまま、Haikuに切り替えて軽い質問を1個挟みたい
Claude Code に「このPRの差分を読んでレビューコメントを書いて」と頼んでいて、自分は「ここの命名はもっと…」みたいな追加指示を書きかけているところ。途中で「そういえばGitのコマンド忘れた、Haikuに聞きたい」と思いついた場合、本当はサイド質問の /btw を使うのがきれいだけど、モデルを丸ごと軽くして節約したい場面ならAlt+PでHaikuに切替→質問→終わったらまたAlt+PでSonnet/Opusに戻す、という流れができる。書きかけのレビューコメントは消えない。
シナリオ3: チームの共有プロジェクトでデフォルトモデルが固定されていて、自分だけ別モデルを試したい
OSSをcloneしてきた直後、または会社のプロジェクトを開いたとき、.claude/settings.json に "model": "sonnet" がpinされていることがある。自分は重い設計タスクをやりたいのでOpusに変えたい。/model opus でも切り替えられるが、何かを書きかけているならAlt+Pでpickerを開いてOpus 4.7を選ぶほうが、入力欄を保ったまま操作できる。なお v2.1.117 以降はこの個人切替が .claude/settings.local.json に自動保存され、次回起動時も自分の選択が引き継がれます。
初心者が踏みやすい落とし穴
- macOSでOption as Metaを設定し忘れている。Alt+Pを押しても「π」が入力欄に入るだけで何も起きない。iTerm2 / Apple Terminal / VS Code 内蔵ターミナルそれぞれで設定箇所が違うので、自分が使っているターミナルの設定を1回だけ確認する
- 会話の途中で切り替えると、次の応答が遅くて高い。picker の確認画面(Continue? y/N)はこれを警告している。長い会話の終盤で頻繁に切り替えると、毎回会話全体を読み直して一時保存が無効になり、コストが地味に膨らむ
- picker での選択は永続保存される。「いまだけ」のつもりで切り替えても、ファイルを閉じて次に起動したときも切替後のモデルで立ち上がる。一時切替したいだけなら起動時に
claude --model <名前>をつけるほうが安全 - 会社・チームの管理設定で picker の選択肢が制限されていることがある。Enterprise の
availableModels設定がかかっていると、リストに無いモデルは picker から消えていたり、/model opusと打っても拒否されたりする。表示されていないモデルが欲しい場合は情シスやプロジェクト管理者に問い合わせる opusやsonnetのような短い名前は、契約しているプロバイダによって違うバージョンに解決される。AnthropicのAPIやClaude Platform on AWSなら Opus 4.7 / Sonnet 4.6 だが、Bedrock / Vertex / Foundry 経由だと Opus 4.6 / Sonnet 4.5 になる。pickerに表示される正式モデル名で確認するクセをつける- effort slider を間違えて触ると、同じモデルでも料金と品質が変わる。Sonnet 4.6 を選んだあと左右矢印で max を選ぶと、Sonnetなのに max effort で動く。max は session-only で次回起動時は元に戻るが、xhigh や high は永続保存される。料金がいきなり跳ねたら effort を疑う
- 「Default」を選ぶと、自分の契約プランに応じたモデルに飛ばされる。Max / Team Premium なら Opus 4.7、Pro / Team Standard / Enterprise / API なら Sonnet 4.6、Bedrock / Vertex / Foundry なら Sonnet 4.5。「Defaultを選んだのにOpusじゃない」と混乱しがちなので、契約と紐づいていることを覚えておく
- fast modeをONにしている状態でAlt+Pでモデル切替したときの挙動は公式に明記がない。fast modeはAlt+Oでオン・オフを切り替える別の仕組みで、Alt+P後にfast modeがどう振る舞うかドキュメントに書かれていない。fast modeを使っているなら、
/model sonnetのように明示的にコマンドで切り替えるほうが事故が少ない
書き方
Option+P (macOS、ターミナル側で Option as Meta 設定が必要)
Alt+P (Windows/Linux、追加設定なし)
やってみるとこうなる
入力
(入力欄に200字くらい指示文を書きかけている状態で)
Option+P を押す
出力例
┌─ Select model ─────────────────────────────────┐
│ > Opus 4.7 (current) │
│ Sonnet 4.6 │
│ Haiku │
│ Default (Opus 4.7 for Max plan) │
│ │
│ Effort: ◯─●─◯─◯─◯ medium │
│ (← →で調整) │
└─────────────────────────────────────────────────┘
(矢印キーで Sonnet 4.6 を選んで Enter)
→ 会話に前回応答があると確認画面が出る
→ y を押すと picker が閉じて、入力欄の書きかけプロンプトはそのまま残る
→ 次回起動時もSonnet 4.6で立ち上がる(永続保存される)
このページに出てきた言葉
- model picker
- Claude Codeで使うモデルを選ぶ画面。Opus、Sonnet、Haikuなどから1つ選んでEnterで決定する
- プロンプト
- Claudeに送る指示文。入力欄に書き込んでEnterで送信する文字列のこと
- Option as Meta
- macOSのターミナル側で行う設定。OptionキーをEscキーのような特殊な信号として送るようにすると、Alt系ショートカットが効くようになる
- opusplan
- モデル選びの1つ。設計を考えるplan modeのときはOpusで動き、実装フェーズに入ると自動でSonnetに切り替わる便利モード
- effort slider
- モデルにどれくらい時間をかけて考えさせるかを決める段階指定。低いほど速くて安く、高いほど深く考えて時間と料金がかかる
- prompt cache
- 同じモデルで会話を続けるときに、前回までのやり取りを一時保存して使い回す仕組み。モデルを切り替えると無効になり、次の応答が遅く・高くなる
- availableModels
- 企業向けの設定項目。「このプロジェクトではOpusとHaikuしか使えない」のように選べるモデルを制限する仕組み
- Bedrock / Vertex / Foundry
- Anthropic以外の経路でClaudeを使う方法。AWS、Google Cloud、Microsoftが提供する。Anthropic直接より少し古いバージョンに紐づく