--model(モデル)

起動オプション
--model
モデル
Claude Code を立ち上げる時にコマンドの後ろへ書き足して、今のセッションだけ動かすモデルを指定する起動時の設定。書き終わると settings.json の model 設定や ANTHROPIC_MODEL の上書きとして働き、セッションを閉じたら効果が消える

普段は Opus で書いてるが、見積もりだけ Haiku に下げたい等「セッション単位でモデルを切り替えたい」人向け

普段は Opus を使っているが今日のラフ書きセッションだけ Sonnet で軽く回したい、見積もりや要約のために一時的に Haiku に下げたい、新しく出たモデルを settings.json を書き換えずに試したい、といった「今回限りの切り替え」をしたい場面で、立ち上げコマンドの後ろに <code>--model claude-sonnet-4-6</code> のように書き足して起動する

--model は Claude Code を立ち上げるとき、コマンドの後ろに付けて「このセッションだけは違うモデルで動かす」と宣言するための指定です。普段 Opus で書いてるけど、今日のラフ書きセッションだけ Sonnet で軽く回したい、見積もり用に Haiku でざっと走らせたい、みたいな切り替えに使います。

ポイントは「今のセッションだけ」という限定です。次に claude をそのまま立ち上げ直したら、また普段使ってる設定のモデルに戻ります。

噛み砕くと

毎日通勤で乗ってる車があって、その日だけレンタカーを借りるイメージに近いです。明日になればまた自分の車に戻ります。設定ごと永続的に乗り換える話ではなく、その日その時間だけの一時的な切り替えです。

だから「もう Sonnet メインに変えたい」みたいな永続変更には、これは向きません。永続側は別の場所(後述)で設定します。

大事な前提:今のセッションだけの上書きで、終わったら元に戻る

これを誤解すると痛い目を見ます。--model を付けて立ち上げた窓を閉じた瞬間、その指定は消えます。次に普通に claude と打って起動したら、普段使ってる側のモデルに戻ります。

「昨日 --model で Sonnet にしたんだから今日も Sonnet のはず」と思って起動して、なぜか Opus が動いている、というのが典型的な勘違いです。

「今日のセッションだけ Sonnet で書きたい」を例に、実際の手順を見る

普段は Opus でブログ記事を書いていて、今日は下書きだけ Sonnet でざっと回したい、という想定で順に追います。

ステップ1: 普段の設定を確認する

まず自分が「何もしないで claude と打ったらどのモデルが動くか」を把握しておきます。確認はターミナルで設定ファイルを覗くか、いったん普通に立ち上げて画面の表示で見ます。

$ cat ~/.claude/settings.json
{
  "model": "opus"
}

この場合「claude と打つと Opus が動く」が普段の状態です。settings.json に何も書いてなくても、Claude Code が決めたデフォルトのモデルが動きます。

ステップ2: 今日だけ違うモデルで起動する

今日のセッションだけ Sonnet にしたいので、立ち上げコマンドの後ろに --model を付けて、その後ろに使いたいモデル名を書き足します。

$ claude --model claude-sonnet-4-6

これで Claude Code が立ち上がります。画面上部に「Sonnet で動いてます」みたいな表示が出るはずです。settings.json"model": "opus" と書いてあっても、この起動コマンドの指定が勝ちます。後から付けた指定の方が強い、と覚えると分かりやすいです。

ステップ3: そのまま使う

あとは普通に作業します。指示を出して、コードを書かせて、ファイルを編集して、終わったら閉じる。途中で「やっぱり Opus に戻したい」と思ったら、後述の /model で対話中に切り替えられます。

ステップ4: 一度閉じてから、何も付けずに起動し直す

セッションを閉じます。そして翌日、何も考えずに claude とだけ打ちます。

$ claude

このとき動くのは Sonnet ではなく Opus です。settings.json"model": "opus" が再び効くからです。--model の指定は前のセッションを閉じた時点で消えています。

ここで「あれ、Sonnet になってない」と慌てるのが初心者が踏みやすい罠です。永続的に Sonnet にしたければ settings.json 自体を書き換えるか、後述の ANTHROPIC_MODEL という覚え書きをパソコン側に設定します。

ステップ5: モデル名の書き方は2通りある

後ろに書く名前は2形式あります。エイリアス(短い別名)とフルネームです。

# 短縮名:最新版を自動で選んでくれる
$ claude --model sonnet
$ claude --model opus

# フルネーム:バージョンを固定する
$ claude --model claude-sonnet-4-6
$ claude --model claude-opus-4-7

短縮名は楽ですが落とし穴があります。sonnetopus は「その時点での最新版」を指すので、新しいバージョンが出た瞬間に自動で切り替わります。「昨日と同じ挙動で動かしたい」「再現性が欲しい」という場面ではフルネーム指定の方が安心です。

ステップ6: 優先順位の落とし穴を実感する

settings.json"model": "opus" と書いてある状態で、わざと違うモデルを指定して立ち上げてみます。

$ claude --model sonnet

これで動くのは Sonnet です。settings.json が opus と書いてあろうが関係なく、コマンドの後ろに付けた指定が一番強いからです。3つの設定場所には強さの順番があります。

  • ① コマンドの後ろに付けた --model(一番強い)
  • settings.jsonmodel
  • ANTHROPIC_MODEL(パソコンに覚えさせている設定値)

