Claude Code を使い込んでいくと、気になってくるのがトークン消費量だ。コンテキストウィンドウが肥大化すると応答が遅くなり、コストも増える。今回は、実際のヘビーユーザーや公式ドキュメントから集めた「コンテキスト管理と費用最適化」の実践 Tips をまとめた。
/clear と /compact を使い分けるタスクが変わるたびに /clear でコンテキストをリセットするのが基本。だが完全リセットが惜しいとき(途中の判断や決定を残したい)は /compact が使える。
/clear** — コンテキストをゼロにリセット。別タスクに移るときに使う/compact** — 重要な情報を要約してコンテキストを圧縮。継続作業で肥大化を抑えるときに使う「何か別のことを頼む前に /clear を叩く」を習慣にするだけで、余計なトークンの蓄積をかなり防げる。
Claude Code はコンテキストが一定量を超えると自動でコンパクションを走らせる(デフォルト 95%)。この閾値は下げられる。
// .claude/settings.json
{
"autoCompact": {
"threshold": 0.70
}
}
95% まで溜め込んでから圧縮するより、70% で早めに圧縮するほうが圧縮精度が高い。コンテキストが膨らんで「何を覚えているかわからない」状態を防げる。
/usage と /context で現状を把握する使用量を確認するコマンドが2つある。
/usage → 累積トークン使用量とコストの概要
/context → 現在のコンテキストウィンドウの使用状況(何%残っているか)
「気づいたら限界近くまで使っていた」を防ぐために、長い作業中に定期的に /context を叩くのが効果的だ。
node_modules/、build/、dist/、logs/ などを Claude Code の読み取り対象から外す。
// .claude/settings.json
{
"ignorePaths": [
"node_modules",
"build",
"dist",
".git",
"*.log",
"coverage"
]
}
これらのディレクトリは大量のファイルを含むため、プロジェクト全体を渡すときに不要なトークンを大量消費する原因になる。
ルーティンな作業(コードフォーマット、簡単なリファクタ、コメント追加)は Sonnet、設計判断や複雑なデバッグは Opus——と使い分けることでコストを抑えられる。
# モデルを指定して起動
claude --model claude-sonnet-4-6 # ルーティン作業
claude --model claude-opus-4-7 # 複雑な設計・デバッグ
モデルの切り替えは /model コマンドでセッション中にも変えられる。
ターミナル出力や MCP レスポンスを必要以上に大きくしないようにするのも効果的だ。
// .claude/settings.json
{
"maxTerminalOutputChars": 20000,
"mcp": {
"maxResponseTokens": 8000
}
}
特にテスト実行のログは巨大になりがち。「失敗したテストだけ表示する」設定にしておくと、成功ログでコンテキストが埋まる問題を防げる。
# テスト失敗のみ出力(例: Jest)
npm test -- --verbose=false 2>&1 | grep -E "(FAIL|✕|●)"
| アクション | 効果 |
|---|---|
タスク切替時に /clear |
不要なコンテキスト蓄積を防ぐ |
| auto-compact 閾値を 70% に | 早めの圧縮で精度を保つ |
/context で定期確認 |
限界直前の気づきを防ぐ |
| noisy ディレクトリを除外 | 初期読み込みのトークン節約 |
| モデルを作業で選ぶ | コストパフォーマンスの最大化 |
| 出力サイズを制限 | ログ系のコンテキスト汚染を防ぐ |
どれも設定1行・習慣1つで対応できるものばかり。使い込んでいる人ほど「あれ、思ったよりすぐ限界来るな」と感じるはずなので、早めに対策しておくと快適さが違う。