Claude Codeの/recapと/btwで会話履歴を汚さずセッションを扱う
/recapはセッションの一行要約を、/btwは会話履歴に残さない一問一答を返します。どちらも履歴を汚さずセッションの記憶を扱う仕組みで、使い分けと制約をまとめます。
/recapは、現在のセッションで何が起きたかを一行に要約して表示するコマンドです。実行するとその場で要約が生成されます。Claude Codeにはこれとは別に、離席から戻ったときに自動で要約が表示される仕組みがあり、/recapは同じ機能をオンデマンドで呼び出す入り口にあたります。v2.1.108で追加されました。
/recapが出す一行要約と、自動で出る要約の関係
自動要約は、ターミナルから離れて戻ってきたときにClaude Codeが表示する一行要約です。直前のターン完了から3分以上が経過し、ターミナルがフォーカスを失っていると、バックグラウンドで要約の生成が始まり、画面に戻ったときにはすでに用意されています。ただし発火にはいくつか条件があります。
- セッションが最低3ターン進んでいないと表示されない
- 同じ要約が2回連続で表示されることはない
- 非対話モードでは常にスキップされる
自動表示が発火する条件をさらに細かく整理したものはClaude Code session recapの使い方と自動表示の条件にまとめています。/recapはこの自動要約と同じ仕組みを、待たずにその場で呼び出すコマンドです。離席条件を満たしていなくても、見たいタイミングで一行要約を取得できます。設定は/configにまとまっており、「Session recap」をオフにすると自動表示だけを止められます。オフにしても/recapコマンド自体は使える点が、単純な機能トグルとは違うところです。/configが扱う設定項目全体の見取り図はClaude Code settings.json完全ガイドにまとめています。
自動要約はすべてのプランとプロバイダーで既定オンです。テレメトリを無効化していると本来より短いタイムアウトになりますが、CLAUDE_CODE_ENABLE_AWAY_SUMMARY環境変数を立てれば、テレメトリを切っていても自動要約を強制できます。
v2.1.108で一緒に変わったセッション管理まわり
/recapが追加されたv2.1.108は、セッションを行き来する周辺のコマンドにも手が入ったバージョンです。/undoが/rewindのエイリアスになり、どちらを打っても同じ巻き戻し操作になりました。/resumeのセッション選択画面も、既定でカレントディレクトリのセッションだけを表示するように変わり、他プロジェクトも含めた全件表示はCtrl+Aで切り替える形になりました。
この並びを見ると、/recap単体の追加というより、「セッションをまたいで作業するときの摩擦を減らす」という一連の改善の1つだったことが分かります。長時間・複数セッションにまたがる作業が前提になるほど、「どこまで進んだか」を思い出すコストと、「目的のセッションに戻る」コストの両方が効いてきます。
会話履歴に残る/recapと、残らない/btw
Claude Codeには、セッションの記憶を扱うコマンドがもう1つあります。/btwです。この2つは、会話履歴への残り方が正反対という関係にあります。
/recap | /btw | |
|---|---|---|
| 何をするか | /recapセッションの一行要約を生成 | /btw会話履歴に追加せずに質問へ回答 |
| 会話履歴への影響 | /recap要約自体は履歴外の表示 | /btw質問と回答のどちらも履歴に入らない |
| ツール呼び出し | /recapなし(会話の要約のみ) | /btwなし(会話に既にある情報だけで回答) |
| 主な用途 | /recap「ここまで何をしたか」を思い出す | /btw「これまでの会話の中の特定の事実」を聞く |
/btwは現在の作業に質問を追加せずに、会話・返信・収集済みのツール結果から答えを返すコマンドです。Claudeが応答している最中でも実行でき、メインターンを中断しません。質問と回答はターミナル上の消せるオーバーレイに表示され、xキーで消せば、Claude Codeを終了した時点で完全に消えます。過去5件の/btwのやり取りは薄く表示され、Left/Rightキーで遡って見返せます。
回答にはツールが使えないという制約があり、ファイル読み込みやコマンド実行はできません。会話の中に既にある情報だけで答える設計です。続きを深掘りしたい場合はfキーでその質問と回答を新しいセッションにフォークでき、フォーク後はツールを含めた通常のセッションとして続けられます。元のセッションは/resumeから引き続き参照できます。
公式ドキュメントは/btwを「サブエージェントの逆」と位置付けています。サブエージェントは空の文脈から始まりツールを全部使えるのに対し、/btwは会話全体が見えている一方でツールを一切使えません。/recapが「セッション全体を要約する」役割なのに対し、/btwは「セッションの中身は変えずに一点だけ聞く」役割で、どちらも会話履歴を汚さずにセッションの記憶を扱う点で共通しています。
/btwとの使い分けで押さえる制約
/btwはコマンドの後にそのまま質問を続けて書きます。
/btw what was the name of that config file again?回答はオーバーレイに表示され、メインの会話はそのまま進みます。引数なしで/btwだけ実行すると、直前に表示した回答のオーバーレイを開き直せます。v2.1.212より前は、引数なしの/btwは使い方メッセージを出すだけでした。
/btwは便利な反面、設計上の制約をいくつか把握しておく必要があります。
- ツールを一切使えない: ファイルを読む・コマンドを実行する・検索するといった操作は
/btwの中ではできません。会話に既に出ている情報の範囲でしか答えられないため、「このファイルの最新の中身を教えて」のような質問には答えられません - オーバーレイの中でフォローアップターンはできない: 回答に対してさらに質問を重ねたいときは、もう一度
/btwを実行するか、fキーでセッションをフォークする必要があります。オーバーレイ自体は1問1答で完結する設計です - マウス選択でコピーすると崩れる: ターミナルの折り返し表示をそのままコピーすると改行が入るため、生のMarkdownとしてコピーしたい場合は
cキーを使います
VS Code拡張では見た目が変わり、ターミナルのオーバーレイではなくチャットパネル内に専用のパネルが開いて、そのままフォローアップの質問を続けられます。パネルのスレッドはウィンドウを再読み込みしても残ります。この挙動には拡張のv2.1.227以降が必要で、それより前のバージョンの拡張には/btw自体がありません。
いつどちらを使うか
「今どこまで進んだか、次に何をすべきか」を確認したいときは/recapが向きます。特に長時間のセッションで、少し目を離していた後に状況を思い出したいときに実行すると、会話をスクロールして追う手間を省けます。
「さっき決めたあの値は何だったか」「あのファイル名をもう一度」のように、会話の中の特定の1点だけを確認したいときは/btwが向きます。ここで新しいタスクを始めるつもりがないなら、通常のメッセージとして送るより/btwのほうが会話履歴を汚さずに済みます。
両方とも会話履歴を汚さない設計ですが、目的が違います。/recapは要約という引き算の情報を返し、/btwは会話に既にある情報から答えという引用を返します。
履歴を汚さない設計が増えている背景
/recapと/btwに共通するのは、通常のメッセージとして送れば済むはずの操作を、あえて会話履歴の外に逃がしているという設計です。「今どこまで進んだ?」とそのままメッセージで聞けば要約は返ってきますし、「あのファイル名は?」も同様です。それでも専用コマンドとして切り出されているのは、こうした確認のたびに会話履歴が伸びると、後続のターンで読み込むコンテキストが不必要に膨らむからです。
長時間・複数ターンのセッションほど、この種の「本題とは関係のない確認」が積み重なりやすくなります。/recapと/btwは、会話の本筋を汚さずに周辺の確認を済ませるための、同じ問題意識から生まれた2つの答えと見てよいでしょう。
よくある質問
/recapを実行すると会話に何か残りますか
残りません。/recapが生成する要約は表示専用で、通常のメッセージのように会話履歴の一部として次のターンに読み込まれることはありません。
自動要約をオフにしても/recapは使えますか
使えます。/configの「Session recap」は離席後の自動表示だけを制御する設定で、オンデマンドの/recapコマンドとは別に扱われます。
/btwへの質問はClaudeの記憶に残りますか
質問と回答はどちらも会話履歴に入りません。ただし同じセッション内で/btwを続けて使うと、直近20件までの/btwのやり取り自体は次の/btwの回答に引き継がれます。xキーで消すか、Claude Codeを終了すると消えます。
/btwの回答中にClaudeが作業を止めますか
止まりません。/btwはメインターンと独立して実行され、Claudeが応答を生成している最中に呼び出しても、その処理を妨げません。
/resumeで別のセッションに移ると/btwの履歴はどうなりますか
/btwの過去のやり取りはセッションに紐づきます。/resumeで別のセッションを開いても、そのセッションで表示されるのは自分自身の/btw履歴だけで、元のセッションのやり取りが混ざることはありません。fキーでフォークした場合は、その時点の質問と回答だけが通常の会話ターンとしてフォーク先に引き継がれ、以降ツール付きの通常セッションとして続けられます。
会話が長くなるほど/recapと/btwの価値は上がりますか
上がると考えられます。会話が短いうちは全体をスクロールして読み返しても負担になりませんが、ターン数が増えるほど「どこまで進んだか」を目視で追う手間は大きくなります。/recapの自動表示にも「セッションが最低3ターン進んでいないと表示されない」という条件があり、短いセッションでは効果を発揮しにくい設計とも整合します。
まとめ
/recapは、離席後に自動表示される一行要約と同じ仕組みを、任意のタイミングで呼び出すコマンドです。自動表示は直前のターンから3分以上・ターミナル非フォーカスという条件で発火し、/configの「Session recap」でオフにできますが、オフにしても/recapコマンド自体は残ります。会話履歴に何も残さないという設計は/btwと共通していますが、/recapはセッション全体の要約を、/btwは会話中の特定の事実への回答を返す点で役割が分かれます。長いセッションで状況を思い出したいなら/recap、特定の1点だけ確認したいなら/btwと使い分けると、会話履歴を汚さずにセッションの記憶を扱えます。