この記事の目次
Claude Codeのトークン節約の基本は、無関係な作業に移るたびに /clear で会話を捨てることです。公式ドキュメントは、Claude Codeが送信のたびに会話全体を送るため、終日開いたままのセッションでは1行の質問でも会話全体の分を消費すると説明しています。そのうえで、モデルとeffortをセッション冒頭で決めて途中で変えない、CLAUDE.mdを短くして専門手順をスキルへ移す、テストやログのような長い出力をサブエージェントやフックでメインの会話の外に出す、の3つを重ねます。どの使用量調整が自分に効くかは、/usage の内訳で消費元を見てから決めます。
Claude Codeのトークン節約は何から手を付けるべきか?
公式の「Manage costs effectively」とプロンプトキャッシュの解説をもとに、消費元の確認から始める費用管理の取り組み順の一例として並べると次のとおりです。
| 順 | やること | 主なコマンド・設定 | 効く場面 |
|---|---|---|---|
| 1 | 消費元を確認する | /usage、/context |
何が重いか分からないとき |
| 2 | 無関係な作業の前に会話を捨てる | /clear、/rename、/resume |
1つのセッションで複数の作業をしている |
| 3 | 圧縮はタスクの区切りで行う | /compact、/rewind |
同じ作業を長く続けている |
| 4 | モデルとeffortを冒頭で決める | /model、/effort、/config |
Opusを既定にしたまま使っている |
| 5 | CLAUDE.mdを200行未満にする | スキルへ移す | 起動時の読み込みが大きい |
| 6 | 使わないMCPサーバーを止める | /mcp |
MCPを多数つないでいる |
| 7 | 長い出力をメインの外で処理する | サブエージェント、フック | テストやログの出力が多い |
| 8 | 待機中の消費を止める | crossSessionInbound、idleCompaction など |
開きっぱなしのセッションがある |
公式は、APIやクラウド経由で想定外に費用が膨らむ原因として、消さないまま続けた長いセッションと、既定のままのOpusの2つを挙げています。上の表の2番と4番がそれに当たります。
なぜ長いセッションほどトークンを消費するのか?
トークンの消費はコンテキストの大きさに比例します。Claude Codeはプロンプトキャッシュと自動圧縮で自動的にコスト抑制を進めていますが、会話が長くなるほど1回の送信で扱う量は増えます。公式が長いセッションで消費が膨らむ理由として挙げているのは次の点です。
- 長いコンテキスト: 送信のたびに会話全体を送り、ツールを使うたびにその結果を載せた追加のリクエストが出る
- キャッシュミス: キャッシュ寿命より長い休憩のあとの最初のメッセージは、文脈全体を処理し直す。寿命はサブスクリプションで1時間、usage creditsを使っている間は5分、APIキーやクラウドプロバイダーでは既定で5分
- サブエージェントとワークフロー: メインの会話とは別に、それぞれが自分のリクエストを送る
- 圧縮そのもの:
/compactは要約する会話を読むため、大きな文脈の圧縮はそれ自体が大きなリクエストになる
使用量の考え方の基本はトークンとは何かの解説、コンテキストの上限と自動圧縮の仕組みはコンテキストウィンドウの解説で扱っています。
何がトークンを消費しているかはどう確かめるか?
/usage と /context の2つで確かめます。
Pro、Max、Team、Enterpriseのプランでは、/usage にプラン上限に数えられる使用量の内訳が出ます。スキル、サブエージェント、プラグイン、MCPサーバーごとの割合が表示され、長いコンテキストやキャッシュミスが直近の使用量の10%以上を占めると、その挙動にフラグが付きます。/loop などのスケジュールタスクのうち重いものも、トークン量の多い順に行で出ます。d と w で直近24時間と7日間を切り替えられます。この値は概算で、このマシンのローカル履歴から計算されるため、他の端末やclaude.aiでの使用は含まれません。
同じ画面のSessionブロックの金額は、API利用者向けにローカルで計算した推定値です。ProとMaxでは請求上の意味はありません。
/context は、いまのコンテキストの利用状況をカテゴリ別に表示し、最適化の提案も出します。どのCLAUDE.mdと自動メモリのファイルが読み込まれたかもここで分かります。
スピナーの横に出るトークン数は現在のターンの出力量の概算で、会話履歴など送信側の量は含みません。確認画面の違いはトークン使用量の確認方法で詳しく扱っています。
/clearと/compactはどう使い分けるか?
続きが要らないなら /clear、同じ作業を続けるなら会話の区切りで /compact です。公式は、新しく始めたいときの /clear はコストがかからないと明記しています。
無関係な作業に切り替えるときは /clear で会話を捨てます。古い文脈は、そのあとのすべてのメッセージでトークンを無駄にするためです。あとで戻りたいセッションは、消す前に /rename で名前を付けておけば /resume で再開できます。
同じ作業を続けるなら /compact で会話を要約します。残したい内容を指示することもできます。
/compact Focus on code samples and API usage
プロジェクトのルートにあるCLAUDE.mdに、圧縮時の方針を書いておく方法もあります。
# Compact instructions
When you are using compact, please focus on test output and code changes
/compact はタイミングでコストが変わります。キャッシュが残っている間なら文脈の大きさのわりに安く済みますが、キャッシュ寿命より長く空けたあと、たとえば古いセッションを再開した直後の圧縮は、全履歴をキャッシュなしで処理し直すため最も高くつきます。公式は、トークン節約のために自動圧縮が作業の途中で走るのを待たず、タスクの区切りで自分から実行するよう勧めています。
行き詰まった方向をまるごと捨てたい場合は、/compact より /rewind で前のターンに戻るほうが合っています。/rewind はすでにキャッシュされた地点まで会話を切り詰めるので、新しく要約を作る圧縮とは違ってキャッシュをそのまま使えます。
モデルとeffortを切り替えるときの注意点は?
Claude Codeでの切り替えはセッションの冒頭で済ませ、作業の途中では変えないことです。
公式の指針は、多くのコーディング作業はOpusより安いSonnetで足り、Opusは複雑な設計判断や多段の推論に回すというものです。/model でセッション中に切り替えられ、既定は /config で設定します。単純な作業をするサブエージェントには、設定で model: haiku を指定できます。
注意したいのは、モデルごとにキャッシュが別になっている点です。途中で /model を切り替えると、次のリクエストは内容が同じでも会話履歴全体をキャッシュなしで読みます。多くのモデルでは、effortの途中変更も同じ扱いです。公式は、モデルとeffortをセッションの最初に決め、途中の変更を減らすほどキャッシュのヒット率が上がると説明しています。プランモード中はOpus、実行中はSonnetを使う opusplan 設定では、プランモードの切り替えのたびにモデルが変わり、キャッシュも作り直しになります。
思考(extended thinking)のトークンは出力トークンとして課金されます。深い推論が要らない作業では /effort でeffortを下げるか、/config で思考を無効にします。ただしOpus 5.5、Sonnet 5.5、Haiku 5.5とFableのモデルは思考をオフにできないので、effortで調整します。モデルごとの違いはモデルの違いの解説にまとめています。
CLAUDE.mdとMCPの常駐コストはどう減らすか?
CLAUDE.mdはセッション開始時にコンテキストへ読み込まれます。PRレビューやデータベースの移行のような特定作業の手順を書いておくと、関係のない作業をしている間もそのトークンが乗り続けます。スキルは呼び出されたときだけ読み込まれるので、専門的な手順はスキルへ移すと基本の文脈が小さくなります。公式の目安は、必要なことだけを書いて200行未満に収めることです。
CLAUDE.mdを削ったのに効果が見えない場合は、反映のタイミングを確認してください。プロジェクトのルートとユーザー単位のCLAUDE.mdはセッション開始時に1回だけ読まれ、途中で編集しても反映されません。新しい内容は次の /clear、/compact、または再起動で読み込まれます。書き方そのものはCLAUDE.mdの書き方、スキルの作り方はスキルの解説で扱っています。
MCPのツール定義は既定で遅延読み込みになっており、Claudeが特定のツールを使うまではツール名とサーバーの説明だけがコンテキストに入ります。それでも公式は次の2点を勧めています。
gh、aws、gcloud、sentry-cliのようなCLIがあるなら、ツールごとの一覧を追加しないぶんMCPサーバーより文脈の効率がよい/mcpで設定済みのサーバーを確認し、使っていないものを無効にする
シンボル単位で移動できるコードインテリジェンスのプラグインを入れると、不要なファイル読み込みが減ります。
長い出力をメインの会話に入れないにはどうするか?
テストの実行、ドキュメントの取得、ログの処理は、メインの会話に入れると大きな文脈を消費します。公式は、これらをサブエージェントに任せ、長い出力はサブエージェント側の文脈に残して要約だけをメインに戻す方法を挙げています。ただしサブエージェント自身のリクエストも使用量に数えられるので、小さいモデルを割り当てるとさらに抑えられます。設計の詳細はサブエージェントの解説を参照してください。
フックを使うと、Claudeが読む前にデータを絞れます。公式の例では、1万行のログを読ませる代わりにフックで ERROR を含む行だけを返し、数万トークンの文脈を数百トークンに減らしています。テストの出力を失敗だけに絞るPreToolUseフックの設定例は次のとおりです。
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/filter-test-output.sh"
}
]
}
]
}
}
呼び出すスクリプト ~/.claude/hooks/filter-test-output.sh の本体と作成手順は、公式の「Manage costs effectively」に掲載されています。設定が効いているかは、/hooks を実行してPreToolUseの下にこのフックが出ているかで確認します。出ていれば次に、claude --debug-file ./claude-debug.txt で起動してClaudeに npm test を実行させ、ログファイルに modified tool input keys の行があるかを見ます。この行がなければ、コマンドは書き換えられていません。フック全般の仕組みはフックの解説にあります。
手戻りによる無駄はどう減らすか?
公式は、「このコードベースを改善して」のような曖昧な依頼は広い走査を招き、「auth.tsのlogin関数に入力検証を追加して」のような具体的な依頼なら最小限のファイル読み込みで済むと説明しています。複雑な作業は実装前に Shift+Tab でプランモードに切り替えて方針を承認し、ずれ始めたら Escape で止めて /rewind で前のチェックポイントへ戻します。プランモードの使い方はプランモードの解説にまとめています。
操作していないのに消費が進むのはどんなときか?
公式によると、claude --resume 用の会話要約などのバックグラウンド処理は、操作していなくても少量のトークンを使います(通常1セッションあたり0.04ドル未満)。これとは別に、開いたまま放置したセッションで消費が進む原因と、その止め方は次のとおりです。
| 原因 | 何が起きるか | 止め方・確認先 |
|---|---|---|
| スケジュールタスク | 待機中も間隔ごとに発火し、そのたびに文脈全体を送る | 重いものは /usage の内訳に出る |
| 他セッションからのメッセージ | 待機中に新しいターンとして届き、文脈全体を送る | crossSessionInbound を hold にする |
| goalのチェックイン | 待機中も作業の確認のために新しいターンを始める | 環境変数 CLAUDE_CODE_GOAL_CHECKIN_MINUTES を 0 にする |
| 待機中の自動圧縮 | 1時間のキャッシュ寿命で動いているターミナルの長い会話を放置すると、失効の少し前に圧縮されることがある | idleCompaction を false にする(Claude Code v2.1.290以降) |
| プロンプト候補 | 応答のあとに次の入力候補を作る短いリクエストが出る | プロンプト候補をオフにする |
節約しても上限に達したらどうするか?
上限の種類で対処が変わります。「You’ve hit your session limit」や「You’ve hit your weekly limit」は全モデル共通の枠なので、/model で切り替えても戻りません。一方、「You’ve hit your Opus limit」や「You’ve hit your Sonnet limit」のようなモデル別の上限なら、別系統のモデルに切り替えれば作業を続けられます。usage creditsをオンにしていれば、/usage-credits で枠を超える分を申請できます。
コンテキストや自動圧縮の警告は使用量の上限ではなく、/clear や /compact で対処するものです。上限の種類と回復の待ち方は使用制限の解説と週間制限の解説で扱っています。
公式の記述が変わりうる点
ここで挙げたコマンドや設定は、2026年10月時点の公式ドキュメントの記述にもとづいています。Claude Codeはアップデートで機能やコストの表示が変わることがあると公式自身が明記しており、idleCompaction(v2.1.290以降)のようにバージョンで使える範囲が決まる設定もあります。手元の挙動が違う場合は、claude --version でバージョンを確かめてから、公式の「Manage costs effectively」を見直してください。
Claude Codeの使い方を実際に手を動かしながら学びたい場合は、月額1,980円から参加できる学習コミュニティ「AI駆動ラボ」(lab.no-wave.jp)もあります。