Claude Code は、会話の文脈(コンテキスト)が上限に近づくと、自動で要約(圧縮)します。
途中で話が飛ぶのを防ぐには、/context で残りを見て、区切りのよいところで自分で /compact するのが確実です。
- /context:今どれだけ使っているかを、項目ごとに表示する
- /compact 残したいこと:会話を要約して空きを作る
- /clear:会話を空にして新しく始める(前の会話は /resume で戻れる)
- 自動圧縮の発動点は /autocompact で決められる(10万〜100万トークン)
この記事は、Claude Code の公式ドキュメント(code.claude.com/docs、2026年9月29日に確認)にもとづいています。
手元の確認は、2026年9月29日に Windows 11 の Claude Code 2.1.284 で、練習用のフォルダー(C:\demo\cc-b)を使って行いました。
/contextの表示
MSYS_NO_PATHCONV=1 claude -p "/context"練習用のフォルダーで実行すると、次のように出ました(MCP のツールの内訳は省いています)。
## Context Usage
**Model:** claude-opus-5
**Tokens:** 29k / 1m (3%)
| Category | Tokens | Percentage |
|----------|--------|------------|
| System prompt | 3.2k | 0.3% |
| System tools | 20.3k | 2.0% |
| MCP tools (deferred) | 5.6k | 0.6% |
| System tools (deferred) | 19.7k | 2.0% |
| Custom agents | 45 | 0.0% |
| Skills | 5.3k | 0.5% |
| Messages | 8 | 0.0% |
| Free space | 938k | 93.8% |
| Autocompact buffer | 33k | 3.3% |会話を始める前から、システムの指示やツールの説明で約29,000トークンを使っていました。
自作のサブエージェント(Custom agents)やスキル(Skills)も、説明の分だけ文脈を使います。
Git Bash では /context がパスに書き換えられるので、MSYS_NO_PATHCONV=1 を付けています(PowerShell なら不要)。
/compactで空きを作る
/compact 認証まわりの修正の経緯を残して/compact のあとに書いた指示で、要約で何を残すかを決められます。
CLAUDE.md に「Compact Instructions」の節を書いておくと、毎回の圧縮で残すことを指示できます。
圧縮で消えるもの・残るもの
- 依頼の内容と大事なコードは残るが、会話の最初のほうの細かい指示は失われることがある
- プロジェクトの CLAUDE.md と自動メモリは、圧縮のあとディスクから読み直される
- 最近触ったファイルは最大5つ読み直される
- 使ったスキルの本文は、1つ5,000トークン・合計25,000トークンまで戻される
いつも守らせたい決まりは、会話ではなく CLAUDE.md に書きます。
自動圧縮の設定
| 方法 | 働き |
|---|---|
| /autocompact 500k | 発動点を決めて保存する(autoCompactWindow、2.1.221 以降) |
| claude –autocompact 500k | その起動だけ |
| CLAUDE_CODE_AUTO_COMPACT_WINDOW | いちばん優先(整数だけ) |
| CLAUDE_AUTOCOMPACT_PCT_OVERRIDE | 発動点を1〜100%で早める(遅くはできない) |
| DISABLE_AUTO_COMPACT=1 | 自動圧縮を止める(手での /compact は使える) |
指定できる範囲は10万〜100万トークンで、上の表示にあった「Autocompact buffer」がその余白です。
/clearとの違い
/clear は会話を空にして新しく始めます(別名 /reset・/new)。
同じ話を続けたまま空きを作りたいときは、/clear ではなく /compact を使います。
文脈を食わないコツ
- CLAUDE.md は1ファイル200行未満を目安にする。長い説明は .claude/rules/ や @ での読み込みに分ける
- CLAUDE.md の <!– –> のコメントは、文脈に入る前に取り除かれる
- 使わないプラグインや MCP サーバーは外す
上限に当たってエラーになったときは、Context limit のエラーの対処法で紹介しています。
まとめ
- /context で残りと内訳を見る
- 区切りで /compact 残したいこと
- 話を変えるなら /clear
- いつも守らせる決まりは CLAUDE.md に
参考:Claude Code「Commands」「Context window」「How Claude Code works」「Memory」(2026年9月29日に確認)と、Claude Code 2.1.284 での実行結果。
