ガイド
Claude Code のコンテキストウィンドウ解説:何が埋めるのか、/compact は何を残すか
コンテキストウィンドウには、Claude がセッションについて知っているすべてが入ります。あなたの指示、読み込んだファイル、Claude 自身の応答、そしてターミナルには表示されない内容です。このページでは、Anthropic の Explore the context window のドキュメントをたどりながら、起動時に何が読み込まれるか、使用状況の確認方法、ウィンドウがいっぱいになったときの挙動、/compact 後に何が残るか、そして /compact、/clear、/rewind のそれぞれの動作を説明します。ドキュメントは 2026 年 10 月 30 日に確認しました。
- コンテキストウィンドウに入るのは会話だけではありません。何か入力する前に、CLAUDE.md、自動メモリ、MCP ツール名、スキルの説明が読み込まれます。
/contextを実行すると、カテゴリ別の内訳と最適化の提案がその場で表示されます。- Claude Code は上限に近づくと自動でコンパクトするため、コンテキストウィンドウがいっぱいになってもセッションは終わりません。
- コンパクトの後、プロジェクトルートの CLAUDE.md と自動メモリはディスクから再注入されます。
paths:付きのルールとネストした CLAUDE.md ファイルは、代わりに必要になったときに再読み込みされます。 - 要約に大事な内容を残したいときは、
/compact focus on the auth bug fixのように指示を付けて/compactを実行します。関係のない作業に移るときは/clearを使います。
コンテキストウィンドウに入るもの
ドキュメントでは、起動からコンパクトまでのセッションを再生するインタラクティブなタイムラインを使っています。そこに出るトークン数は代表的な値で、あなたの実際の使用量ではありません。ドキュメントの説明によると、順序はおおよそ次のとおりです。
- 何か入力する前:CLAUDE.md、自動メモリ、MCP ツール名、スキルの説明がすべてコンテキストに読み込まれます。AGENTS.md ファイルが CLAUDE.md の代わりに読み込まれることもあります。出力スタイルや
--append-system-promptのテキストなど、あなた自身の設定によってここに追加されるものもあります。 - Claude が作業している間:ファイルを読むたびにコンテキストが増え、パス指定のルールは一致するファイルと一緒に自動で読み込まれ、編集のたびに PostToolUse フックが実行されます。
- 続きのプロンプト:サブエージェントが調査を専用の別コンテキストウィンドウで行うため、大きなファイルの読み込みはあなたのコンテキストに入りません。戻ってくるのは要約と小さなメタデータの末尾だけです。
- タイムラインの最後:
/compactを実行すると、会話が構造化された要約に置き換わります。起動時の内容の多くは自動で再読み込みされます。仕組みごとの扱いは下の表にあります。
サブエージェントの書き方は Claude Code のサブエージェント、スキルは Claude Code のスキル、CLAUDE.md は CLAUDE.md の書き方を参照してください。
コンテキストの使用状況を確認する方法
ドキュメントでは、いつでも /context を実行すれば実際の使用状況が見られるとしています。カテゴリ別の内訳と最適化の提案がその場で表示され、どの CLAUDE.md と自動メモリのファイルが読み込まれたかも分かります。それらのファイルを開いて編集するには /memory を実行します。
コマンドリファレンスでは、この 2 つのコマンドを次のように説明しています。
| コマンド | ドキュメントの説明 |
|---|---|
/context [all] | 現在のコンテキスト使用状況を色付きのグリッドで可視化し、コンテキストを多く使うツール、メモリの肥大化、容量の警告について最適化の提案を出します。会話がコンテキストウィンドウを超えたときは、上限をどれだけ超えているかと、空きを作るコマンドを示す警告が出力に含まれます。フルスクリーンモードでは、グリッドを見やすくするため /context が項目ごとの内訳を折りたたみます。all を付けると展開できます。 |
/memory | CLAUDE.md ファイルを編集し、自動メモリを有効・無効にし、自動メモリの項目を表示します。 |
コストのドキュメントには、/usage で現在のトークン使用量を確認でき、ステータスラインを設定すれば常時表示もできる、とあります。/usage は、セッションのコスト、プランの利用上限、アクティビティの統計を表示します。
コンテキストがいっぱいになったら
Claude Code は上限に近づくと自動でコンパクトするため、コンテキストウィンドウがいっぱいになってもセッションは終わりません。自動で行われる処理は、タイムラインの /compact のステップと同じ仕組みです。
自動コンパクトが実行されるタイミングは、モデルと設定によって変わります。モデルごとのデフォルトのしきい値や、モデル ID に対して Claude Code が誤ったウィンドウを想定している場合の対処は、ドキュメントの model-config のページにまとめられています。このページでは具体的な数値は示しません。
会話を小さくするのではなく、より大きなウィンドウが必要な場合について。ドキュメントによると、Fable モデル、Sonnet 5 以降、Haiku 5.5、Opus 4.6 以降、Sonnet 4.6 は 100 万トークンのコンテキストウィンドウに対応しています。プランごとの利用可否と [1m] モデルバリアントの選び方は、ドキュメントの Extended context のセクションにあります。また、より大きな上限でもコンパクトは同じように動作するとも書かれています。
コンパクトで残るものと残らないもの
長いセッションがコンパクトされるとき、Claude Code はコンテキストウィンドウに収まるよう会話履歴を要約します。v2.1.198 以降は、要約のリクエストがセッションの拡張 thinking 設定を引き継ぎ、セッションで thinking が有効なら thinking を有効にして推論し、そうでなければオフのままです。thinking が影響するのは要約の作り方だけで、その後もセッションの設定は変わりません。各種の内容がどうなるかは、どのように読み込まれたかによって決まります。
| 仕組み | コンパクト後 |
|---|---|
| システムプロンプトと出力スタイル | どちらも引き続き適用されます |
| プロジェクトルートの CLAUDE.md とスコープなしのルール | ディスクから再注入されます |
| 自動メモリ | ディスクから再注入されます |
| スキルの説明 | 現在のスキルから作り直して再注入されます。Claude Code v2.1.304 以降が必要です |
| Git status のスナップショット | セッション開始時にあった場合、Claude Code がリポジトリから新しいものを読み込みます |
| プランモードで Claude が書いたプラン | ディスクから再注入されます |
paths: frontmatter 付きのルール | Claude Code が必要になったときに再読み込みします |
| サブディレクトリのネストした CLAUDE.md | Claude Code が必要になったときに再読み込みします |
| Claude が読んだ、または編集したファイル | Claude Code が最大 5 つまで、更新が新しい順に再読み込みします |
| 呼び出されたスキルの本文 | 再注入されます。上限はスキル 1 つあたり 5,000 トークン、合計 25,000 トークンで、古いものから切り捨てられます |
| バックグラウンドのコマンドとバックグラウンドのサブエージェント | 実行を続けます。Claude Code がどれがまだ動いているかを Claude に伝えるので、重複して起動することはありません |
| 以前にフックが追加したコンテキスト | 会話の他の部分と一緒に要約されます |
compact ソースに一致する SessionStart フック | Claude Code が実行し、その出力をコンパクト後のコンテキストに追加します |
ドキュメントが特に注意を促している点が 3 つあります。
- ファイルの再読み込みにはサイズ制限があります。コンパクトの直後、Claude Code は、セッション中に Claude が読んだ、または編集したファイルのうち、更新が最も新しいものを最大 5 つ再読み込みします。5,000 トークンを超えるファイルは、内容なしのパス参照として戻り、
ReadではなくReferenced fileと表示されます。 - パス指定のルールとネストした CLAUDE.md ファイルは、要約に吸収されます。これらは、トリガーとなるファイルを Claude が読む、書く、編集するときにメッセージ履歴へ読み込まれるため、コンパクトで他のものと一緒に要約されてしまいます。コンパクトをまたいでルールを残したい場合は、
paths:frontmatter を外すか、プロジェクトルートの CLAUDE.md に移します。 - スキルの本文は切り詰められることがあります。スキルの本文は再注入されますが、大きなスキルはスキルごとの上限に収まるよう切り詰められ、合計の予算を超えると、古い順に呼び出されたスキルが落とされます。切り詰めはファイルの先頭を残すので、最も重要な指示は
SKILL.mdの冒頭近くに書いてください。
コンパクトの前にできること
自動で処理が走る前に手を打てます。ドキュメントでは 5 つの方法が挙げられています。
| 方法 | やり方 |
|---|---|
| 重点を指定してコンパクトする | 長い新しいタスクを始める前に、/compact focus on the auth bug fix のように指示を付けて /compact を実行します。自動処理が重要と推測したものではなく、あなたが選んだ内容が要約に残ります。 |
| 会話の一部だけをコンパクトする | /rewind を実行してメッセージを選び、Summarize from here または Summarize up to here を選びます。 |
| 早めにコンパクトする | /autocompact 500k のようにトークン数を付けて /autocompact を実行し、コンテキストウィンドウがどこまで埋まったら自動処理が走るかを設定します。 |
| タスクの合間にクリアする | 関係のない作業に移るときは /clear を実行します。古い会話は次に必要なファイルを押し出し、メッセージのたびにトークンを消費します。 |
| 大きな読み込みを委任する | 調査をサブエージェントに任せると、ファイルの内容はあなたのコンテキストウィンドウではなく、サブエージェントのウィンドウに留まります。 |
関連するコマンドについて、コマンドリファレンスには次のように書かれています。
| コマンド | ドキュメントの説明 |
|---|---|
/compact [instructions] | ここまでの会話を要約してコンテキストを空けます。要約の重点を指示として渡すこともできます。 |
/clear [name] | コンテキストが空の新しい会話を始めます。名前を渡すと、/resume のピッカーで前の会話にそのラベルが付きます。同じ会話を続けながらコンテキストを空けたい場合は、代わりに /compact を使います。前の会話は /resume で再開できます。エイリアス:/reset、/new。 |
/rewind | 会話やコード(またはその両方)を以前の時点に巻き戻すか、選んだメッセージから要約します。エイリアス:/checkpoint、/undo。 |
/autocompact [auto|<tokens>] | 自動コンパクトのウィンドウ、つまり Claude Code が自動でコンパクトするまでにコンテキストウィンドウがどこまで埋まるかを設定します。500k のようなサイズを渡すか、auto でモデルに合わせたウィンドウに戻します。Claude Code はこの値をユーザー設定に保存し、現在のセッションにも適用します。Claude Code v2.1.221 以降が必要です。 |
コンテキストをスリムに保つ
コストのドキュメントにある、コンテキストに関するアドバイスです。
- タスクの合間に
/clear。古いコンテキストは、以降のメッセージのたびにトークンを無駄にします。クリアする前に/renameを使えば後でセッションを見つけやすく、/resumeで戻れます。 - 独自のコンパクト指示を追加する。
/compact Focus on code samples and API usageのように指定すると、要約時に何を残すかを Claude に伝えられます。プロジェクトルートの CLAUDE.md に書いておくこともできます。# Compact instructions When you are using compact, please focus on test output and code changes - MCP に注意する。MCP のツール定義はデフォルトで遅延読み込みされるため、Claude が特定のツールを使うまでは、ツール名とサーバーの指示だけがコンテキストに入ります。何が容量を使っているかは
/contextで確認できます。 - 使えるなら CLI ツールを優先する。
gh、aws、gcloud、sentry-cliなどのツールは、ツールごとの一覧が増えないため、MCP サーバーよりコンテキスト効率が良くなります。 - CLAUDE.md を削る。CLAUDE.md はセッション開始時にコンテキストへ読み込まれます。特定のワークフロー向けの詳しい指示が入っていると、関係のない作業をしているときでもそのトークンが載ったままです。スキルは呼び出されたときだけオンデマンドで読み込まれるので、専門的な指示をスキルに移すと基本のコンテキストが小さくなります。ドキュメントでは、要点だけにして CLAUDE.md を 200 行以内に収めることを勧めています。
- 冗長な出力はサブエージェントに送る。テストの実行、ドキュメントの取得、ログファイルの処理は、コンテキストを大きく消費することがあります。これらをサブエージェントに任せれば、冗長な出力はサブエージェントのコンテキストに留まり、メインの会話に戻るのは要約だけです。
- フックでデータを前処理する。ドキュメントの例:Claude に 1 万行のログファイルを読ませてエラーを探させる代わりに、フックで
ERRORを grep して一致した行だけを返せば、コンテキストを数万トークンから数百トークンに減らせます。
こうした習慣が料金にどう効くかはトークン節約ガイド、キャッシュの挙動はキャッシュガイドを参照してください。このページでは、コンテキスト自体の仕組みに話を絞っています。
FAQ
コンテキストウィンドウがいっぱいになると、セッションは終わりますか?
いいえ。ドキュメントによると、Claude Code は上限に近づくと自動でコンパクトするため、コンテキストウィンドウがいっぱいになってもセッションは終わりません。その前に自分で /compact を実行し、重点の指示で要約に残す内容を決めることもできます。自動コンパクトが実行されるタイミングは、モデルと設定によって変わります。
CLAUDE.md のルールはコンパクト後も残りますか?
プロジェクトルートの CLAUDE.md とスコープなしのルールは、ディスクから再注入されます。paths: frontmatter 付きのルールとサブディレクトリのネストした CLAUDE.md ファイルは扱いが異なり、必要になったときに再読み込みされ、コンパクトでは要約に吸収されます。コンパクトをまたいでルールを残したい場合、ドキュメントでは paths: frontmatter を外すか、プロジェクトルートの CLAUDE.md に移すよう案内しています。
/compact と /clear の違いは何ですか?
/compact は会話を要約してコンテキストを空け、会話は続きます。/clear はコンテキストが空の新しい会話を始め、前の会話は /resume で再開できます。コマンドリファレンスの説明は明快で、同じ会話を続けながらコンテキストを空けたいなら /compact を使います。関係のない作業に移るときは、ドキュメントは /clear を勧めています。
参考資料
- Claude Code: Explore the context window(起動時に読み込まれるもの、コンパクトで残るもの、コンテキストがいっぱいになるとき、
/context) - Claude Code: Commands(
/context、/compact、/clear、/rewind、/autocompact、/memory、/usage) - Claude Code: Manage costs effectively(コンテキスト管理の実践、独自のコンパクト指示)