Claude Codeのトークン、なぜこんなに減るのが早い?
Claude Codeを使い始めて最初に驚くのが、トークンの消費スピードだ。ちょっとしたバグ修正のつもりが、気づけば1セッションで数ドル飛んでいる。「便利だけど高い」——そう感じている人は多いはずだ。
しかし、トークン消費の仕組みを理解し、適切なテクニックを組み合わせれば、コストを半分以下に抑えることは十分可能だ。この記事では、Claude Codeのトークン節約術を網羅的に解説する。
トークン消費の仕組みを理解する
なぜClaude Codeは大量のトークンを使うのか
Claude Codeのトークン消費が多い理由は、主に以下の3つだ。
- 会話の蓄積:やりとりが長くなるほど、毎回のリクエストに過去の会話全体が含まれる。10往復目のメッセージには、1〜9往復分のコンテキストがすべて乗っている
- ツール呼び出しの結果:ファイルの読み取り、grep検索、bash実行などのツール結果がすべてコンテキストに追加される。1万行のログファイルを読めば、それだけでトークンが膨れ上がる
- システムプロンプトの固定コスト:CLAUDE.mdファイル、MCPサーバーの定義、スキル設定などが毎回のリクエストに含まれる。これらが大きいと、何もしなくても「基本料金」が高くなる
入力と出力、どちらが高いか
2026年4月時点のClaude API料金(100万トークンあたり)は以下の通りだ。
| モデル | 入力 | 出力 |
|---|---|---|
| Opus 4.6 | $5 | $25 |
| Sonnet 4.6 | $3 | $15 |
| Haiku 4.5 | $1 | $5 |
出力トークンは入力の5倍のコストがかかる。つまり、Claudeの「おしゃべり」を減らすことが最もコスト効果の高い節約手段になる。冗長な説明、丁寧すぎる前置き、やったことの要約——これらをカットするだけで大幅な削減が見込める。
プロンプトキャッシュの恩恵
Claude Codeは自動的にプロンプトキャッシュを使用している。キャッシュヒット時のコストは通常の入力価格の10%だ。つまり、同じセッション内で繰り返し送信されるシステムプロンプトや会話履歴の大部分は、大幅に割引されている。
ただし、キャッシュのTTL(有効期限)は5分間。5分以上操作しないとキャッシュが切れ、次のリクエストでフルコストがかかる。作業中は適度なペースでやりとりを続けるか、長時間離席するなら/clearしてから再開するのが経済的だ。
節約テクニック①:出力トークンを削減する
「原始人プロンプト」で出力を60〜75%カット
2026年初頭にRedditで話題になった「Caveman Mode(原始人プロンプト)」は、Claudeの出力を極限まで短くするテクニックだ。プロジェクトのCLAUDE.mdに以下のようなルールを追加する。
基本的な指示例:
- 冠詞、フィラー語、お世辞を使わない
- 短く、直接的に
- コードで説明できることは説明しない
- 質問の繰り返し、締めの挨拶は不要
ベンチマークでは、Web検索タスクで68%、コード編集で50%、Q&Aで72%の出力トークン削減が報告されている。日本語版では、敬語や助詞の省略により最大80%削減という報告もある。
GitHubで公開されている「caveman」スキルを導入すれば、CLAUDE.mdへの数行の追加で簡単に適用できる。さらに軽量な「caveman-micro」は、わずか85トークンのプロンプトで同等の効果を発揮する。
注意点:原始人プロンプトは出力の簡潔さと引き換えに、初心者にとっては説明が不足する場合がある。コードの意図や理由を知りたいときは、明示的に「なぜ?」と聞く必要がある。チームで使う場合は、メンバーのスキルレベルに合わせて調整しよう。
CLAUDE.mdで出力スタイルを制御する
原始人プロンプトほど極端でなくても、CLAUDE.mdに出力スタイルのルールを書くだけで効果がある。
- 「コード変更後の要約は不要」
- 「差分を見ればわかることは説明しない」
- 「確認メッセージは1行以内」
これだけでも、1セッションあたりの出力トークンを30〜40%削減できる。自分の作業スタイルに合わせて、どこまで簡潔にするかを調整しよう。
節約テクニック②:入力コンテキストを管理する
/clearと/compactを使い分ける
コンテキスト管理の基本は、この2つのコマンドだ。
| コマンド | 動作 | 使いどころ |
|---|---|---|
/clear |
会話をリセットして新規セッション開始 | タスクが完全に切り替わるとき |
/compact |
会話履歴を要約して圧縮 | 同じタスクを続けるが会話が長くなったとき |
/compactは会話全体を要約し、新しいセッションをその要約から開始する。80〜90%のトークンを回収しながら、重要な文脈は維持できる。さらに/compact コードサンプルとAPI使用法に焦点を当ててのように、保持したい情報を指示することも可能だ。
よくある失敗は、まったく関係ない新しいタスクを始めるときに/compactを使うこと。前のタスクの要約が残ると、不要なコンテキストが邪魔になる。タスクが変わったら/clearが正解だ。
.claudeignoreでノイズを遮断する
.claudeignoreファイルは.gitignoreと同じ書式で、Claudeに見せたくないファイルやディレクトリを指定できる。Claudeが読めないファイルは検索結果にも出ないので、コンテキストの肥大化を防げる。
除外すべき代表的なもの:
node_modules/、dist/、build/:ビルド成果物*.lock:ロックファイル*.min.js、*.min.css:ミニファイ済みファイルcoverage/、.next/:生成ファイル- 大きなデータファイル、画像アセット
特にモノレポや大規模プロジェクトでは、.claudeignoreの設定だけで目に見える効果がある。
CLAUDE.mdを軽量に保つ
CLAUDE.mdは毎回のリクエストに含まれる。5,000トークンのCLAUDE.mdがあれば、毎回のやりとりに5,000トークンの「税金」がかかる。
CLAUDE.md最適化のコツ:
- 2,000トークン(約200行)以下を目指す
- 詳細なルールは別ファイルに分割し、CLAUDE.mdからはパスで参照する
- グローバル設定(
~/.claude/CLAUDE.md)とプロジェクト設定を分ける - サブディレクトリごとのCLAUDE.mdで、関連ディレクトリでの作業時のみ読み込まれるようにする
Claudeは参照されたファイルを必要なときだけ読みに行く。「5つのルールだけCLAUDE.mdに書いて、詳細は別ファイル」が鉄則だ。
節約テクニック③:モデルとエフォートレベルの使い分け
タスクに合わせたモデル選択
すべての作業にOpusを使う必要はない。モデル選択だけでコストは大きく変わる。
| タスク | 推奨モデル | 理由 |
|---|---|---|
| 複雑なアーキテクチャ設計、難しいバグ | Opus | 深い推論が必要 |
| 一般的な機能実装、テスト作成 | Sonnet | 十分な品質でコスト1/3 |
| リネーム、フォーマット、簡単な検索 | Haiku | 単純タスクなら品質差なし、コスト1/5 |
Claude Codeでは/modelコマンドでセッション中にモデルを切り替えられる。「Sonnetで始めて、詰まったらOpusに切り替える」が最もコスパの良いワークフローだ。
エフォートレベルの調整
/effortコマンドで、Claudeの思考の深さを制御できる。エフォートレベルを下げると、拡張思考(extended thinking)に使われるトークンが減る。
- high:複雑な問題、バグの根本原因調査
- medium:通常の開発作業(Pro/Maxプランのデフォルト)
- low:単純な編集、質問への回答
環境変数MAX_THINKING_TOKENS=8000で、思考トークンの上限を直接設定することもできる。デフォルトよりかなり低い値に制限でき、単純なタスクには効果的だ。
節約テクニック④:サブエージェントで分離する
なぜサブエージェントが節約になるのか
サブエージェントはClaude Codeの中でも最も効果的なトークン節約手段の一つだ。仕組みはこうだ。
- サブエージェントはクリーンなコンテキストで起動する
- 指定された調査・作業を実行する(ファイル読み込み、grep、テスト実行など)
- 結果の要約だけがメインセッションに返される
たとえば、10ファイルにまたがるコードベース調査をメインセッションで行うと、すべてのファイル内容がコンテキストに蓄積される。サブエージェントに委任すれば、「Xという関数はsrc/utils.tsの42行目にあり、Y引数を受け取る」のような要約だけが返る。
サブエージェントの使いどころ
- 3ファイル以上にまたがる調査:依存関係の追跡、横断的な検索
- テストの実行:テスト出力は数百〜数千行になりうる
- ログファイルの分析:巨大な出力をサブエージェント内で処理
- ドキュメントの取得・要約:外部情報の取得と要約
サブエージェントのモデル指定
サブエージェントはデフォルトで親のモデルを継承するが、個別にモデルを指定できる。ファイルのソート、フォーマット修正、単純な検索などはHaikuで十分だ。サブエージェントごとにモデルを使い分けることで、さらなるコスト削減が可能になる。
節約テクニック⑤:フック(Hooks)で前処理する
フックとは
フック(Hooks)は、Claude Codeの特定のイベント(ツール呼び出しの前後、サブエージェントの起動・終了など)に応じてシェルコマンドを実行する仕組みだ。これを使って、Claudeに渡すデータを事前にフィルタリングできる。
前処理フックの活用例
たとえば、1万行のログファイルからエラーを探す場合。フックなしでは、Claudeがファイル全体を読み込んで数万トークンを消費する。前処理フックを設定すれば、grep ERRORで該当行だけを抽出してClaudeに渡せる。数万トークンが数百トークンになる。
他の活用例:
- 大きなJSONレスポンスから必要なフィールドだけ抽出する
- テスト出力から失敗したケースだけをフィルタリングする
- ビルドログから警告・エラー行だけを渡す
フックはsettings.jsonで設定する。PreToolUseイベントとPostToolUseイベントを使い分けることで、ツール呼び出しの前後でデータを加工できる。
節約テクニック⑥:MCPサーバーの管理
MCPサーバーのトークンコスト
MCP(Model Context Protocol)サーバーは便利だが、各サーバーのツール定義がシステムプロンプトに追加される。使わないMCPサーバーが接続されているだけで、毎回のリクエストで無駄なトークンが消費される。
プロジェクト単位での切り替え
プロジェクトルートに.mcp.jsonファイルを配置して、プロジェクトごとに使用するMCPサーバーを制御しよう。フロントエンド開発中にデータベース関連のMCPサーバーは不要だし、記事執筆中にGitHub関連のツールは必要ない。
「ToolSearch」機能が有効な環境では、全ツールのスキーマを最初からロードせず、必要なときだけ取得することで、ツール定義によるトークン消費を最大85%削減できる。
節約テクニック⑦:プロンプトの書き方を変える
具体的な指示がトークンを節約する
曖昧なプロンプトは、Claudeの質問返し(clarification loop)や過剰に広い探索を引き起こす。これがトークン浪費の大きな原因だ。
悪い例:「このコードを改善して」
良い例:「src/api/auth.tsのvalidateToken関数で、期限切れトークンのときに403ではなく401を返すように修正して」
具体的な指示は、Claudeの探索範囲を限定し、1回のやりとりで正確な結果を得られる確率を上げる。結果として、やりとりの往復回数が減り、トークン消費も減る。
ファイルパスと行番号を含める
「あのファイルのあの関数」ではなく、src/utils/parser.ts:145のように具体的に指定する。Claudeがファイルを探す手間(=ツール呼び出し=トークン消費)が省ける。
プランモードを活用する
複雑なタスクでは、いきなり実装に入るのではなく、プランモードで方針を確認してから実装に入る。方向性の修正が早い段階で行えるため、「実装してから全部やり直し」という最悪のトークン浪費を防げる。
各テクニックの比較
ここまで紹介したテクニックを、効果・手軽さ・デメリットで比較する。
| テクニック | 削減効果 | 導入の手軽さ | デメリット |
|---|---|---|---|
| 原始人プロンプト | 出力60〜75%減 | ★★★(CLAUDE.mdに追加するだけ) | 説明が省かれすぎる場合がある |
| /clear・/compact | 入力80〜90%減 | ★★★(コマンド1つ) | 過去の文脈が失われるリスク |
| .claudeignore | 探索トークン大幅減 | ★★★(ファイル1つ作成) | 除外しすぎると必要なファイルが見えなくなる |
| CLAUDE.md軽量化 | 毎回の固定コスト減 | ★★☆(整理に手間がかかる) | ルールが別ファイルに散る |
| モデル使い分け | コスト1/3〜1/5 | ★★★(/modelで切替) | 低コストモデルは複雑なタスクに弱い |
| エフォートレベル調整 | 思考トークン減 | ★★★(/effortで切替) | 低すぎると推論の質が下がる |
| サブエージェント活用 | コンテキスト肥大防止 | ★★☆(使い方の学習が必要) | サブエージェント自体もトークンを消費する |
| フック前処理 | 入力トークン大幅減 | ★☆☆(設定がやや複雑) | フック自体の開発・保守コスト |
| MCP管理 | 固定コスト減 | ★★☆(.mcp.jsonの管理) | プロジェクトごとの設定が必要 |
| 具体的なプロンプト | 往復回数減 | ★★★(意識するだけ) | 毎回の手間が少し増える |
実践的なコスト管理のコツ
日常のワークフローに組み込む
節約テクニックは、日常のワークフローに自然に組み込めて初めて効果を発揮する。おすすめの運用フローは以下の通りだ。
- セッション開始:Sonnetで開始。CLAUDE.mdに出力簡潔化ルールを設定済み
- 調査フェーズ:サブエージェント(Haiku)に調査を委任。結果の要約だけ受け取る
- 実装フェーズ:必要に応じてOpusに切り替え。エフォートレベルはタスクの複雑さに応じて調整
- タスク切替時:
/clearで会話をリセット - 長時間作業時:定期的に
/compactでコンテキストを圧縮
コストの可視化
Claude Codeのセッション中は、画面下部にトークン使用量が表示される。これを定期的にチェックする習慣をつけよう。「今回のセッションは意外と使ってるな」と気づいたら、/compactのタイミングかもしれない。
API利用の場合は、Anthropicのダッシュボードでプロジェクトごと・モデルごとのコストを確認できる。週次で確認し、想定外のコスト増がないかチェックしよう。
チームでの運用
チームでClaude Codeを使う場合は、プロジェクトのCLAUDE.mdに節約ルールを入れておくことで、メンバー全員に同じ設定が適用される。企業利用のデータでは、開発者1人あたり月$150〜$250が平均的なコストとされている。節約テクニックを適用すれば、この半分以下に抑えることも可能だ。
やりすぎに注意
節約を意識しすぎて開発効率が落ちては本末転倒だ。以下のバランスを意識しよう。
- 難しいバグには惜しまずOpus + highエフォートを使う。1時間悩むよりClaude Codeに$5払うほうが安い
- 原始人プロンプトで意図が伝わらず何度もやり直すくらいなら、普通の出力のほうが結果的に安い場合もある
- サブエージェントを過度に分割すると、それぞれがCLAUDE.mdを読み込む分のオーバーヘッドがある
まとめ:組み合わせが最強
Claude Codeのトークン節約に「これ1つで解決」という銀の弾丸はない。効果的なのは、複数のテクニックを組み合わせることだ。
最小限の設定で始めるなら:
- CLAUDE.mdに出力簡潔化ルールを追加(5分)
- .claudeignoreでビルド成果物を除外(5分)
- タスク切替時に
/clearを使う習慣をつける(0分)
この3つだけで、体感で30〜50%の削減効果がある。
さらに踏み込むなら:
- モデルの使い分け(Sonnet基本、必要時のみOpus)
- サブエージェントによる調査の分離
- エフォートレベルの適切な設定
- MCPサーバーの整理
ここまでやれば、50〜70%のコスト削減も現実的だ。Claude Codeの真価は「使い倒す」ことにある。節約テクニックを味方につけて、コストを気にせず開発に集中できる環境を整えよう。















人気記事