Claude Codeの利用料金を抑えようと、サードパーティーのGitHubリポジトリやアドオン、凝った裏技を導入するユーザーは少なくありません。しかし、その多くはおそらく必要ありません。AnthropicはClaude Codeを最初から使用量を抑えるように設計しており、新しいリリースのたびにそうした仕組みが自動で加わっています。それでも請求額がかさむなら、原因はたいてい、節約の効果を知らないうちに打ち消してしまう、いくつかの日常的な習慣にあります。そしてその大半は、同じ高くつく事態につながります。Claudeが会話全体を定価で読み直すことです。

メッセージを送るたびにコストが上がる理由

トークンはClaudeが料金を計算する基本単位で、大きさはおおよそ短い単語1つ分です。トークンの支払い方法は2つあります。月額のClaudeサブスクリプションで決まった利用枠を消費するか、APIキーを通じてトークンごとに料金を払うかです。

Claudeは、腕は確かでも記憶をまったく持たない施工業者のようなものだと考えるとわかりやすいでしょう。メッセージとメッセージの間ですべてを忘れるため、新しいメッセージを送るたびに、最初のプロンプトから現在までの会話全体がモデルに送り直されます。1回のやり取りでClaudeが取り込む内容全体がコンテキストで、利用者はそのコンテキスト全体で読み込まれたトークンの分を支払います。長いスレッドほどプロンプト1回あたりのコストが短いスレッドより高くなるのも、序盤に読み込んだファイルがその後のやり取りのたびに読み込み料金を生み続けるのも、そのためです。一方、新しいチャットはトークン0から始まり、費用もかかりません。

プロンプトキャッシュが負担を和らげる

Claude Codeはこれにプロンプトキャッシュで対処します。会話のうち変わっていない部分を保存しておく、短期記憶のような仕組みです。キャッシュされたコンテキストの読み込みは通常の入力価格の約10分の1かそれ以下で済み、定価がかかるのは新しく加わった部分だけです。

キャッシュには弱点が2つあります。1つは途中での変更です。たとえばスレッドの途中でClaudeのSonnetとOpusのモデルを切り替えるとキャッシュが無効になり、Claude Codeはスレッド全体を定価で読み直します。もう1つは、作業を止めると期限が切れることです。

支払い方法 操作がないときのキャッシュ保持時間
月額サブスクリプション 約1時間
APIキーまたは追加クレジット 5分

Anthropicもこの点を重視しています。Claude Codeの構築に関するAnthropic Engineeringの記事によると、社内のエンジニアはキャッシュヒット率、つまり入力のうちキャッシュから読み込まれた割合のアラートを監視し、その割合が下がりすぎるとSEV、つまり正式なインシデントとして扱います。利用者にとっての教訓も同じで、キャッシュが有効なうちに作業するのが最も安上がりです。

Claude Codeがすでにしてくれていること

キャッシュのほかにも、コンテキストが膨らまないようにする仕組みが3つ組み込まれています。

  • コネクターは必要なときに読み込む: コネクターはSlackやGitHubなどのアプリにClaudeをつなぐ機能で、それぞれに長い使用説明とスキーマ定義があります。Claude Codeは最初にコネクターの名前だけを読み込み、詳しい内容は実際にツールが動くときに取り込みます。メール、メモ、カレンダー、タスク、コードホスティングのコネクターを探すには、プラスアイコンをクリックしてコネクターのメニューを開きます。
  • 長い出力は切り詰める: ターミナルのコマンドやツールが大量のテキストを返すと、Claude Codeはコンテキストウィンドウ(モデルが一度に保持できるテキストの量)に入る分を切り詰め、出力全体は別のファイルに保存します。Claudeは確認が必要なときにだけ、そのファイルを開きます。
  • 重い作業はサブエージェントに任せる: 大きく込み入った作業では、Claude Codeが別のチャットで補助役のサブエージェントを立ち上げ、メインのスレッドには短い要約だけを返させます。サブエージェント自体もトークンを消費するため、元が取れるのは大きく複雑な作業で、小さなスクリプトや簡単な質問には向きません。

Claude Codeは、コンテキストウィンドウが上限に近づくと会話を自動で圧縮もします。auto-compactと呼ばれる機能です。料金を押し上げているのは機能の不足ではなく、こうした組み込みの節約効果を損なう習慣です。

習慣1:/compactをダイエット代わりに使う

長いチャットを/compactで縮めれば、料金も下がりそうに思えます。ランディングページの作成に90分かけ、60件のメッセージをやり取りしたところで応答が遅くなったと感じ、圧縮を実行する場面を考えてみましょう。

