CoreCodeブログ

ガイド

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 Code のサブエージェント、スキルは Claude Code のスキル、CLAUDE.md は CLAUDE.md の書き方を参照してください。

コンテキストの使用状況を確認する方法

ドキュメントでは、いつでも /context を実行すれば実際の使用状況が見られるとしています。カテゴリ別の内訳と最適化の提案がその場で表示され、どの CLAUDE.md と自動メモリのファイルが読み込まれたかも分かります。それらのファイルを開いて編集するには /memory を実行します。

コマンドリファレンスでは、この 2 つのコマンドを次のように説明しています。

コマンドドキュメントの説明
/context [all]現在のコンテキスト使用状況を色付きのグリッドで可視化し、コンテキストを多く使うツール、メモリの肥大化、容量の警告について最適化の提案を出します。会話がコンテキストウィンドウを超えたときは、上限をどれだけ超えているかと、空きを作るコマンドを示す警告が出力に含まれます。フルスクリーンモードでは、グリッドを見やすくするため /context が項目ごとの内訳を折りたたみます。all を付けると展開できます。
/memoryCLAUDE.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.mdClaude Code が必要になったときに再読み込みします
Claude が読んだ、または編集したファイルClaude Code が最大 5 つまで、更新が新しい順に再読み込みします
呼び出されたスキルの本文再注入されます。上限はスキル 1 つあたり 5,000 トークン、合計 25,000 トークンで、古いものから切り捨てられます
バックグラウンドのコマンドとバックグラウンドのサブエージェント実行を続けます。Claude Code がどれがまだ動いているかを Claude に伝えるので、重複して起動することはありません
以前にフックが追加したコンテキスト会話の他の部分と一緒に要約されます
compact ソースに一致する SessionStart フックClaude Code が実行し、その出力をコンパクト後のコンテキストに追加します

ドキュメントが特に注意を促している点が 3 つあります。

コンパクトの前にできること

自動で処理が走る前に手を打てます。ドキュメントでは 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 以降が必要です。

コンテキストをスリムに保つ

コストのドキュメントにある、コンテキストに関するアドバイスです。

こうした習慣が料金にどう効くかはトークン節約ガイド、キャッシュの挙動はキャッシュガイドを参照してください。このページでは、コンテキスト自体の仕組みに話を絞っています。

FAQ

コンテキストウィンドウがいっぱいになると、セッションは終わりますか?

いいえ。ドキュメントによると、Claude Code は上限に近づくと自動でコンパクトするため、コンテキストウィンドウがいっぱいになってもセッションは終わりません。その前に自分で /compact を実行し、重点の指示で要約に残す内容を決めることもできます。自動コンパクトが実行されるタイミングは、モデルと設定によって変わります。

CLAUDE.md のルールはコンパクト後も残りますか?

プロジェクトルートの CLAUDE.md とスコープなしのルールは、ディスクから再注入されます。paths: frontmatter 付きのルールとサブディレクトリのネストした CLAUDE.md ファイルは扱いが異なり、必要になったときに再読み込みされ、コンパクトでは要約に吸収されます。コンパクトをまたいでルールを残したい場合、ドキュメントでは paths: frontmatter を外すか、プロジェクトルートの CLAUDE.md に移すよう案内しています。

/compact と /clear の違いは何ですか?

/compact は会話を要約してコンテキストを空け、会話は続きます。/clear はコンテキストが空の新しい会話を始め、前の会話は /resume で再開できます。コマンドリファレンスの説明は明快で、同じ会話を続けながらコンテキストを空けたいなら /compact を使います。関係のない作業に移るときは、ドキュメントは /clear を勧めています。

参考資料