/fork(フォーク)

スラッシュコマンド
/fork
フォーク
いまの会話を丸ごと引き継いだ分身(fork subagent)を裏で走らせて、コマンドの後ろに書いた指示の脇道タスクをやらせるコマンド。自分は本筋の会話を続けたまま、分身の最終結果だけが後から届く

Claude Codeで長い会話の途中に、本筋を止めずに脇道タスクを別で進めたい人向け

料理ブログの検索を作っている途中でテスト下書きも欲しくなった時のように、本筋の会話を止めずに脇道タスクを片付けたい場面で叩く。会話の積み重ねを分身に引き継がせたいので、背景を説明し直したくない時にこれを使う

Claude Codeで長い会話を続けていると、本筋とは別に「ちょっとこっちも試したい」という脇道タスクが急に湧いてきます。たとえば料理ブログを組んでいる最中に「いまの変更ぶんのテスト下書きも作っておきたい」みたいな割り込みです。/fork はその脇道タスクを、いまの会話を丸ごと受け継いだ分身(fork subagent)に裏で片付けてもらうコマンドです。

私はここが好きで、自分は本筋の会話を止めずに進められます。分身がやった作業ログは本筋に流れ込まず、最終結果だけが後から会話に届きます。

噛み砕くと、会議中に「議事録だけ別の人に頼む」感じ

イメージとしては、会議の途中で隣の席の同僚に「この件の議事録だけ、いまの話を聞いてた前提でまとめといて」と耳打ちする感じです。同僚はこれまでの話を全部聞いているので、いちいち背景を説明し直す必要がありません。

あなたは会議を続けたまま、しばらくすると同僚が「まとめできました」と紙だけ渡してくる。途中のメモ取りや書き損じはあなたの机には乗りません。これが /fork です。

ここがポイント。背景の引き継ぎがゼロで済む。

大事な前提:使えるバージョンが2段階で分かれている

ここは古い記事や記憶とズレやすいので先に潰しておきます。fork の機能自体が動くのは Claude Code v2.1.117 以降です。そして /fork というコマンドが最初から使えるのは v2.1.161 以降です。

v2.1.161 より前のバージョンだと、/fork を使うには設定値 CLAUDE_CODE_FORK_SUBAGENT1 にしておく必要がありました。さらにもっと前は、/fork は実は /branch の別名でした。だから昔の解説を読むと挙動の説明が今と食い違います。

新しめのバージョンを使っているなら、設定値をいじらなくてもそのまま /fork で起動できます。

「料理ブログ」を例に、実際の手順を見る

世界各国の家庭料理を紹介する料理ブログを、Claude Codeと一緒に開発している場面で進めます。レシピの検索機能をちょうど作り込んでいる途中だとします。

ステップ1: 本筋の作業を進めておく

まずはレシピ検索のコードをClaudeに書いてもらっている、いつもの状態です。会話には設計の前提やこれまでの判断が積み上がっています。

レシピ検索、材料名でも料理名でも引っかかるようにして

ステップ2: 脇道タスクが湧く

検索を作っている途中で「いまの検索ロジック、テストも書いておきたいな」と思いつきます。でも本筋の検索の手を止めたくない。ここが /fork の出番です。

会話を中断せずに振れる。これが効きます。

ステップ3: /fork に脇道タスクを渡す

directive(分身への指示文)を後ろに付けて叩きます。公式が出している例はこれです。

/fork draft unit tests for the parser changes so far

料理ブログ版に置き換えるとこうなります。

/fork ここまでの検索ロジックのテスト下書きを作って

分身の名前は、directiveの最初の言葉から自動で付きます。

ステップ4: 分身が裏で走り出す

叩くと、入力欄の下に小さなパネルが出てきます。そこに分身の行が1行増えて、裏で作業が回り始めます。あなたは本筋のレシピ検索の会話をそのまま続けられます。

ここで初心者がやりがちな勘違いがあります。分身がファイルを読んだり試し書きしたりする細かいやり取りが、本筋の会話にダラダラ流れ込んでくると思いがちです。流れ込みません。最終結果だけが後で1メッセージとして届きます。だから本筋の会話が散らからずに済みます。

ステップ5: 走っている分身を見たり操作する

パネルでは矢印キーで行を移動し、Enterでその分身のやり取りを開いて追加の指示を送れます。終わった分身は x で片付け、まだ動いている分身も x で止められます。入力欄に戻りたいときは Esc です。

ステップ6: 結果が会話に届く

分身がテスト下書きを書き終えると、その成果が本筋の会話にメッセージとして到着します。あなたはレシピ検索の続きをやりながら、出来上がったテスト下書きを受け取れる、という流れです。