スレッドの代わりとなる要約を書くために、Claudeはまず会話全体を最初から最後までもう一度読まなければなりません。議事録を作る前に、会議の記録をすべて読み通す必要があるアシスタントと同じです。キャッシュが有効ならこの読み込みは安く済みますが、期限が切れていれば履歴全体の分を定価で払うことになります。どちらにしても、新しい要約はまっさらな状態からキャッシュを作り直します。

床まで垂れた会議の記録を読みながら、要約カードを1枚手にするロボットのアシスタント

▲ 圧縮した要約の裏にある会話全体の読み直し

圧縮は本来、上限が近いときや大きな節目を越えるときに、コンテキストウィンドウの空きを確保するためのものです。お金を節約する手段ではなく、上限に近い場合はauto-compactがすでに対処してくれます。手動で圧縮するなら、たとえば/compact 計画とファイル名は残してのように残すものをClaudeに伝え、そのあとでどの要件が残ったかを確認します。圧縮では、序盤に伝えた細かい指示が抜け落ちることがあるためです。

圧縮よりよい方法

状況 すること 効果
作業を1つ終えた /clearを実行して新しく始める コンテキストが0に戻る
Claudeが誤った方向に進んだ 言い争う代わりに/rewindを実行する 間違える前の時点までチャットを巻き戻す
長く続く作業 Claudeに引き継ぎ文書を書かせてから/clear 新しいチャットは残すと決めた内容だけを読む

引き継ぎ文書には、目標、終わったこと、残っていること、決めたこと、うまくいかなかったことを記録します。次のセッションを始める前に自分で読んで編集できるため、圧縮された要約よりも引き継ぐ内容をしっかりコントロールでき、複雑なプロジェクトではこちらのほうがよい選択だと考えられます。あとで会話を見返す可能性があるなら、/clearの前に/renameを実行しておけば、サイドバーから開き直せます。

習慣2:キャッシュを切らしてしまう

どの会話の裏でも、見えないタイマーが動いています。午前中ずっとランディングページを作り、1時間の昼休みに出かけて戻ると、キャッシュは消えています。そこで小さな質問を1つするだけで、Claude Codeは会話全体を定価で読み直し、そのあとのメッセージのために新しいキャッシュを作ります。

最近のClaude Codeのリリースでは、この負担が軽くなりました。大きなチャットが1時間近く放置されると、Claude Codeはキャッシュが切れる直前にそれを圧縮し、戻ってきたときには元の履歴ではなく短い要約を読み込みます。この機能はリリースのたびに改善されていますが、要約を作るために一度は全体を読む必要があり、その過程で細かい情報が失われることもあります。

従量課金のAPIプランではキャッシュが5分しか持たないため、休憩は作業の途中ではなく、作業を1つ終えてから取りましょう。

習慣3:作業の途中でモデルを切り替える

キャッシュはモデルごとに別々で、OpusとSonnetの間では共有されません。費用を抑えようとセッションの途中でOpusからSonnetに切り替えるのは逆効果です。SonnetはOpusのキャッシュを読めず、会話を定価で読み直さなければならないからです。作業を始める前にモデルを1つ選び、最後までそれを使い続けましょう。

/model opusplanの設定にも同じ注意が必要です。この設定では、ファイルに手を付ける前にClaudeが構成と手順を練るPlan ModeでOpusを使い、実際の構築では自動的にSonnetに切り替わります。計画を立てるうえでは便利な使い分けですが、2つのモデルを切り替えるたびにコンテキスト全体の読み直しが発生します。

習慣4:入力する前から多くを読み込ませる

新しいチャットを開いて「hi」と入力しただけでも、Claude Codeはプロンプトが動く前にファイルを読み込んでいます。その中心がCLAUDE.mdです。Claude Codeが毎回セッションの開始時に読み込み、その後のやり取りのたびに一緒に送るプロジェクトの指示ファイルです。600行のCLAUDE.mdも、キャッシュが有効な間は安く済みますが、キャッシュが切れるたびに定価で読み直されます。Anthropicのドキュメントは、このファイルを200行未満に抑え、本当に必要な内容に絞るよう勧めています。

役に立つのがツリー構造です。CLAUDE.mdを最上位の方針だけを置く幹とし、デザイン、テスト、デプロイといった分野ごとの詳しいルールは別の枝ファイルに移します。するとCLAUDE.mdは、Claudeをそれらのファイルへ案内する目次として働き、各ファイルは作業で必要になったときにだけ読み込まれます。

