Claude Code /compact と /clear の違いとそれぞれのコスト

/clear は空のコンテキストで会話をリセットし、コストはかかりません。/compact は会話の要約を保持し、その要約を書き出すためにセッション全体の内容をリクエストします。

/clear は空のコンテキストで新しい会話を開始します。/compact は現在の会話を保持しつつ、履歴を要約に置き換えます。このことから導かれるルールは、次のタスクが前の内容と無関係なら /clear、タスクの途中で履歴がまだ重要なら /compact を使う、というものです。

Claude Code のセッションは会話が長くなるほどコストが上がり信頼性が低下します。そのために両コマンドが用意されており、問題への対極的な解決策であり、コストも同じではありません。

各コマンドがコンテキストに与える影響

/clear は会話を終了し、空の履歴で新しい会話を開始します。プロジェクトのメモリは履歴の外にあるため保持されます。つまり CLAUDE.md と自動メモリは新しい会話の開始時に再度ロードされます。

何も削除されません。古い会話は保存され、/resume で復元できます。また、/clear release-prep のように名前を付けると、再開選択画面でラベル付けされます。/reset と /new はエイリアスです。

/clear

空のコンテキストで新しい会話を開始します。古い会話は /resume で利用可能です。

/compact はメッセージ履歴を構造化された要約に置き換え、同じセッションを継続します。Claude Code のドキュメントによれば、要約にはリクエスト、重要な技術概念、検査・変更したファイルと重要なスニペット、エラーとその修正方法、未完了の作業が保持されます。ツールの全出力や中間の推論など、逐語的な記録は失われます。会話中にのみ与えた指示も失われる可能性があります。

一部は要約されずに再構築されます。プロジェクトルートの CLAUDE.md と自動メモリはディスクから再読み込みされ、Claude が読み取ったまたは編集した最大5つのファイルが最新順に復元され、呼び出されたスキルはサイズ上限まで再注入されます。パス単位のルールやサブディレクトリの CLAUDE.md は、次に該当ファイルが読み込まれるまで要約されて保持されません。

/compact focus on the auth bug fix

フォーカス指示により、要約が何を保持すべきかを明示し、推測に任せません。

フォーカスを永続化したい場合は、プロジェクトの CLAUDE.md に # Compact instructions セクションを追加し、例えば変更されたファイル一覧やテストコマンドを常に保持するよう指示します。

長いセッションがターンごとにコスト増になる理由

モデルはリクエスト間で何も記憶しません。メッセージを送るたびに Claude Code は新たな API リクエストを行い、システムプロンプト、プロジェクトコンテキスト、過去のすべてのメッセージとツール結果、そして新しいメッセージという完全なコンテキストを再送します。Claude がツールを使用するたびに、会話全体を含む別のリクエストが送信されます。長いセッションの後半で1行の質問をすると、1行の質問に加えてそれまでの全履歴が含まれます。

プロンプトキャッシュはこの負荷を軽減しますが完全に取り除くわけではありません。各リクエストの変更のない部分はキャッシュから読み込まれ、通常の入力価格の一部(2026年9月時点の最新 Claude モデルでは10分の1以下)で課金されます。大きな数の一部が毎回支払われるため、会話が長くなるほど合計は増加し、サブスクリプションでも使用上限にカウントされます。

キャッシュには有効期限もあります。2026年9月時点のドキュメントでは、サブスクリプションの場合は1時間、API キーの場合はデフォルトで5分とされています。長時間のブレーク後の最初のリクエストは、履歴全体をゼロから再処理します。

コストだけが悪化要因ではありません。Claude Code のベストプラクティスガイドによれば、コンテキストウィンドウが埋まるとパフォーマンスが低下し、Claude が以前の指示を忘れたりミスが増えたりします。これがコンテキストの劣化で、失敗が積み重なった履歴はさらに悪化させます。

実際の /compact と /clear のコスト

/clear は無料です。Claude Code のコストに関するドキュメントは、継続性ではなく新規開始を望む場合は /clear に費用がかからないと明言しています。その後の最初のメッセージは、固定されたコンテキスト(システムプロンプト、ツール定義、CLAUDE.md、メモリ)に加えて入力した内容だけが含まれます。

/compact はモデルへのリクエストであり、長いセッションでは大規模になります。要約を書くために、Claude Code はシステムプロンプト、ツール、会話全履歴を同じくした別のリクエストを送信し、最後に要約指示を付加します。入力はセッションが蓄積した全内容で、出力は要約です。出力トークンは最もコストが高い種類です。

コンパクトのコストは状況により変わります。セッション途中ではキャッシュが温まっているため、履歴はキャッシュレートで読み込まれ、ドキュメントでは「コンテキストサイズが示すコストの一部」しかかからないとされています。キャッシュ有効期限を超えるブレーク後は、履歴全体がキャッシュなしで再処理されるため、再開直後のコンパクトは最も高コストになります。

その後のリクエストは要約だけを含むため安くなります。セッションが十分に長く続き、削除する履歴が不要な情報である場合にコンパクトは効果的です。誤った流れを完全に捨てるには、/rewind の方がさらに安く、既にキャッシュされているプレフィックスまで会話を切り詰めます。

自動コンパクトと実行タイミング

自動コンパクトはデフォルトで有効です。会話が上限に近づくと、Claude Code はまず古いツール出力を削除し、まだ足りなければ /compact と同様に会話を要約します。ウィンドウが満杯になるとセッションを維持しますが、コストが安くなるわけではありません。

