Claude Codeを本格的に使い始めると、こんな悩みが出てきます。
- 思ったよりトークン(=コスト)を消費している気がする
- 大したことを頼んでいないのに、消費が早い
- 長いセッションだと、後半は遅いうえに精度も落ちる
- 何が消費を増やしているのか、そもそも分からない
トークン消費は「使った量」だけで決まると思われがちですが、実際は使い方の設計で大きく変わります。同じ成果を出すのに、消費を半分以下に抑えることも珍しくありません。しかも、消費を減らす工夫はそのまま精度と速度の改善にもつながります。
この記事では、Claude Codeのトークン消費を減らすための実践テクを8つ紹介します。難しい設定は不要で、ほとんどは普段の頼み方を少し変えるだけです。
大前提: トークンを食う「3つの犯人」を知る
まず、何がトークンを消費しているのかを把握します。消費の正体はだいたい次の3つです。
トークンを食う3大要因
├─ ① 読み込んだファイルの中身(Read / grep の結果)
├─ ② ツールの実行結果(ビルドログ・テスト出力・エラー全文)
└─ ③ 会話の往復すべて(過去のやり取りも毎回再送される)
重要なのは③です。Claude Codeは1回の応答のたびに、それまでの会話全体を毎回読み直しています。つまり会話が長くなるほど、1回あたりの消費がどんどん膨らみます。後半で消費が早く感じるのはこのためです。
この3つを「いかに溜めないか・いかに減らすか」が、コスト削減のすべてです。以下の8つはすべてこの考え方の応用です。
テク1: タスクの区切りで /clear する
最も効くのにやられていないのがこれです。会話履歴は応答のたびに再送されるので、不要になった履歴を抱えたまま続けるのは、毎回お金を払って過去のゴミを読ませているのと同じです。
タスクが切り替わったら /clear で会話をまるごと破棄します。
認証バグ修正が完了 → 次はドキュメント作成
→ ここで /clear
→ もう不要な認証コードの読み込み結果を毎回再送せずに済む
「テーマが変わったら /clear」を習慣にするだけで、長時間作業の総消費が大きく下がります。
テク2: 続ける場合は /compact で履歴を圧縮する
同じタスクを続けたいので /clear はできない、でも会話が長い。そんなときは /compact です。会話履歴を要約に圧縮し、以降はその要約だけを再送するようになります。
さらに、/compact は何を残すかを指定できます。
/compact これまでの設計判断(DBはPostgres・認証はJWT)と
未完了のTODOだけ残して。デバッグ中の試行錯誤やエラーログは捨てて
こうすると、要約から無駄が削られ、以降の再送量が減ります。捨てていいもの(解決済みのエラーログ・試行錯誤)を明示するのがコツです。
テク3: ファイルは「全部読む」より「範囲を絞って読む」
消費の隠れた大物が①のファイル読み込みです。2000行のファイルを丸ごと読ませると、それだけで一気にトークンを食います。本当に必要なのが20行でも、です。
Before(丸ごと読む):
「utils.ts を読んで formatDate を直して」
→ 2000行が全部読み込まれる
After(絞って読ませる):
「utils.ts の formatDate 関数だけ直して。
まず grep で定義位置を特定して、その関数の前後だけ読んで」
「まず探してから、必要な範囲だけ読む」と段取りを指示するだけで、読み込み量が大幅に減ります。
テク4: 長いログ・エラーは要点だけ渡す
②のツール実行結果も大物です。失敗したテストのフルログ、長いスタックトレース。これらは1回で大量のトークンを消費します。
エラー全文をそのまま取り込ませず、要点だけ報告させます。
Before: テスト失敗ログを全文取り込む
After: 「テストを実行して、失敗したテスト名とエラーの要点
(メッセージ1行 + ファイル:行番号)だけ報告して。
スタックトレース全文は不要」
そして、問題が解決したらそのログは机から下げること。テク2の /compact で「デバッグの経過は捨てて」と指定して片付けます。
テク5: 大量調査はサブエージェントに委任する
「src/ 配下を全部読んで構成を把握して」のような横断調査は、放っておくと数十ファイルの中身が親の会話に積み上がり、以降ずっと再送され続けます。
こういう調査はサブエージェントに委任して、結果の要約だけを受け取ると効率的です。
「src/ 配下のアーキテクチャ調査はサブエージェントに任せて、
主要モジュールの責務とデータの流れの要約だけ受け取って」
サブエージェントが読み込んだファイルの中身は、親の会話には積み上がりません。**「調査の重い部分は別の作業場でやらせ、成果の要約だけ持ち帰る」**ことで、親の会話を軽く保てます。
テク6: 調査結果はファイルに書き出して再利用する
一度調べたことを、セッションをまたいで何度も調べ直していませんか。それは毎回トークンを払って同じ調査をやり直しているのと同じです。
調査・設計の成果は .md ファイルに書き出します。
「調査結果を docs/architecture-notes.md にまとめて。
次回からはこのファイルを読めば把握できる状態にして」
次回からは「docs/architecture-notes.md を読んで」の一言で、数十ファイルを再読み込みせずに把握状態へ復帰できます。揮発する会話ではなく、残るファイルに成果を逃がすのがポイントです。
テク7: 不変の前提は CLAUDE.md に置く
毎セッション「このプロジェクトはPostgres」「テストはvitest」と説明していませんか。会話で毎回伝えると、そのぶん消費しますし、/clear のたびに消えてまた説明、の繰り返しです。
変わらない前提は CLAUDE.md に書いておきます。自動で読み込まれ、/clear でも消えません。
# CLAUDE.md
## 技術スタック(固定)
- DB: PostgreSQL / 認証: JWT
- テスト: vitest
- パッケージマネージャ: npm
これで毎回の説明が消え、しかも /clear を気軽に打てるようになります。テク1の /clear 習慣とセットで効きます。
テク8: 重いモデルと軽いモデルを使い分ける(必要に応じて)
すべての作業に最高性能のモデルが要るわけではありません。簡単な定型作業・軽い修正には、軽量で低コストなモデルで十分なことが多いです。
Claude Codeは利用中のモデルを切り替えられます(/model で確認・変更)。
重いモデルが向く作業: 複雑な設計・難しいバグの原因究明・大規模リファクタ
軽いモデルで十分な作業: 定型的な修正・フォーマット整え・単純な置換
「いま難しいことをしているか?」を意識して、難所だけ重いモデルに任せ、軽作業は軽いモデルに回すと、トータルのコストを抑えられます。
注意: モデルの選択肢や名称は時期によって変わります。手元の
/modelで現在利用できるものを確認してください。
まとめ: コスト削減チェックリスト
| テク | 要点 | 効く要因 |
|---|---|---|
| 1. タスク区切りで /clear | 不要な履歴を再送しない | ③会話 |
| 2. 続行は /compact で圧縮 | 残すもの・捨てるものを指定 | ③会話 |
| 3. 範囲を絞って読む | 丸ごと読みを避ける | ①読み込み |
| 4. ログは要点だけ | 全文を取り込ませない | ②実行結果 |
| 5. 調査はサブエージェント | 重い読み込みを親に積まない | ①読み込み |
| 6. 成果はファイルに書き出す | 同じ調査を繰り返さない | ①読み込み |
| 7. 前提は CLAUDE.md へ | 毎回の説明をなくす | ③会話 |
| 8. モデルを使い分ける | 難所だけ重いモデル | 全般 |
トークン消費を減らす工夫は、そのまま精度の向上と速度の改善につながります。会話を軽く保てば、Claude Codeは長時間でもキレを維持しますし、結果として無駄なやり直しも減ります。
まずは**テク1(タスク区切りで /clear)とテク3(範囲を絞って読む)**の2つから始めてみてください。この2つだけでも、消費の体感がかなり変わるはずです。
補足: 軽く回す土台になる無料リポジトリ
テク6・7で触れた「ファイルに逃がす運用」「CLAUDE.mdに前提を置く運用」は、設計の型を知っていると始めやすくなります。私が使っているスキルを無料で公開しています。
無料スターター(GitHub・CC BY 4.0):
https://github.com/noguso245-jpg/claude-code-skills-starter
CLAUDE.md設計や計画ファースト開発(PIV)など4本のスキルが日本語・英語で入っています。コンテキストを軽く保つ運用の土台づくりに使えます。まずは無料リポジトリから試してみてください。
最新のTipsはXでも発信しています: @k___n___t_1125