Claude Codeを使っていると、会話が長くなったあたりで急に前の指示を忘れたり、なんか回答が噛み合わなくなったりしませんか? その「会話が重くなった感」の正体は、コンテキストウィンドウ(会話の記憶容量)がいっぱいに近づいているサインです。Claude Codeにはこれを整理するコマンドが3つ—/compact、/clear、/resume—が用意されていて、それぞれ「圧縮」「リセット」「復元」と動きが違います。この記事では、どのコマンドをどんな場面で使えばいいかを迷わず選べるように整理します。
何を比較するか
比べるのは、Claude Codeの会話を整理する3つのコマンド。
/compact— 会話を要約して圧縮する/clear— 会話履歴をすべて消去する/resume— 過去のセッションに戻る
この3つを「動作」「元に戻せるか」「使う場面」「コンテキストへの影響」の4軸で整理します。読み終わる頃には、自分の状況に合ったコマンドがすぐ選べるようになります。
比較する前に—会話が長くなると何が起きるか
Claude Codeは、会話の内容をすべて記憶しながら回答を作っています。この記憶容量のことを「コンテキストウィンドウ」と呼びます。
会話が短いうちは問題ありません。ですが、やり取りを重ねるうちにこの容量が上限に近づき、いくつか気になる変化が起きてきます。
代表的な症状
- 前に伝えたはずの指示を忘れる
- 矛盾する回答をする(前の文脈と食い違う)
- 回答の精度が落ちる、具体性がなくなる
- 応答が遅くなる
このうち「前の指示を忘れて別の回答をする」ような状態は、会話の文脈が劣化している状態です。英語圏では「context rot」と呼ばれることもあります。
自動圧縮という安全装置
Claude Codeには、容量が上限の95%に達した時点で自動的に会話を圧縮する仕組みがあります。自動圧縮が走ると、画面にその旨のメッセージが表示されます。初めて見ると「何が起きた?」と戸惑うかもしれませんが、正常な動作です。
ただし、自動圧縮に任せきりにするより、手動でタイミングよく圧縮する方が会話の質を保ちやすいです。その辺りは後で触れます。
/compact — 会話を要約して容量を確保する
一言で言うと、/compactは「会話を要約して圧縮し、文脈を保ったまま容量を確保する」コマンドです。
具体的な動作
/compactを実行すると、それまでの会話が要約されて置き換わります。重要な文脈(何を作っているか、どんな約束をしたか等)は残り、細かいやり取りは省かれます。圧縮後は空き容量が増えるので、そのまま会話を続けられます。
実行例を示します。
> /compact
画面には「Compact summary: …」のようなメッセージが表示され、何が残ったかが分かります。
引数で残す情報を制御できる
引数なしの/compactはClaudeに要約を任せますが、何を残したいか指定することもできます。
> /compact このプロジェクトはReact+TypeScript。デザインシステムはTailwindを使っている
このように書くと、要約時に残してほしい情報を明示できます。「絶対に忘れてほしくない前提」がある時は、引数として書いておくと安全です。
いつ使うか
- 会話をそのまま続けたいが、動作が重くなってきた時
- 回答の質が落ちてきたと感じた時
- セッションを変えずにコンテキストを整理したい時
自動圧縮(95%)との違い
自動圧縮は容量が95%に達してから走る「緊急避難」に近いものです。それに対して手動の/compactは、余裕のある段階で意図的に圧縮できるため、文脈の保持精度が高くなりやすいです。体感ですが、会話が長くなってきたなと感じる段階(ざっくり60%前後)で手動圧縮しておくと、安定しやすい印象です。
/clear — 会話を完全にリセットする
一言で言うと、/clearは「会話履歴をすべて消去し、コンテキストを空にする」コマンドです。
ここだけは押さえておきたい注意点
/clearを実行すると、そのセッションでの会話が空になります。ただし、以前の会話自体は残っており、/resumeで戻ることができます(後述)。とはいえ、/clear後は新しい会話として扱われるため、直前の文脈はリセットされます。実行前に一呼吸おいてから押す習慣をつけておくと安心です。
実行例
> /clear
実行後、画面は初期状態に戻ります。CLAUDE.mdは再読み込みされるため、プロジェクトの基本設定は引き継がれます。
いつ使うか
- 別のタスクに切り替える時(例:ブログ記事の作業を終えて、別のツールの検証を始める時)
- 一からやり直したい時
- コンテキストが乱れすぎて、整理するよりリセットの方が早いと判断した時
/compactで圧縮しても文脈がごちゃごちゃしている時は、思い切って/clearでリセットする方が結果的に早い場合があります。
セッションIDは変わらない
/clearを実行すると、空の状態で新しい会話が始まります。前の会話は消えるわけではなく、/resumeから戻れる形で残ります。ただし、今開いている会話の文脈はリセットされるため、直前の指示を引き継ぎたい場合は/compactを使う方が安全です。
/resume — 過去のセッションに戻る
一言で言うと、/resumeは「過去の会話を選んで再開する」コマンドです。Claude Codeの画面内で使う場合は/resumeを入力します。Claude Codeを起動する時に直近の会話へ戻りたい場合は、claude -cを使います。特定のセッション名やIDを指定して戻る場合は、claude -r "session-name"を使います。
仕組み
Claude Codeは各セッションの会話を自動的に保存しています。/resumeはこの保存データを読み込んで、過去の会話を再構築する仕組みです。ターミナルを閉じたりPCを再起動したりしても、前回の作業を続きから再開できるのはこのおかげです。
使い方
Claude Codeを起動する際に-cを指定すると、直近のセッションを再開できます。また、-rでセッション名やIDを指定して特定のセッションに戻ることもできます。
claude -c
claude -r "session-name"
-cで直近のセッションが、-rで指定したセッションが復元されます。
いつ使うか
- 昨日の続きをやりたい時
- 別のターミナルで作業していたセッションに戻りたい時
- 一旦中断した作業を再開する時
注意点
なお、/clearで新しい会話を始めた後も、前の会話は/resumeで戻れます。/resumeが戻れるのは会話が残っているものだけです。セッションを閉じたりPCを再起動したりしても、前回のセッションが残っていれば続きから再開できます。
3コマンドの比較表
3つのコマンドを表にまとめます。
| 比較軸 | `/compact` | `/clear` | `/resume` |
|---|---|---|---|
| 動作 | 会話を要約して圧縮する | 会話をすべて消去する | 過去のセッションを復元する |
| 元に戻せるか | 圧縮前の詳細は戻らないが文脈は残る | 現セッションでは消えるが`/resume`で前の会話に戻れる | 過去の状態をそのまま復元 |
| 使う場面 | 会話を続けたいが重い時 | 別タスクに切り替える時 | 前回の作業を再開する時 |
| コンテキストへの影響 | 文脈を保ったまま容量を確保 | コンテキストが空になる | 過去のコンテキストが復元される |
| `/resume`で戻れるか | 圧縮後の状態には戻れる | 前の会話に戻れる | — |
各コマンドの強みと弱み
/compactの強みは、会話を途切れさせずに容量を確保できること。圧縮時に細部が失われる可能性がある点だけ意識しておけば問題ありません。
/clearの強みは、確実にコンテキストをリセットできること。以前の会話自体は/resumeで戻れますが、直前の文脈は消えるため、実行前に「今の文脈はもう要らないか」を確認する習慣をつけておきたいところです。
/resumeの強みは、過去の作業をそのまま再開できること。/clearで始めた新しい会話からでも前の会話に戻れます。起動時以外では使えない場面が多いことも覚えておきましょう。
実際にどう使い分けるか—判断フロー
まず「会話を続けたいか」で分岐
会話をそのまま続けたいなら、まずは/compactを試します。圧縮後も会話を続けられ、文脈も残ります。
別の作業に切り替えたいなら/clearです。リセットして、新しいタスクに取りかかれます。
「過去のセッションに戻りたい」場合
Claude Codeを新しく起動して、前回の作業を続きからやりたい時は/resumeです。起動時にclaude --resumeと指定して、戻りたいセッションを選びます。
ユースケース別の推奨
- 作業中に動作が重くなった →
/compact - 作業中に回答がおかしくなった →
/compactを試し、改善しなければ/clear - 別のタスクに切り替える →
/clear - 昨日の続きをやりたい →
claude -c - 一からやり直したい →
/clear
/rewindについて
もう一つ、/rewindというコマンドがあります。これは「直前の操作を取り消す」コマンドで、今回紹介した3つとは別枠のものです。1回だけ操作を取り消したい時(誤った指示を出してしまった時など)に使います。会話全体の圧縮やリセットとは目的が違うため、混同しないようにしましょう。
コマンド以外で会話を長持ちさせるコツ
コマンドは「起きてから対処する」ものですが、いくつかの習慣で「起きにくくする」こともできます。
CLAUDE.mdを簡潔に保つ
CLAUDE.mdの内容は毎回の会話の先頭に読み込まれます。長すぎるとその分だけで容量を圧迫するため、本当に必要なルールだけを残すよう意識すると良いです。
不要なMCPサーバーを無効にする
MCPサーバーの応答もコンテキストに含まれます。使っていないサーバーが有効になっていると、毎回無駄に容量を消費することになります。使わないものは無効化しておきましょう。
CLAUDE_AUTOCOMPACT_PCT_OVERRIDEで自動圧縮のタイミングを調整する
環境変数CLAUDE_AUTOCOMPACT_PCT_OVERRIDEを設定すると、自動圧縮が走るタイミングを変更できます。デフォルトは95%ですが、60%に設定しておけば、より早い段階で自動圧縮が走り、文脈の保持精度を高められます。
set CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=60
コマンドプロンプトで設定できます。PowerShellなら$env:CLAUDE_AUTOCOMPACT_PCT_OVERRIDE = "60"です。
サブエージェント(Agent tool)を活用する
Claude Codeには、メインの会話とは別にサブエージェントを立ち上げて作業させる仕組みがあります。サブエージェントでのやり取りはメインのコンテキストを消費しないため、調べ物や探索的な作業はサブエージェントに任せると、メインの会話をクリーンに保てます。
こまめに/compactする
大きな作業の区切りがついたら、その都度/compactで圧縮しておくと、後からの自動圧縮に頼らなくて済みます。「一段落したら圧縮」を習慣にしておくと、会話の質が安定しやすくなります。
まとめ
会話が長くなって困ったら、まずは/compactで圧縮を試す。別の作業に切り替えるなら/clear。過去のセッションに戻りたいなら/resume。
/compact— 会話を圧縮して続ける/clear— 空の状態で新しい会話を始める/resume— 過去の会話に戻る
まずは「長くなったら/compact」だけ覚えておけば十分です。別の作業に切り替える場面が増えてきたら/clear、前回の続きをやりたくなったら/resume——という順で覚えていくと自然です。
次に読む記事
- CLAUDE.mdとは?Claude Code初心者向けに整理 —
CLAUDE.mdの書き方を理解して、会話を長持ちさせる土台を作る
次に試すこと
- 今のセッションで
/compactを実行して、圧縮メッセージを確認してみる
高度な設定
CLAUDE_AUTOCOMPACT_PCT_OVERRIDEで自動圧縮のタイミングを調整する