デフォルトでは遅めに実行されます。2026年9月時点のドキュメントによれば、会話がモデルのコンテキスト上限に達した時、または Anthropic API の 100 万トークンウィンドウを持つモデル(例: Sonnet 5、Fable 系列、Opus 4.7 以降)で約 967,000 トークンに達した時にコンパクトが行われます。正確なタイミングはモデルやプロバイダー、設定に依存します。その時点までのすべてのリクエストは増大する履歴を含んでおり、コンパクト自体もほぼ満杯のウィンドウを読み取ります。多くの場合タスクの途中で実行されます。

しきい値は変更可能です。/autocompact 500k は自動パスが走るウィンドウの満杯度を設定し、/autocompact auto はモデルのデフォルトに戻します(このコマンドは Claude Code v2.1.221 以降が必要)。/config の Auto-compact 設定で自動パスをオフにでき、手動の /compact は引き続き使用できます。

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

/context は現在の使用状況をカテゴリ別のカラーグリッドで表示し、ロードされた CLAUDE.md とメモリファイルも示します。容量を過剰に占めている場合の提案もあります。何か決定する前に実行してください。

/context

現在ウィンドウに入っているものと、どれが容量を占めているかを示します。

継続的に確認したい場合は、ステータスラインに使用率パーセンテージを表示させます。/statusline は説明から設定でき、スクリプトで context_window.used_percentage フィールドを直接取得できます。/usage は別の指標で、セッションの消費量とプラン上限に対する位置を示します。

どちらを使うべきか

  • 次のタスクが無関係な場合: /clear。古い会話が新タスクに必要なファイルを圧迫し、すべてのメッセージでコストがかかります。
  • 同じタスクで履歴が長く、スレッドが重要な場合: フォーカス指示付きの /compact を、サブタスク完了など自然な区切りで実行し、ステップの途中では行わない。
  • セッションの一部が無駄な場合: /rewind。誤った分岐の前のメッセージを選び、会話を復元してコードは保持するか、ここまで要約して古いメッセージを圧縮し、最近のメッセージはそのままにします。
  • 同じ問題で2回失敗した修正: /clear して学んだことを踏まえてタスクを再提示します。Anthropic のガイダンスでは、より良いプロンプトでのクリーンなセッションは、修正が多数ある長いセッションにほぼ必ず勝ります。
  • 余談: /btw は回答が会話履歴に残りません。
  • 迷ったら: /clear が安価なミスです。費用はかからず、/resume で古い会話を復元できます。

両方に勝る習慣: タスクごとに1セッション

両コマンドは修復手段です。より安価な習慣はそれらを使わないこと、すなわちタスク開始時に会話を開始し、タスク終了時にクリアする、タスクごとに1つの会話を持つことです。

会話を超えて残す必要があるものはファイルに保存すべきで、履歴に残すべきではありません。CLAUDE.md のルールは /clear やコンパクトのたびに再ロードされますし、長期作業の状態はクリア前に Claude に書かせるノートファイルに保存します。書くこと自体はコンパクトと同様に1ターンのコストがかかりますが、保持内容を自分で選べ、セッションを超えて残ります。

その習慣を毎回意識せずに済ませたい場合、capsul は既にサインインしている Claude Code を使い、各 capsul ask を独立したタスクとして扱い、設定したトークン予算内で実行します。リポジトリ全体ではなくタスクに必要な情報だけを送信し、予算上限に達したら省略した内容を知らせて停止します。

capsul ask 'fix the flaky checkout test' --budget 3000

コマンド1つにつき1タスク、設定した上限内で実行します。

よくある質問

Claude Code では /compact と /clear のどちらを使うべきですか?

/clear は次のタスクが現在の会話と無関係なときに使用します。費用はかからず、Claude にクリーンなコンテキストを提供し、古い会話は /resume で利用可能です。/compact はタスクの途中で履歴が重要なときに使用し、できれば自然な区切りでフォーカス指示(例: /compact focus on the auth bug fix)を付けます。迷ったら、コストが低い /clear を選んでください。

/compact はトークンを消費しますか?

はい。要約を書くために、Claude Code は会話全体と要約指示を含む別リクエストを送信し、要約は出力トークンとして返ります。セッション途中では入力の多くがプロンプトキャッシュから低レートで読み込まれますが、キャッシュ有効期限を超えるブレーク後は履歴全体が再処理されるため、再開直後のコンパクトは最もコストが高くなります。その後のリクエストは要約だけを含むため安くなります。

Claude Code は自動的にいつコンパクトしますか?

自動コンパクトはデフォルトで有効で、会話が自動コンパクトウィンドウ(デフォルトではモデルのフルコンテキストウィンドウに近い)に近づくと実行されます。2026年9月時点のドキュメントでは、Anthropic API の 100 万トークンウィンドウを持つモデルで約 967,000 トークンが目安とされています。/autocompact でサイズを変更でき、/config の Auto-compact 設定で自動パスをオフにできますが、/compact は手動で利用可能です。

/clear は CLAUDE.md や過去の会話を削除しますか?

いいえ。/clear は会話だけを空にし、プロジェクト自体は削除しません。CLAUDE.md と自動メモリは新しい会話開始時に再度ロードされます。以前の会話はローカルに保存され、/resume で再開できます。また、/clear release-prep のように名前を付けると、再開選択画面でラベル付けされます。

Claude Code のコンテキストウィンドウの使用率はどう確認しますか?

/context を実行すると、カテゴリ別のカラーグリッドで現在の使用状況が表示され、容量を過剰に占めている項目への提案も出ます。継続的に確認したい場合は、context_window.used_percentage を表示するステータスラインを設定します。/statusline で設定可能です。/usage はセッションの消費量とプラン上限に対する位置を示す別指標です。

$ npm i -g @penra/capsul

← ガイド一覧