Claude Code /btwの使い方 — 本流を止めずに脇道の質問をする
会話履歴を汚さずに脇道の質問だけ済ませる/btwコマンドの使い方と、サブエージェントとの役割の違いをまとめます。
Claude Code /btwとは
/btwは、いまの作業の文脈に質問だけを差し込み、会話履歴を汚さずに答えを受け取るコマンドです。作業の腰を折らずに、ふと気になったことだけをその場で解消できます。
/btw さっきの設定ファイルの名前、何だったっけ?Claudeはこれまでの会話、つまり自分が送ったメッセージ・Claudeの返答・すでに集めたツール結果だけを材料に側面の質問へ答えます。Claudeが既に読んだコードや、以前下した判断について聞くこともできます。あとから重ねて/btwを使うと、直近20件の/btwのやり取りも再生してから答えるため、話を続けて聞くこともできます。この質問と回答は会話履歴には一切残りません。ターミナルでは閉じられるオーバーレイに表示され、xキーで消すまでメモリー上に残り、Claude Codeを終了すると消えます。
使い方: 作業中に質問だけを差し込む
> 認証まわりのリファクタを進めて
# Claudeがファイルを読み込みながら編集を開始
> /btw さっき読んでたJWT検証のロジック、どのファイルにあった?
# 側面の質問がオーバーレイで即座に返る。本流の編集は止まらない質問と回答はオーバーレイに表示されるだけで、本流のターンには一切影響しません。Claudeが編集を続けている間に答えを受け取り、Escapeで閉じれば元の会話に戻ります。
普通にメッセージとして同じ質問を送った場合との違いは、コンテキストウィンドウへの影響です。通常のメッセージは質問も回答も会話履歴に積み上がり、長いセッションほど/compactで要約する頻度が上がります。/btwの質問と回答はどちらも履歴に残らないため、本題と関係の薄いやり取りでコンテキストを消費せずに済みます。本流のタスクとは無関係な確認ごとが多いセッションほど、この違いが効いてきます。
/btwが見ている範囲・見ていない範囲
/btwはClaudeが処理中でも実行できます。側面の質問は本流のターンを止めずに独立して走り、それまでの会話全体を見て答えます。ただし「それまでの会話全体」には、Claudeがまだ書いている途中の返答は含まれません。今まさに生成中の応答内容について尋ねても、その部分だけは見えていない状態で答えることになります。例外として、Remote Control経由でClaude Desktopなどのアプリがホストするセッションに対する/btwは、直近の完了ターンだけでなく進行中のターンも見えます。これはRemote Controlの改善として入った挙動で、v2.1.285以降です。
アタッチしたバックグラウンドセッションでは、v2.1.257以降、Leftでagent viewへ戻っても側面の質問は裏で走り続けます。再びアタッチすると、オーバーレイが質問か回答の状態で開き直ります。
見える範囲は、自分が送ったすべてのメッセージ・Claudeの過去の返答・すでに実行し終えたツール呼び出しの結果です。逆に見えないのは、まだ実行していないツール呼び出しの中身や、会話に一度も出てきていない外部情報です。「このリポジトリの他のファイルに同じパターンはある?」のような、まだ調べていないことを聞いても、Claudeは会話に無い情報を作り出せません。会話に材料が無ければ答えられません。
VS Code拡張のチャットパネルでは挙動が変わり、/btwはこの記事で説明しているオーバーレイではなくパネルを開きます。パネル内でそのままフォローアップの質問を続けられ、スレッドはウィンドウを再読み込みしても残ります(保持期間は拡張機能側のページの規定に従う)。この動作には拡張機能v2.1.227以降が必要で、それより前のバージョンには/btw自体がありません。ターミナル版のオーバーレイがセッション終了で消えるのに対し、VS Code拡張のパネルは再読み込みをまたいで残る点が、両者の実務上の一番の違いです。
ツールを持たない代わりに低コストで答える
/btwには2つの明確な制約があります。ツールへのアクセスが無いことと、フォローアップのターンが無いことです。ファイルの読み込み・コマンド実行・検索はできず、あくまで会話に既に入っている情報だけで答えます。オーバーレイの中で会話を続けることもできず、続きを聞きたい場合はもう一度/btwを呼び出します。
フルのツールアクセスを使って話を続けたいときは、オーバーレイ上でfを押します。会話全体と今回の質問・回答を引き継いだ「フォークしたサブエージェント」がバックグラウンドで起動し、ツールを使って作業を続けます。今のセッションを離れるわけではなく、フォークはプロンプト下のパネルで確認できます。この機能はローカルセッションでのみ使えます。
/btwからフォークへ進む2段階
- 1
まず/btwで聞く
会話に既にある情報で足りるかを、ツールなし・履歴に残らない形で確かめます。
- 2
足りなければfを押す
質問と回答を引き継いだサブエージェントが、ツールを使って調べ直します。フォークの途中経過は本流の会話に入らず、最終結果だけが戻ります。
最初から本格的な調査になると分かっている質問は、/subtaskで直接サブエージェントに任せる方が早く済みます。/subtaskはv2.1.212以降のコマンドで、それ以前は/forkが同じ役目でした。現在の/forkは会話を丸ごと別のバックグラウンドセッションへコピーする別のコマンドなので、名前の混同に注意が要ります。agent viewをオフにしている環境では/subtaskが使えず、/forkがフォークしたサブエージェントを起動します。
コストの面では、会話のプロンプトキャッシュが温まっている間は、側面の質問にかかる追加コストは回答そのもの以外ごくわずかです。会話を続けながら気軽に使える設計になっています。
/btwはサブエージェントの逆
/btwとサブエージェントは対照的な性質を持ちます。/btwは会話全体を見られますがツールは持ちません。サブエージェントはフルのツールを持ちますが、渡された依頼文だけから始まります。使い分けの基準は明快です。すでにClaudeが知っていることを聞くなら/btw、新しく何かを調べさせるならサブエージェントを使います。
/btwとサブエージェント
/btw
会話全体が見えますが(進行中の返答は除く)、ツールはありません。既に読んだコードや過去の判断を聞き直す用途です。
サブエージェント
通常は渡された依頼文だけから始まり、フルのツールを使えます。フォーク(/subtaskや/btwのf)だけは会話のコピーを引き継ぎます。
具体例で比べると分かりやすくなります。「さっき変更した関数、なぜあの実装にしたんだっけ?」は/btw向きです。Claudeはすでにその判断を会話の中で下しており、ツールを使わず会話を読み返すだけで答えられます。一方「このプロジェクトの他の場所に同じバグパターンが無いか調べて」は、まだ会話に出てきていない情報を新しく探しに行く作業なので、サブエージェントに向いています。
同じ「Claudeに何かを尋ねる」操作でも、質問の性格によって適切な手段は変わります。
オーバーレイの操作とキー一覧
回答が表示された後のオーバーレイは、以下のキーで操作します。
| キー | 動作 |
|---|---|
Space / Enter / Escape | 動作回答を閉じてプロンプトへ戻る |
Up / Down | 動作回答をスクロール |
Shift+Left / Shift+Right | 動作過去の/btw回答との間を移動(Shift+Leftで古い方へ、Shift+Rightで現在へ)。[と]、Tab / Shift+Tabでも同じ移動ができる(v2.1.257以降) |
c | 動作回答をMarkdown原文としてクリップボードにコピー |
f | 動作質問と回答を引き継いだフォークのサブエージェントを起動(ローカルセッション限定) |
x | 動作上に表示されている過去の/btw一覧を消す |
質問なしで/btwを実行すると、直近のやり取りを再表示してオーバーレイに戻ります。まだ一度も側面の質問をしていなければ使い方の1行が出るだけで、v2.1.212より前は質問なしの/btw自体が使い方の表示でした。v2.1.256以前のLeft / Rightは、v2.1.257以降はShift付きに変わっています。プレーンな矢印キーで動かない場合は、バージョンをclaude --versionで確かめてください。直近5件の過去の質問はグレー表示のリストとして現在の回答の上に並び、それより古いものは件数だけが示されます。いずれも会話履歴には含まれません。
質問した内容をあとで見返したいときは、cでMarkdown原文としてコピーするのが確実です。マウスでの選択はターミナルの折り返し表示をそのまま拾ってしまうため、コピー用に用意されたこのキーを使う方が正確に原文を保持できます。
/btwが向く質問・向かない質問
過去の会話に材料がある質問かどうかで、向き不向きがはっきり分かれます。
| 質問の性格 | 向くか | 理由 |
|---|---|---|
| さっき決めた実装方針を思い出したい | 向くか◎ | 理由会話に既に含まれている情報で答えられる |
| 読み込み済みのファイルの内容を確認したい | 向くか◎ | 理由ツール結果として会話に残っている |
| 会話に出ていない別ファイルの中身を調べたい | 向くか✕ | 理由ツールが無いため読みに行けない |
| 最新のコマンド実行結果を検証したい | 向くか✕ | 理由新しく実行する必要がありツールが要る |
| 用語の意味を一般論として聞きたい | 向くか△ | 理由答えられるが、会話文脈と無関係ならメッセージで聞いた方が自然 |
/btwはツールを実行できません。それでもモデルが「ファイルを読みました」といった呼び出しを文章として書いてしまった場合、回答に「実行されていない」という注記が付きます。作り物のツール呼び出しを書かないようモデルに伝える修正と同時に入った仕様で、v2.1.269以降です。回答に実行結果らしき記述があっても、実際に読んだ・走らせたことにはなりません。答えられない質問だと分かった時点で、サブエージェントか通常のメッセージに切り替えます。
過去のやり取りをさかのぼって見返す
/btwを何度も使ったセッションでは、過去の質問と回答をさかのぼって確認できます。
> /btw
# 直近の/btwのやり取りをオーバーレイに再表示
# Shift+Left で1つ前の回答へ
# さらに Shift+Left で、そのまた1つ前の回答へ
# Shift+Right を押すと現在の回答へ戻るこのさかのぼり機能は、1つのセッション内で何度も脇道の質問を挟んだときに効きます。「さっき聞いたあの答え、もう一度見たい」と思っても、会話履歴を検索し直す必要はなく、/btwを空のまま呼び出してShift+Leftをたどるだけで済みます。ただしセッションを終了すればこの一覧も消えるため、長く残したい回答は、cでコピーして控えておく手があります。
/btwはどう変わってきたか
/btwの操作の細部は、ここ数か月で何度も変わっています。キーの覚え方がバージョンで違うのは、この経緯のためです。
/btwの主な変更(バージョン順)
- v2.1.163cでコピーが追加
回答をMarkdown原文のままクリップボードへコピーできるようになりました。
- v2.1.187←/→で過去の回答へ
前の回答をさかのぼる矢印キー操作が入りました。
- v2.1.212質問なしの/btwで再表示
直近のやり取りでパネルが開き、以前の回答を見返せる動作に変わりました。
- v2.1.257Shift付きに変更
履歴の移動が
Shift+←/Shift+→(または[/])になりました。 - v2.1.269作り物のツール呼び出しに注記
実行していないツール呼び出しが回答に含まれると、実行されていない旨の注記が付きます。
- v2.1.280実行中のツールを認識
ツールが実行中のときに聞いた側面の質問が、その呼び出しを失敗扱いにしなくなりました。
- v2.1.285アプリ経由で進行中のターンが見える
Remote Control経由でアプリがホストするセッションでは、進行中のターンも参照されます。
作業中に使える他の手段との違い
Claude Codeが作業中に何かを伝えたくなったとき、選べる手段は/btwだけではありません。追加の指示を予約したいだけならメッセージをEnterで送ってキューに積む方法があり、今の作業自体を止めて方向を変えたいならEscで割り込む方法があります。Enterでキューしたメッセージは本流の会話に残り、Escは作業を中断します。どちらも本流の会話に影響する操作です。/btwが他の2つと違うのは、会話に一切痕跡を残さず、しかもClaudeに新しく何もさせない点です。指示を出したいならEnterかEsc、指示ではなく確認をしたいだけなら/btw、という切り分けが基本になります。
まとめ
/btwは会話履歴を汚さず、進行中のターンも止めずに、いま持っている文脈だけで即答してほしいときに向きます。ツールが必要な調べ物や独立したタスクはサブエージェントに任せる、という役割分担が要点です。
確認ごとが多く、/compactの頻度が気になる長いセッションほど、/btwに回す価値が大きくなります。
サブエージェントを並列に使い分ける設計はClaude Code Sub-agents完全ガイド、複数セッションをまたいだ運用はClaude Codeのagent viewで扱っています。作業中に追加の指示を積んでおきたい場合は作業中にメッセージをキューに入れる方法も合わせて参照してください。
関連する記事
Claude Code をもっと見る →Claude Codeとは — できること・料金・始め方と使い方の全体像
only prompt commands are supported in streaming modeエラーの原因
CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSIONとは — 検索回数の上限を変える環境変数
CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTHとは — 入れ子の段数を変える環境変数
Claude Codeの--max-budget-usdでAPI課金額に上限を設ける
CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MSとは — サブエージェントのストール検知の設定