つまり /fork は何をしてくれるのか

  • やってくれる: いまの会話を丸ごと引き継いだ分身に、背景の説明ゼロで脇道タスクを渡し、裏で進めて最終結果だけ返す
  • やってくれない: あなた自身を別ルートに連れて行くことはしない(それは /branch の役目)。分身の中からさらに分身を作ることもできない
  • 意味が薄い場面: 会話の積み重ねが要らない単発の調べ物。背景なしで足りるなら普通の分身のほうが軽い

使いどころ3シナリオ(料理ブログで再現)

シナリオ1: 検索を作りながらテストも欲しいとき

レシピ検索のコードを詰めている最中に、テスト下書きが欲しくなった場面です。/fork ここまでの検索のテスト下書きを作って と振れば、検索の手を止めずにテストが裏で出来上がります。会話に積んだ「材料名でも料理名でも引く」という前提を分身が分かっているので、説明し直しがいりません。

シナリオ2: 2つの実装方針を並べて比べたいとき

レシピのカード並びを「人気順」にするか「新着順」を初期値にするかで迷ったとします。本筋では人気順で進めつつ、/fork 新着順を初期値にした場合のカード並びを試して と分身に別案を走らせる。同じスタート地点から枝分かれさせて、両方の結果を見比べられます。

迷ったら両方やらせる。これが地味に強い。

シナリオ3: 本筋を汚さず重い調査を投げたいとき

「使っている画像読み込みライブラリの最新の書き方を確認したい」みたいな、ログやファイル中身が大量に出る調査です。本筋でやると会話が膨らんで性能が落ちます。/fork 画像読み込みの今の推奨の書き方を調べて と分身に渡せば、ゴチャゴチャした途中経過は分身側に残り、本筋には結論だけ返ります。

初心者が踏みやすい落とし穴

  • /branch と取り違える。最大の勘違いです。/branch はあなた自身が会話のコピーに乗り移って本筋を一時離脱します。/fork は分身が裏で働き、あなたは本筋に残ります。「自分が動くか、分身が動くか」で覚えると間違えません。
  • 昔の知識のまま使う。v2.1.161より前は /fork/branch の別名でした。古い記事の説明は今と挙動が違うので、バージョンを確認してから読んでください。
  • 普通の分身と同じだと思う。普通の分身はまっさらな状態から始まり、これまでの会話を知りません。fork は会話を全部引き継ぐので、背景の説明がいらないのが決定的な差です。
  • 分身の途中経過が会話に流れ込むと思う。流れ込みません。届くのは最終結果1つだけ。だから本筋のやり取りが散らからずに済みます。
  • 許可の確認がどこに出るか戸惑う。裏で動く普通の分身は許可が要る操作を自動で拒否しますが、fork は許可の確認があなたの手元の画面に出てきます。見落とすと分身が止まったまま待ち続けます。
  • fork から fork を作ろうとする。分身の中からさらに分身を作ることはできません。枝分かれは本筋からだけ生やせます。
  • directiveを書き忘れる/fork の後ろには「分身に何をやらせるか」の指示文が要ります。後ろを空にすると、何を頼んだか伝わりません。

書き方

/fork <分身にやらせる指示文>

やってみるとこうなる

入力

/fork ここまでの検索ロジックのテスト下書きを作って

出力例

入力欄の下にパネルが出て分身の行が増え、裏で作業が走り出す。あなたは本筋の会話を続けられ、分身が終わると成果が本筋にメッセージとして届く。途中の作業ログは本筋には流れ込まず、最終結果だけが返る

このページに出てきた言葉

fork subagent(フォーク)
いまの会話を丸ごと引き継いで、指示した脇道タスクだけを裏で進める分身。普通の分身と違い背景の説明がいらない
directive(指示文)
<code>/fork</code> の後ろに書く「分身にやらせること」。最初の言葉から分身の名前が自動で付く
/branch
会話のコピーに自分が乗り移って別ルートを試すコマンド。/fork(分身が裏で働く)とは逆向き
CLAUDE_CODE_FORK_SUBAGENT
パソコンが起動時に覚えておく設定値の1つ。<code>1</code> でfork有効、<code>0</code> で無効。v2.1.161以降は触らなくても <code>/fork</code> が使える
パネル
入力欄のすぐ下に出る一覧。本筋の会話の行と走っている分身の行が並ぶ。矢印キーで移動、Enterで開く、xで片付け・停止、Escで入力欄に戻る

関連項目

公式ドキュメント

https://code.claude.com/docs/en/sub-agents#fork-the-current-conversation

-

← 戻る