「あれ、設定したのに効かない」と感じたら、たいてい上の方で別の指定が勝っています。

つまり --model は何をしてくれるのか

  • やってくれる: 立ち上げ時点で「今回はこのモデルで動け」と一発で固定する。settings.jsonANTHROPIC_MODEL も上書きしてくれる
  • やってくれない: 永続的なモデル変更。窓を閉じたら設定は消える
  • 意味が薄い場面: 普段使うモデルを根本的に変えたい時。それは settings.json を直接書き換える方が早い

使いどころ3シナリオ(具体題材で再現)

シナリオ1: 料理ブログの大量画像処理スクリプトを書かせる時、見積もりだけ軽いモデルでざっと回したい

レシピ写真300枚をまとめてリサイズ+圧縮するスクリプトを書きたい、と思って立ち上げる時。最終的に動かす本番コードは Opus に丁寧に書かせたいけど、まず「だいたいどんな構造になるか」「Pillow と PIL どっちで書くべきか」みたいなラフ案出しは Sonnet で十分です。

$ claude --model sonnet
> レシピ写真300枚を一括でリサイズ・圧縮するPythonの設計案を出して

ラフ案が固まったら閉じて、本番実装は普段の Opus に戻して回す。この使い分けが --model の本懐です。

シナリオ2: 家計簿アプリの仕様書を読ませて要約だけ Haiku で出したい

家計簿アプリの開発で、20ページくらいの仕様書 PDF を読ませて「まず章ごとの要約だけ欲しい」という場面。要約タスクは Opus でやると過剰で、しかもコストもかさみます。

$ claude --model haiku
> spec.pdf を章ごとに3行で要約して

要約が手元にきたら閉じて、設計の判断や実装相談は普段の Opus に戻る。同じプロジェクトを「タスクの重さ」でモデル切り替えできるのが利点です。

シナリオ3: OSSをcloneした直後、初見で全体構造を読ませる時に最新の Sonnet を試したい

GitHub から既存OSSをcloneしてきて、まず全体の構造を把握したい場面。新しい Sonnet が出たばかりで「噂の新版でコード読解がどれくらい変わったか試したい」みたいな時に、settings.json を書き換えずに一発で試せます。

$ cd ~/projects/cloned-oss
$ claude --model claude-sonnet-4-6
> このプロジェクトの全体構造を読んで、コア部分がどこか教えて

気に入らなければそのまま閉じて何も残らない。気に入ったら settings.json を書き換えて普段使いに昇格させる、という二段構えで試せます。

初心者が踏みやすい落とし穴

  • 「セッションごと」と「永続」を混同する--model で立ち上げ直してもまた元に戻る。永続変更は settings.json 側を書き換える
  • 短縮名(sonnetopus)は最新版を自動で追う。新版が出ると挙動が変わる。再現性が欲しいなら claude-sonnet-4-6 のようにバージョン付きフルネームを書く
  • /model スラッシュコマンドと混同する/model は会話の途中で切り替えるダイアログを開く。--model は立ち上げ時に決め打ちする。役割が違う
  • settings.json に opus と書いたから絶対 Opus」と思い込む。コマンドの後ろに --model sonnet を付けたらそっちが勝つ。後から付けた指定の方が強い
  • 存在しないモデル名を指定して怒られる。タイポや古い名前を書くと起動が拒否される。スペルとバージョン番号を公式の表記と合わせる
  • --fallback-model の存在を知らずにエラーで詰まる。指定したモデルが混雑等で使えない時、自動で代替に切り替わってほしい場面は --fallback-model とセットで指定する
  • 過去セッションを /resume で再開した時、当時の指定が引き継がれているか曖昧。資料を見ながら作業する前に、画面上部の表示で今動いているモデル名を必ず確認する

書き方

claude --model <モデル名 or 短縮名>

やってみるとこうなる

入力

claude --model claude-sonnet-4-6

出力例

Claude Code が指定したモデル(この例では Sonnet 4.6)で起動し、画面上部に動いているモデル名が表示される。セッション中ずっとそのモデルで動き、settings.json に別のモデルが書いてあってもこの起動時指定が勝つ。セッションを閉じれば次回からは普段の設定に戻る

このページに出てきた言葉

セッション
Claude Code を1回立ち上げてから閉じるまでの間。1セッション = 1回の窓
短縮名
<code>sonnet</code> <code>opus</code> のような短い別名で、その時点の最新版モデルに自動で読み替えられる
フルネーム
<code>claude-sonnet-4-6</code> のようにバージョン番号まで含めた正式な名前。固定したい時はこちらを使う
settings.json
Claude Code が起動時に読み込む設定ファイル。普段使うモデルや権限のルールをここに書いておく
ANTHROPIC_MODEL
パソコンが起動時に覚えている設定値の1つで、Claude Code が「指定がなければこのモデルを使う」と読みに行く名前
上書きの強さ
コマンドの後ろの <code>--model</code> 指定 → settings.json の model → ANTHROPIC_MODEL の順に強い。後から付けた指定の方が勝つ

関連項目

公式ドキュメント

https://code.claude.com/docs/en/cli-reference

-

← 戻る