Claude Codeのトークン消費を減らしたいなら、まず settings.json に2行入れるのが楽です。
毎回 Haiku / Sonnet / Opus を手で切り替える運用は、たぶん続きません。
この記事では、ターミナルからClaude Codeを使っている人向けに、最初に入れる設定と、無理なく続く運用を書きます。
ターミナル派はまず個人設定に入れる
全プロジェクトで同じように使いたいなら、個人設定に入れます。
mkdir -p ~/.claude
nano ~/.claude/settings.json
中身はこれです。
{
"model": "sonnet",
"env": {
"CLAUDE_CODE_DISABLE_1M_CONTEXT": "1",
"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "80"
}
}
nanoなら、保存はこの順番です。
Ctrl + O
Enter
Ctrl + X
そのあと、Claude Codeを起動し直します。
claude
これで基本は Sonnet。
1Mの巨大コンテキストは使わず、80%で自動圧縮します。
このリポジトリだけで試すなら local に入れる
いきなり全体へ入れるのが不安なら、今のプロジェクトだけで試せます。
mkdir -p .claude
nano .claude/settings.local.json
中身は同じです。
{
"model": "sonnet",
"env": {
"CLAUDE_CODE_DISABLE_1M_CONTEXT": "1",
"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "80"
}
}
~/.claude/settings.json は自分の全プロジェクト用。 .claude/settings.local.json は今のプロジェクトだけの個人用です。
Claude Code公式ドキュメントでも、環境変数は settings.json の env に書けると説明されています。
設定ファイルの場所も、個人用とプロジェクト用に分かれています。
モデル自動切替は settings.json だけでは難しい
よくある考え方はこれです。
- Haiku: 単純作業
- Sonnet: 調査、実装、整理
- Opus: 設計、難しい判断
考え方としては正しいです。
でも、settings.json だけで「このタスクは単純だからHaiku」「これは難しいからOpus」と完全自動で切り替えるのは基本できません。
できるのは、基本モデルを固定することです。
{
"model": "sonnet"
}
または環境変数で固定します。
{
"env": {
"ANTHROPIC_MODEL": "claude-sonnet-4-5-20250929"
}
}
ただし、これは「固定」です。
タスク内容を見て自動で変える設定ではありません。
毎回切り替えないなら Sonnet 固定が楽
個人的には、普段使いは Sonnet 固定が一番楽だと思います。
理由は単純です。
- 調査に強い
- 実装にも使える
- 記事整理にも使える
- 毎回モデルを選ばなくていい
トークン消費を減らしたいからといって、毎回モデルを選ぶ運用にすると疲れます。
それより、基本は Sonnet。
難しい設計だけ自分で「Opusで考えて」と言う。
このくらいが続きます。
サブエージェントは増やしすぎない
サブエージェントを使う場合は、先にルールを決めたほうがいいです。
- 子エージェントを勝手に増やしすぎない
- 深さは最大2階層
- 難しい判断は親へ戻す
- 単純作業担当はさらに分岐しない
これを決めないと、調査役、修正役、確認役が増えすぎます。
結果として、便利なはずの分担がトークン消費を増やします。
Claude Codeでは、サブエージェントをユーザー単位やプロジェクト単位で設定できます。
ただし、最初から複雑にしないほうがいいです。
まずは「増やしすぎない」だけで十分です。
スクリーンショットよりテキスト取得を優先する
トークンを減らしたいなら、情報の取り方も大事です。
ブラウザ画面を毎回スクリーンショットで見るより、公開ページならWebFetch、PDFならテキスト変換、ログインが必要なサイトならブラウザCLI系の取得を優先したほうが軽くなりやすいです。
画像として読むより、テキストとして読むほうが安い。
これはかなり大きいです。
Claude Codeにルールとして書くなら、こうです。
## Token rules
- 調査は必要ファイルだけ読む
- スクリーンショットよりテキスト取得を優先する
- 進捗報告は短くする
- 大きな判断だけ高性能モデルを使う
- サブエージェントは最大2階層
- 判断不能なら親へ戻す
これは AGENTS.md や CLAUDE.md に入れる運用ルールです。
モデルを自動で変える設定ではありません。
でも、無駄な読み込みや長い説明を減らす効果はあります。
まず入れるならこの設定だけでいい
最初から完璧に分けなくていいです。
まずはこれだけで十分です。
{
"model": "sonnet",
"env": {
"CLAUDE_CODE_DISABLE_1M_CONTEXT": "1",
"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "80"
}
}
この設定で、巨大コンテキストを避ける。
圧縮を早める。
普段は Sonnet で固定する。
それでも重いと感じたら、次にエイリアスを作ります。
alias claude-normal='claude'
alias claude-hard='claude --model opus'
普段は claude-normal。
難しい設計だけ claude-hard。
これなら手間は少ないです。