Claude Codeの/focusビューで応答だけに集中する
/focusは最後のプロンプト・ツール呼び出しの1行要約・最終応答だけを表示するCLIコマンドです。サブエージェント数の集約表示やVS Code拡張独自のFocus viewとの違いまで押さえます。
/focus はCLIのフォーカスビューを切り替えるコマンドです。最後のプロンプト、ツール呼び出しの1行要約、最終応答だけを表示し、ツール実行の詳細ログを画面から追い出します。長いツール呼び出しの連続でスクロールが埋まる状況を避けたいときに使います。名前がよく似たVS Code拡張の機能とは別物なので、両方使う場合は違いを押さえておく必要があります。
/focusは何を表示し、何を隠すか
/focus を実行すると、表示される内容は3つに絞られます。直近のプロンプト、diffstat付きのツール呼び出し1行要約、そして最終応答です。ツール呼び出しの要約行には、そのターンで起動したサブエージェントの数も集約され、完了したバックグラウンドタスクの通知は1つの件数にまとめられます。
/focusこの選択はセッションをまたいで保持されます。次回起動時も直前に選んだ表示モードが復元される形です。上書きしたい場合は設定の viewMode を指定します。
/focus はフルスクリーンレンダリング(ターミナルの代替スクリーンバッファを使う描画モード)でのみ利用できます。クラシックレンダラーのセッションでは使えないので注意してください。フルスクリーンレンダリングの仕組みと制約はClaude CodeのTUI(フルスクリーン)とはで詳しく扱っています。/tui と /focus がコマンドとして分離された経緯はClaude Code v2.1.110のリリースノートで確認できます。
通常表示では、Claudeがファイルを読み書きするたびのツール呼び出しと、その結果(コマンド出力や差分)が逐次画面に流れます。長いリファクタリングや調査タスクでは、この詳細ログがスクロール領域の大半を占め、実際に知りたい「何を聞いて、何が返ってきたか」を探すのに画面を遡る必要が出てきます。フォーカス表示はこの詳細ログを1行の要約に畳み、直近のやり取りだけが画面に残るようにします。
/focusはなぜCtrl+Oから独立したコマンドになったか
/focus は最初から独立したコマンドだったわけではありません。フォーカス表示そのものはv2.1.97でフルスクリーンレンダリング(旧NO_FLICKERモード)に追加され、当時は Ctrl+O で通常表示・verbose表示との切り替えを兼ねる形でした。
v2.1.110で挙動が分離されます。Ctrl+O は通常表示とverbose表示だけを切り替えるショートカットになり、フォーカス表示の切り替えは新設された /focus コマンドが単独で担うようになりました。同じv2.1.110では /tui コマンドも追加され、フルスクリーンレンダリングへの切り替え自体もコマンド化されています。
| バージョン | 変更点 |
|---|---|
| v2.1.97 | 変更点フォーカス表示を追加。Ctrl+O が通常/verbose表示とフォーカス表示をまとめて切り替え |
| v2.1.110 | 変更点Ctrl+O は通常/verbose表示専用に。フォーカス表示は新設の /focus コマンドで独立して切り替え |
| v2.1.221 | 変更点VS Code拡張が独自のFocus viewを追加(CLIの/focusとは別設定) |
キーボードショートカット1つに複数の意味を持たせるより、コマンドとして切り出した方が用途ごとの挙動を追いやすくなる、という設計判断が読み取れます。
viewMode設定との関係
セッションをまたいで保持される /focus の選択は、settings.json の viewMode で明示的に上書きできます。viewMode には "default"(通常表示)・"verbose"(詳細表示)・"focus"(フォーカス表示)のいずれかを指定します。viewMode を設定すると、それまで保持されていた /focus の切り替え結果より優先されます。
--verbose フラグを付けて起動すると、その1セッションに限り viewMode の設定より優先してverbose表示になります。
| 設定・操作 | 効果 | 永続性 |
|---|---|---|
/focus コマンド | 効果フォーカスビューをトグル | 永続性セッションをまたいで保持 |
viewMode 設定 | 効果起動時の既定表示モードを固定 | 永続性/focus の保持設定より優先 |
--verbose フラグ | 効果1セッションだけverbose表示に | 永続性そのセッション限り |
チーム全体でフォーカスビューを既定にしたいなら、各自が /focus を切り替えるより、プロジェクト設定に viewMode: "focus" を書く方が確実です。個人の好みとして常にフォーカス表示にしたいだけなら、ユーザースコープの設定に書けばプロジェクトをまたいで適用されます。逆に、あるプロジェクトだけ通常表示に固定したいなら、そのプロジェクトのローカル設定で上書きする形になります。設定はコマンドラインから直接変更することもでき、/config viewMode=focus のように key=value を渡せばダイアログを開かずに1項目だけ変えられます。
フォーカス表示で何が起きているかを具体的に見る
たとえばテストの失敗原因を調べるために、Claudeが複数のログファイルを読み、失敗箇所を特定し、修正を加えてテストを再実行する、という一連のターンを考えます。通常表示では「ファイルAを読んだ」「ファイルBを読んだ」「grepを実行した」「ファイルCを編集した」「テストコマンドを実行した」という個々のツール呼び出しが画面に流れます。その出力(grepのヒット行、diffの内容、テスト結果のログ)もそれぞれ表示されます。フォーカス表示では、これらが1行の要約(diffstat付き)にまとめられ、画面には直近のプロンプトと最終応答だけが残ります。詳細を確認したくなったら通常表示やverbose表示に戻せば、同じ情報はそのまま参照できます。
VS Code拡張のFocus viewはCLIの/focusと別物
VS Code拡張機能にも「Focus view」という名前の機能がありますが、これはCLIの /focus とは独立した別設定です。混同すると、片方だけ切り替えたつもりが反映されない、という戸惑いにつながります。
VS Code拡張のFocus viewは、ツール呼び出し・ツール結果・thinkingを折りたたみ可能な行の裏に隠し、プロンプトと応答だけを残す表示です。Claudeの最新のTo-Doリストと、Claudeが質問中の対象を示すテキストは表示されたままになります。切り替えはSettings画面のトグル、キーボードショートカット(Mac: Ctrl+Option+F、Windows/Linux: Ctrl+Alt+F)、コマンドパレットの「Claude Code: Toggle Focus view」のいずれかから行います。変更は開いている全セッションに適用され、拡張機能の設定として保存されます。
| 項目 | CLIの/focus | VS Code拡張のFocus view |
|---|---|---|
| 保存先 | CLIの/focusセッション間で保持、viewMode設定で上書き可 | VS Code拡張のFocus view拡張機能の設定(focusView) |
| 前提条件 | CLIの/focusフルスクリーンレンダリングが必要 | VS Code拡張のFocus viewClaude Code v2.1.221以降が必要 |
| 切り替え方法 | CLIの/focus/focus コマンド | VS Code拡張のFocus viewSettings画面・ショートカット・コマンドパレット |
| 隠す対象 | CLIの/focusツール呼び出しの詳細(1行要約に集約) | VS Code拡張のFocus viewツール呼び出し・ツール結果・thinking(折りたたみ) |
両者は名前も目的も似ていますが、設定の保存場所が完全に独立しています。CLIとVS Code拡張を併用する場合、片方でフォーカス表示にしても、もう片方には引き継がれません。
隠す対象にも違いがあります。CLIの /focus はツール呼び出しを1行要約に「集約」する形で、diffstatや起動したサブエージェント数といった情報は要約の中に残ります。VS Code拡張のFocus viewはツール呼び出し・ツール結果・thinkingを折りたたみ可能な行の「裏に隠す」形で、展開すれば元の内容を確認できます。集約されて情報の粒度が変わるCLI側と、折りたためるだけで情報はそのまま残るVS Code拡張側、という違いです。
サブエージェントの起動数はどう集約されるか
/focus のツール呼び出し要約行が持つ独自の挙動として、そのターンで起動したサブエージェントの数を数えて集約表示する点があります。サブエージェントを複数並行で起動するようなワークフローでは、通常表示だと個々のサブエージェントの動作ログがすべて流れてしまいますが、フォーカスビューでは起動数だけが1行に集約されます。完了したバックグラウンドタスクの通知についても同様に、個別の通知ではなく件数へまとめられます。
これは、サブエージェントを多用する運用でフォーカスビューが特に効果を発揮する理由でもあります。詳細を追いたいときは通常表示やverbose表示に戻せば、個々のツール呼び出しやサブエージェントのやり取りを確認できます。並列実行するサブエージェントの設計自体についてはClaude Code Sub-agents完全ガイドを参照してください。
よくある質問
/focusはどのモードで使えないのか
クラシックレンダラー(フルスクリーンレンダリングを使っていないセッション)では /focus は使えません。フルスクリーンレンダリングへの切り替えは /tui fullscreen で行い、切り替え後は会話の内容を保ったまま新しい描画モードで再起動します。
/focusとviewMode設定はどちらが優先されるか
viewMode を設定ファイルで指定すると、セッションをまたいで保持されていた /focus の切り替え結果より優先されます。--verbose フラグはさらにその上から、起動した1セッションだけを上書きします。
VS Code拡張でCLIの/focusと同じ表示にできるか
CLIの /focus とVS Code拡張のFocus viewは別の設定として保存されるため、CLI側で /focus を切り替えてもVS Code拡張には反映されません。VS Code拡張側はSettings画面のトグルかショートカット(Ctrl+Option+F / Ctrl+Alt+F)、コマンドパレットから個別に切り替えます。
/focusを設定ファイルから変更するにはどうするか
viewMode を settings.json に書くか、セッション内で /config viewMode=focus のように key=value 形式で渡すと、ダイアログを開かずに1項目だけ変更できます。プロジェクト共有の既定値にしたいならプロジェクトスコープの設定ファイルに、個人の好みとして全プロジェクトに適用したいならユーザースコープの設定ファイルに書きます。
フォーカス表示中でもサブエージェントの個別ログを見る方法はあるか
フォーカス表示は起動数を1行に集約する表示であり、個々のサブエージェントのやり取りを消しているわけではありません。詳細を確認したいターンだけ通常表示やverbose表示に切り替えれば、集約される前の個別ログを参照できます。
まとめ
/focus はフルスクリーンレンダリングのCLIセッションで使える表示切り替えで、サブエージェントの起動数やバックグラウンドタスクの通知を集約して画面をすっきりさせます。設定は viewMode で上書きでき、チーム共通の既定にしたいならプロジェクト設定への記述が確実です。VS Code拡張の同名機能とは保存先も隠し方も別なので、両方の環境を使う場合は個別に切り替える前提で運用します。