Claude Code を毎日使っていると、気になるのが「どのくらいコストがかかっているのか」ですよね。
Anthropic の公式データによると、平均的な開発者の1日あたりのコストは約$6。90%のユーザーは1日$12以下に収まっているそうです。ただし、これはあくまで平均。使い方次第で大きく変わります。
「気づいたらレート制限に引っかかった」「月末にはもう使い物にならない」——そんな経験がある人も多いのではないでしょうか。実はこの問題、Claude Code の仕組みを理解して、いくつかの習慣を変えるだけで大幅に改善できます。
この記事では、トークン消費の仕組みから具体的な節約テクニック、プランの選び方まで、コスト最適化のすべてを解説します。
コストの正体:コンテキストウィンドウ
Claude Code のコストを理解するには、まずコンテキストウィンドウを理解する必要があります。
コンテキストウィンドウには、あなたが送ったメッセージ、Claude が読んだファイルの内容、コマンドの実行結果——これらすべてが詰め込まれています。そして、コンテキストが大きくなるほど、1回のやり取りで消費するトークンが増えます。
つまり、コスト最適化の本質は「コンテキストをいかに小さく保つか」に尽きます。
Claude Code は自動的に2つの最適化を行っています。
- プロンプトキャッシング: システムプロンプトのような繰り返しコンテンツのコストを削減
- 自動コンパクション: コンテキストが限界に近づくと、会話履歴を要約して圧縮
しかし、これだけに頼っていると無駄は残ります。以下のテクニックで、さらにコストを削減しましょう。
テクニック1:タスクの切れ目で /clear する
最もシンプルで最も効果的なテクニックです。
ある機能の実装が終わって、次は別のバグ修正に取りかかる——そんなとき、同じセッションで続けていませんか? 前のタスクのコンテキスト(読んだファイル、実行したコマンド、やり取りの履歴)がすべて残ったまま、新しいタスクを始めることになります。
これが「キッチンシンクセッション」と呼ばれるアンチパターンです。関係ない情報でコンテキストが埋まり、Claude の精度も下がるし、毎回のやり取りのコストも上がる。まさに二重の損失です。
# バグ修正が終わったら…
/rename auth-bug-fix # セッションに名前をつけて
/clear # コンテキストをリセット
# 後日、戻りたくなったら
claude --resume # 過去のセッション一覧から選択
/clear しても会話は消えません。ローカルに保存されているので、いつでも戻れます。
ちょっとした確認をしたいだけなら /btw も便利です。回答がオーバーレイ表示されるだけで、会話履歴に入らないため、コンテキストを消費しません。
目安としては、30〜45分ごとに /compact を実行し、タスクが変わったら /clear する。この習慣だけで、体感的にトークン消費は半分以下になります。
テクニック2:コンパクション指示をカスタマイズする
/compact コマンドは会話を要約して圧縮しますが、デフォルトでは Claude が「何を残すか」を自分で判断します。重要な情報が圧縮で消えてしまうこともあります。
コンパクション時に何を優先的に残すかを指示できます。
/compact テスト結果とAPI変更箇所を重点的に残して
CLAUDE.md にも書いておけます。
# Compact instructions
When you are using compact, please focus on test output and code changes
こうしておけば、自動コンパクションが走っても必要な情報が失われにくくなります。
テクニック3:モデルを使い分ける
Claude Code では /model コマンドでモデルを切り替えられます。
| モデル | 特徴 | コスト | おすすめ用途 |
|---|---|---|---|
| Sonnet 4.6 | 大半のコーディングタスクをこなせる | 低い | 日常的な開発作業 |
| Opus 4.6 | 複雑な設計判断、マルチステップ推論 | 高い | アーキテクチャ設計、難しいデバッグ |
| Haiku 4.5 | 軽量・高速 | 最も低い | サブエージェントの単純タスク |
ほとんどの作業は Sonnet で十分です。 Opus は「設計を根本から考え直す」「複雑なバグを追跡する」ような場面でだけ使いましょう。
サブエージェントには Haiku を指定するのもおすすめです。
# .claude/agents/simple-reviewer.md
---
name: simple-reviewer
model: haiku
---
コードの明らかなバグやタイポをチェックしてください。
テクニック4:サブエージェントに調査を任せる
Claude にコードベースを調査させると、大量のファイルを読み込みます。それがすべてメインのコンテキストに載ってしまう。これは大きな無駄です。
たとえば、「認証の仕組みを調べて」と頼むと、Claude は auth ディレクトリ以下のファイルを片っ端から読みます。10ファイル、20ファイル……。その内容すべてがメインのコンテキストに積み上がっていきます。
解決策は、調査をサブエージェントに委任すること。
サブエージェントを使って、認証システムがトークンリフレッシュをどう処理しているか調べて。
既存のOAuthユーティリティがあれば、それも報告して。
サブエージェントは独立したコンテキストウィンドウで動き、メインの会話には要約だけが返ってきます。100ファイル読んでも、メインのコンテキストには数百トークンの要約しか入りません。
実装後のレビューにも効果的です。Claude は自分が書いたコードに対してバイアスがかかりやすいですが、別のサブエージェントなら新鮮な目でレビューできます。
サブエージェントで、さっきの実装にエッジケースがないかレビューして
テクニック5:CLAUDE.md をスリムに保つ
CLAUDE.md はセッション開始時に毎回読み込まれます。つまり、どんなタスクをしていても、CLAUDE.md の内容がコンテキストを消費しているということです。
よくある失敗は、CLAUDE.md にあらゆる情報を詰め込むこと。PR レビューの手順、データベースマイグレーションのルール、API の仕様……。でも、バグ修正中に PR レビューの手順は必要ですか?
CLAUDE.md は200行以内に収めるのが公式の推奨です。
具体的には、こう整理します。
| CLAUDE.md に書くべき | Skills に移すべき |
|---|---|
ビルドコマンド (npm run dev) |
PR レビューの手順 |
| コードスタイルルール | DB マイグレーション手順 |
| テスト実行方法 | 特定のAPI仕様 |
| ブランチ命名規則 | デプロイ手順 |
Skills は /skill-name で呼び出したときだけ読み込まれるので、不要なときはコンテキストを消費しません。
テクニック6:.claudeignore で不要ファイルを除外する
プロジェクトルートに .claudeignore を作成すると、Claude が初期スキャンで読み込むファイルを制限できます。
# .claudeignore
package-lock.json
yarn.lock
pnpm-lock.yaml
dist/
build/
node_modules/
*.min.js
*.map
ロックファイルやビルド成果物は数万トークンにもなるため、これを除外するだけで初期読み込み量が大幅に減ります。
テクニック7:MCP サーバーのオーバーヘッドを管理する
MCP(Model Context Protocol)サーバーを複数接続していると、ツール定義がコンテキストを圧迫します。
Claude Code ではツール定義はデフォルトで遅延読み込み(ツール名だけ先にロードし、実際に使うときに詳細を取得)になっていますが、それでも使っていないサーバーは無効化しておくのがベストです。
/mcp # 接続中のサーバー一覧を確認
また、GitHub、AWS、Google Cloud などは MCP サーバー経由よりも CLI ツール(gh、aws、gcloud)を直接使う方がコンテキスト効率が良いです。CLI ツールはツール定義をコンテキストに追加しないため、オーバーヘッドがゼロです。
テクニック8:Extended Thinking を調整する
Extended Thinking(拡張思考)はデフォルトで有効になっています。複雑なタスクではパフォーマンスを大きく向上させますが、思考トークンは出力トークンとして課金されます。デフォルトのバジェットはモデルによって数万トークンに達することも。
単純なタスクでは、思考レベルを下げてコストを削減できます。
/effort low # 簡単なタスクには低い思考レベル
/effort high # 複雑な設計判断には高い思考レベル
環境変数でバジェットを制限することもできます。
MAX_THINKING_TOKENS=8000 claude
テクニック9:Hooks で前処理する
10,000行のログファイルを Claude に読ませてエラーを探させる——これは非常に非効率です。代わりに、Hook で事前にフィルタリングしましょう。
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/filter-test-output.sh"
}
]
}
]
}
}
テスト実行時に失敗結果だけを抽出するフックを設定しておけば、数万トークンの出力が数百トークンに圧縮されます。
テクニック10:プロンプトを具体的に書く
「このコードベースを改善して」のような曖昧な指示は、Claude が広範囲にファイルを読み込むきっかけになります。
# ❌ 曖昧な指示
このプロジェクトを改善して
# ✅ 具体的な指示
src/auth/login.ts の validateEmail 関数に入力バリデーションを追加して。
空文字列と @ なしのメールアドレスをエラーにするテストも書いて。
具体的であるほど、Claude が読むファイルは減り、コストも下がります。
コストを確認するコマンド
| コマンド | 用途 | 対象 |
|---|---|---|
/cost |
セッションのトークン使用量・金額を表示 | API ユーザー |
/stats |
利用パターンを表示 | Pro / Max サブスクライバー |
/context |
現在のコンテキスト消費内訳を表示 | 全ユーザー |
/context は特に便利です。「何がコンテキストを食っているか」が一目でわかるので、最適化の手がかりになります。
エージェントチームのコストに注意
エージェントチームを使うと、通常セッションの約7倍のトークンを消費します。各チームメイトが独自のコンテキストウィンドウを持ち、別々の Claude インスタンスとして動くためです。
エージェントチームのコストを抑えるポイントは以下の通りです。
- チームメイトには Sonnet を使う(Opus を全員に使うとコストが爆発する)
- チームは小さく保つ(各メンバーがコンテキストウィンドウを1つ消費する)
- 作業が終わったらチームを解散する(アイドル状態でもトークンを消費し続ける)
- スポーンプロンプトは簡潔に(長い指示はスタート時点からコンテキストを圧迫する)
日常の開発ではエージェントチームは不要なことが多いです。本当に並列処理が必要な場面——大規模リファクタリング、複数モジュールの同時テストなど——に限定して使いましょう。
プランの選び方
2026年4月現在、Claude Code を使うプランは主に4つです。
| プラン | 月額 | 特徴 | おすすめ |
|---|---|---|---|
| Pro | $20 | 基本的な利用枠 | 週に数回使う人 |
| Max 5x | $100 | Pro の5倍の利用枠 | 毎日数時間使う人 |
| Max 20x | $200 | Pro の20倍の利用枠。1メッセージ単価は最安 | 1日中使い続ける人 |
| API 従量課金 | 使った分だけ | Sonnet: $3/100万入力トークン、$15/100万出力トークン | チーム利用、自動化 |
迷ったら Pro から始めて、レート制限に頻繁に当たるようになったら Max に移行するのが王道です。
Max 20x は一見高く感じますが、1メッセージあたりの単価は Pro の半分以下。ヘビーユーザーには実はコスパが最も良いプランです。
チームで使う場合は API 従量課金が透明性が高く、ワークスペース単位で上限設定もできます。公式によると、API 利用の場合は Sonnet 4.6 で月あたり約$100〜200/人が目安です。
チーム導入時のレート制限の目安
API でチーム利用する場合、ユーザー数に応じた TPM(Token Per Minute)の推奨値があります。
| チーム規模 | 1人あたりTPM |
|---|---|
| 1〜5人 | 200k〜300k |
| 5〜20人 | 100k〜150k |
| 20〜50人 | 50k〜75k |
| 50〜100人 | 25k〜35k |
チームが大きくなるほど1人あたりの割り当ては小さくなりますが、これは全員が同時に使うわけではないためです。レート制限は組織レベルで適用されるので、他の人が使っていない時間帯なら、一時的に多くのトークンを消費できます。
まとめ:コスト最適化チェックリスト
最後に、すぐ実践できるチェックリストをまとめます。
- タスクが変わったら
/clearする - 30〜45分ごとに
/compactする - 日常的な作業は Sonnet、複雑な判断だけ Opus を使う
- 調査はサブエージェントに委任する
- CLAUDE.md は200行以内。詳細は Skills に移す
-
.claudeignoreでロックファイルやビルド成果物を除外する - 使っていない MCP サーバーを無効化する
- 簡単なタスクでは
/effort lowで思考レベルを下げる - テスト出力などは Hooks で事前にフィルタリングする
- 「何を・どこで・どう」を具体的に指示する
これらをすべて実践する必要はありません。上から3つだけでも、体感的にコストは半分以下になるはずです。まずは /clear の習慣から始めてみてください。