幹にメモが留められ、枝に色とりどりのフォルダーが下がる木から、ロボットが1つを取り出す様子

▲ 幹と作業別の枝ファイルに分けたCLAUDE.md

同じ考え方は、ほかの負担にも当てはまります。

  • スクリプトを組み込んだスキル: スキルはClaudeが呼び出せる指示のパッケージで、実際に呼び出されるまでコンテキストに加わるのは1行の説明だけです。スキルが決まった処理をローカルのスクリプトで行えば、Claudeは生のデータを読まずに済みます。たとえば週次の売上を集計するスキルなら、スクリプトが手元のマシンでスプレッドシートの行を合計し、Claudeには「販売42件、前回の38件から増加」のような1行だけを渡せます。うまくいく作業の流れができたら、「これをスキルにして」とClaudeに頼みましょう。
  • 使っていないコネクター: MCP(Model Context Protocol、AIツールを外部のアプリやデータにつなぐ標準規格)で接続したコネクターは、どれもすべてのセッションにトークンを加えます。スキルも同じです。/mcpを実行し、カレンダー、メモ、メール、タスクなど使っていないものをオフにします。
  • 状況の把握: /contextは、ユーザーのメッセージ、読み込んだファイル、Claudeの回答、ツールがそれぞれどれだけの容量を使い、どれだけ空きが残っているかを示します。/doctorは設定を点検し、Claude Codeが最新かどうかを確かめ、不要なコネクターを知らせます。
  • テストの出力: 自動テストは、ほとんど「PASSED」としか書かれていない行を何百行も出力することがあります。Claude Codeが切り詰めるのは極端に長い出力だけなので、こうした行は会話に入り込み、その後のやり取りのたびに読み直されます。対策はフックです。テストの出力をClaudeが読む前に受け取って短くするフィルターです。自分で書く必要はなく、「テスト結果を失敗した項目だけに絞るフックを書いて」とClaudeに頼めば作ってくれます。

高くつく初期設定とあいまいなプロンプト

有料プランでは、Claude CodeはOpusを使い、思考モード(thinking)をオンにした状態で始まります。思考モードとは、Claudeが目に見える回答の前に内部で推論を生成する機能です。その推論のトークンは出力として課金され、出力の料金は入力の5倍です。日常的な雑務にOpusと思考モードを使うのは、一流の外科医に体温を測らせるようなものです。

  • 日常的なコーディングや構築にはSonnetを使います。
  • /effortで推論の深さを設定します。選択肢はlow(「簡単な作業向けで速い」)からmedium、highを経てmax(「最も遅く、最も深い」)まであります。ファイル名の変更のような単純な作業にはlowを選びます。
  • Claudeがファイルを編集する前にPlan Modeに切り替え、手順を先にすり合わせておきます。

プロンプトも大切ですが、その理由は多くの人が考えるものとは違います。入力する言葉はコンテキスト全体のごく一部にすぎず、コストを左右するのはプロンプトがClaudeの注意をどこに向けるかです。

プロンプト Claudeがチャットに読み込むファイル
「バグを直して」 カート、チェックアウト、ヘッダー、フッター、ログイン、検索の6つ
「チェックアウトのファイルにある日付のバグを直して」 チェックアウトの1つ

プロンプトの言葉を削っても、節約になるのはほんのわずかです。対象のファイルを正確に指定すれば、Claudeがほかのファイルを探し回るのを防げます。

まとめ:3つのルールと1週間後の確認

想定外の請求の多くは、避けられたはずの読み直しにさかのぼります。圧縮、モデルの切り替え、大きすぎるCLAUDE.md、昼休みのあいだに切れたキャッシュです。キャッシュを生かすためのルールは次の3つです。

  1. 1つの作業には1つのモデルを使います。
  2. キャッシュが有効なうちに続けて作業し、休憩は作業と作業の間に取ります。
  3. 作業が終わったら/clearを実行し、次の作業は新しいチャットで始めます。

さらに、/compactはコンテキストウィンドウがほぼいっぱいになったときのために取っておき、CLAUDE.mdは200行未満に保ち、使っていないコネクターはオフにし、単純な作業にはSonnetとlowのeffortを使います。

そのうえで結果を測りましょう。/usageは、今日と過去7日間のトークン消費量をスキル、サブエージェント、コネクター別に示します。今の数値を記録し、変更を加えてから、1週間後にもう一度確認します。使用量が減れば、サブスクリプションの枠に余裕が生まれ、APIキーの請求額は小さくなります。結局のところ、最も安いトークンは、Claudeが有効なキャッシュから読み込めるトークンです。