Claude Code の上限がすぐ来る原因と減らし方|自分のログ2ヶ月分で実測

「そんなに使ってないのに、もう上限?」——Claude Code を毎日使っていて、こう感じたことはありませんか。2026年3月下旬には、Reddit で「1文の返事で使用率が59%から100%に跳ねた」という報告まで出ていました(BBC の報道より)。
結論を先に言います。トークンの量で見ると、大半は「あなたが打った量」ではなく「毎回読み直される会話と設定の量」です。 自分のログを2ヶ月分集計したら、トークンの 97.5% が「それまでの会話と設定の読み直し」で、自分の入力と Claude の出力は合わせて0.5%もありませんでした。しかも会話を始めた1回目の時点で、すでに約12万トークンを読んでいました。原因だった CLAUDE.md の1行を消したら、1回目に読む量は4割減りました。
この記事では、その実測値と、自分の環境で同じことを確かめて減らす手順をまとめます。
この記事でわかること:
- 上限が早く来る3つの原因(会話の長さ/最初から背負っている量/大きな出力)
- 自分のログで測った、それぞれの重さ
/usageと/contextで原因を見つけて減らす手順
この記事の前提
- 測ったのは自分(masatoman)の Mac 1台の Claude Code セッションログ(
~/.claude/projects/配下の.jsonl) - 期間は 2026-08-22〜2026-10-22、セッション9本・Claude の応答1,397回分。手元に残っていた分すべて
- モデルは Opus 5.5 と Sonnet 5 が半々
- 作業内容は、ブログ運営の自動化・記事作成・Supabase 操作など。1本のセッションを数時間続ける使い方が多い
サンプルは9セッションしかないので、「自分の使い方ではこうだった」という記録として読んでください。
実際に起きたこと(数字)
1. トークンの97.5%は「読み直し」だった
Claude Code は、こちらが1行送るたびに「それまでの会話全体+設定ファイル+ツールの説明」をまとめてモデルに送り直します。2回目以降はキャッシュから読まれますが、量としては毎回数えられます。
ログの usage を合計すると、こうなりました。
| 種類 | トークン数 | 割合 |
|---|---|---|
| キャッシュからの読み直し | 341,667,107 | 97.5% |
| キャッシュへの新規書き込み | 7,650,221 | 2.2% |
| Claude の出力 | 1,239,703 | 0.4% |
| キャッシュ外の新しい入力 | 2,796 | 0.0% |
注意点が1つあります。サブスク(Pro / Max)の上限が、キャッシュ読み込みを何割として数えているかは公開されていません。なので「上限の97.5%が読み直し」とまでは言えません。ただ、公式の /usage 画面は上限を食っている原因として「長い会話(long context)」や「キャッシュミス」を名指しで表示します。量が一番大きいのも、公式が原因として挙げているのも、この「読み直し」です。
2. 会話が長くなると、1回あたりの量が3倍を超える
1回のやり取りで読む量は、会話が進むほど増えていきます。200回以上続けた長いセッション4本では、こうでした。
| セッション | やり取り回数 | 最初の10回の平均 | 最後の10回の平均 | 倍率 |
|---|---|---|---|---|
| A | 351回 | 13.9万 | 44.5万 | 3.2倍 |
| B | 330回 | 13.1万 | 40.9万 | 3.1倍 |
| C | 286回 | 13.2万 | 32.4万 | 2.5倍 |
| D | 219回 | 12.7万 | 41.2万 | 3.3倍 |
同じ「OK、次お願い」の一言でも、会話の終盤では序盤の3倍以上を読み直しています。長いセッションを引っ張るほど、1回あたりの単価が上がっていくということです。
3. 何も話していないのに、最初から約12万トークン背負っていた
一番意外だったのはここです。9セッションすべてで、1回目の応答の時点で12.3万〜13.2万トークンを読んでいました。
原因を切り分けるため、同じ質問(「1」とだけ答えて)を claude -p で2か所から投げて比べました。
| 実行した場所 | 1回目に読んだ量 | API 換算の料金 |
|---|---|---|
| 空のフォルダ | 39,601 トークン | $0.25 |
| 自分のブログ用フォルダ | 99,386 トークン | $0.73 |
差は約6万トークン、料金は約3倍です。答えは同じ「1」なのに、です。
差の正体は、フォルダに置いていた設定ファイルでした。
自分の CLAUDE.md は、戦略メモ(STRATEGY.md)を @ で読み込む書き方にしていました。「Claude にいつも方針を分かっていてほしい」と思って入れたものです。その戦略メモが 4万5,395文字。さらに自動で読まれる記憶ファイル(MEMORY.md)が1万9,553文字ありました。
記事の誤字を直すだけの作業でも、毎回この戦略メモ全文を背負って始まっていたことになります。しかもそれが会話の回数分、毎回読み直されます。
5. 戦略メモの読み込みを外したら、1回目が4割減った
CLAUDE.md の1行目にあった @../STRATEGY.md を消しました。代わりに「戦略に関わる判断の時だけ、判断の前に STRATEGY.md を読む」という1文を書いています。毎回は読ませず、必要な時だけ読ませる形です。
同じ質問を同じフォルダから投げ直した結果がこちらです。
| 1回目に読んだ量 | API 換算の料金 | |
|---|---|---|
| 修正前 | 99,386 トークン | $0.73 |
| 修正後 | 59,635 トークン | $0.40 |
| (参考)空のフォルダ | 39,601 トークン | $0.25 |
1行消しただけで、1回目に背負う量が約4万トークン(40%)減りました。この差は会話の回数分、毎回効いてきます。
まだ空のフォルダより約2万トークン多い状態です。残りは、自動で読まれる記憶ファイル(MEMORY.md、1万9,553文字)、CLAUDE.md 本体(約7千文字)、残した PIVOT_OS.md(5,135文字)だと考えられます(ファイルごとのトークン数は測っていません)。記憶ファイルは1行ずつの索引なので、古い項目を整理するのが次の手です。
公式ドキュメントにも「CLAUDE.md はセッション開始時に読み込まれる。特定の作業用の詳しい手順は、関係ない作業中もトークンを使い続ける。必要な時だけ読まれる Skills に移し、CLAUDE.md は200行以内を目安に」と書かれています。自分はちょうどその逆をやっていました。
4. 大きな出力は「ファイル読み込み」と「画面操作」
会話を膨らませた中身も見ました。ツールの出力を文字数で合計すると、上位はこうです。
| ツール | 回数 | 出力の割合 | 1回あたりの平均 |
|---|---|---|---|
| Bash(コマンド実行) | 345回 | 30.7% | 1,653文字 |
| ブラウザ画面の操作 | 93回 | 28.1% | 5,609文字 |
| Read(ファイル読み込み) | 36回 | 24.4% | 12,612文字 |
Read は回数が少ないのに、1回で1万字を超えます。大きなファイルを丸ごと読ませると、その1万字が以降の会話でずっと読み直され続けます。
原因のまとめ
上限が早く来る原因は、自分の場合この3つでした。
- 会話が長い: 1本のセッションを数百回続けると、1回あたりの読み直しが3倍以上になる
- 最初から背負っている量が多い: CLAUDE.md の
@読み込みと記憶ファイルで、何もしないうちに約6万トークン多かった - 大きな出力を会話に残す: 大きなファイルの丸読みや画面操作の結果が、以降ずっと読み直される
逆に言うと、「質問を短くする」「出力を短くさせる」はほとんど効きません。入力と出力は合わせて0.5%以下だからです。
判断基準:自分の原因はどれか
| 症状 | 疑う原因 | 確かめ方 |
|---|---|---|
| 朝イチの1回目から減りが速い | 最初から背負っている量 | 新しいセッションで /context を開き、memory files と tools の量を見る |
| 長く作業した日の後半に急に来る | 会話の長さ | /usage の内訳に long context が出ていないか見る |
| 特定の作業をした日だけ来る | 大きな出力・特定の Skill や MCP | /usage の Attribution(Skill・MCP 別の割合)を見る |
今日やること(3つ)
1. /usage で内訳を見る
Pro / Max なら、/usage で上限のバーに加えて「何が上限を食っているか」が出ます。全体の10%以上を占める原因(長い会話・キャッシュミス・サブエージェントの多用など)には対策のヒントも付きます。Skill・サブエージェント・MCP ごとの割合も見られます。d と w で直近24時間と7日間を切り替えられます。ただし数字はこの Mac のローカル履歴から出した概算で、他の端末や claude.ai での利用は入りません。
2. 新しいセッションで /context を開き、開始時点の量を測る
/context は、system prompt・ツール・memory files・会話が、それぞれどれだけ場所を取っているかを表示します。memory files が大きければ CLAUDE.md の @ 読み込みを見直し、作業別の手順は Skills に移します。使っていない MCP は /mcp disable <名前> で外すと、ツールの説明が読み込まれなくなります。
3. 関係ない作業に移るときは /clear
公式のベストプラクティスも「関係ない作業の間では /clear」です。続きが必要なら、決めたことをファイルに書いてから切ります。会話を残したいだけなら、/compact 〇〇を残して のように残す内容を指定します。ちょっとした確認なら /btw を使えば、答えが会話の履歴に残りません。
自分の場合は、2で見つけた「戦略メモを @ で毎回読ませていた」を1行消しただけで、1回目の量が4割減りました。まず /context で、自分が最初から何を背負っているかを見てみてください。
次に読む
上限の原因が分かったら、次は「そもそも今のプランが自分の使い方に合っているか」です。Pro と Max の違いを、実際の運用コストで比べた記事はこちら。
Claude Codeの料金プラン2026 — Pro月20ドルとMax月100ドルの選び方
Pro / Max 5x / Max 20x / API 従量課金の違いを、実際の運用コストで比較