Claude Codeの/backgroundと/stopコマンドの使い方
/backgroundは今の会話をバックグラウンドエージェントへ送ってターミナルを解放し、/stopはそのセッションを終了します。デタッチとの違いも解説します。
Claude Codeの/backgroundと/stopとは
/background(エイリアス/bg)は、今の対話セッションをバックグラウンドエージェントとして走らせたまま切り離し、手元のターミナルを解放するコマンドです。プロンプトを添えれば、切り離す前にもう1つ指示を渡せます。切り離したセッションはclaude agentsで開くagent viewから状態を確認できます。ターミナルを塞いだままClaudeの応答を待つ代わりに、時間のかかるタスクほど/backgroundで手放してしまう、という使い方が基本形です。
/stopは、その逆でセッションを終了させるコマンドです。ただしアタッチ中(そのセッションに入っている状態)でしか実行できません。停止してもトランスクリプトと使用中のworktreeは残ります。似た見た目のコマンドに/exitがありますが、両者は別の操作で、後述するとおり結果も変わります。
紛らわしいのは、Claude Codeには「1つのシェルコマンドをバックグラウンドで実行する」機能も別に存在する点です。こちらはBashツールが1コマンドを非同期実行するだけで、新しいエージェントセッションは生まれません。/backgroundが切り離すのは会話全体、バックグラウンドシェルコマンドが非同期化するのは1つのコマンドという違いです。ビルドやテストの実行を裏で走らせたいだけなら後者で足りますし、会話ごとターミナルから解放したいなら/backgroundを使います。
/backgroundを実行すると何が起きるか
/backgroundを実行すると、保存済みの会話から新しいプロセスが立ち上がり、進行中の作業がそこへ引き継がれます。実行中のバックグラウンドシェルコマンド、バックグラウンドで動いているサブエージェント、動的ワークフロー、/loopで作ったスケジュールタスクはすべて引き継がれ、そのまま動き続けます。
一方で引き継げない作業もあります。実行中のmonitorツールのように、状態がプロセス内部にしか存在しないものは停止します。引き継げない作業がある状態で/background(またはターミナルを離れる操作)を実行すると、Claude CodeはBackground this session?という確認ダイアログを出し、何が止まるかを教えてくれます。/tasksで今動いているものを確認してから、続行するか判断できます。
引き継ぎ自体を止めたい場合は、CLAUDE_DISABLE_ADOPT=1環境変数を設定しておくと、バックグラウンド化のたびに確認を求められるようになります。MCPサーバーの設定や--add-dirで追加したディレクトリ、--fallback-modelなどの起動フラグは、引き継ぎの可否に関わらずそのままバックグラウンドセッションに引き継がれます。
バックグラウンド化した直後のセッションは、進行中の作業をそのまま抱えた状態で新しいプロセスとして立ち上がります。ここが単なる「ターミナルを閉じる」操作との違いです。ターミナルを閉じるだけでは対話セッションそのものが終了してしまいますが、/backgroundを経由すれば会話とその中で走っている作業を保ったまま切り離せます。
デタッチと/stopは別の操作
←、Ctrl+Z、/exit、素早く2回押すCtrl+CやCtrl+Dは、いずれもデタッチです。デタッチはセッションを終了させません。あなたがターミナルから離れるだけで、セッションはバックグラウンドで動き続けます。
これに対して/stopは、セッションそのものを終了させる操作です。「もう結果が出た」「この方向性は使わない」というときにセッションを片付けるために使います。アタッチしていないセッションを外側から止めたい場合は、shellからclaude stop <id>(エイリアスclaude kill)を実行します。agent viewの一覧画面からも、行を選んでCtrl+Xを押せば同じように停止できます。
停止したセッションのトランスクリプトとworktreeはすぐには消えません。worktreeはセッションをclaude rmで削除したときに一緒に消える扱いなので、変更を残したいなら停止後もマージまでは削除しないようにします。
この2つを混同しやすいのは、どちらも「セッションを片付ける」という点で似ているからです。目安としては、少し離れるだけなら/exitや←のデタッチ、そのタスクはもう終わりだと判断したら/stop、と考えると迷いにくくなります。/stopし忘れたセッションが何本も動いたままだと、後述のとおり利用枠の消費につながるので、片付け忘れには注意が必要です。
使い分け早見表
| 操作 | 実行できる場所 | 効果 | セッションは動き続けるか |
|---|---|---|---|
/background(/bg) | 実行できる場所対話セッション内 | 効果今の会話をバックグラウンドへ送り、ターミナルを解放する | セッションは動き続けるか動き続ける |
← / Ctrl+Z / /exit | 実行できる場所アタッチ済みのバックグラウンドセッション内 | 効果デタッチしてagent viewや元の場所に戻る | セッションは動き続けるか動き続ける |
/stop | 実行できる場所アタッチ済みのバックグラウンドセッション内でのみ | 効果セッションを終了する。トランスクリプトとworktreeは残る | セッションは動き続けるか停止する |
claude stop <id> | 実行できる場所shellから(アタッチ不要) | 効果指定したセッションを外側から停止する | セッションは動き続けるか停止する |
こんなときに使う
- 長時間かかりそうなタスクを渡したあと、他の作業に移りたいとき —
/backgroundで切り離し、claude agentsでときどき様子を見る - 出した結果を確認し終えて、そのセッションはもう使わないと決めたとき — アタッチした状態で
/stop - 「試してみたが方向性が違った」バックグラウンドセッションを外側からまとめて片付けたいとき — shellから
claude stop <id>を並べて実行する
たとえば、失敗しているテストスイートの原因調査と修正をClaudeに任せたいが、原因がすぐには分からず時間がかかりそうだとします。この場合、指示を出したあとに/background(または/bg)を実行すれば、その場でターミナルが解放され、別の作業に移れます。しばらくしてからclaude agentsを開けば、調査が終わって修正を提案しているのか、まだ原因を追っている最中なのかが行の状態で分かります。修正が終わってPRまで作られていれば、そこでアタッチして最終確認し、必要なければ/stopでセッションを片付けます。ターミナルを1つ占有し続けずに、複数のタスクを並行して進められるのがこの組み合わせの利点です。
状態アイコンやキーバインド、agent view全体の操作はagent viewガイドにまとめてあります。会話をコピーして裏で並走させたい場合は/backgroundではなく/forkが向いており、その違いは/branchコマンドの記事で/fork・/subtaskとあわせて整理しています。
よくある質問
バックグラウンドセッションの中で/exitを実行するとどうなりますか
セッションは終了せず、デタッチするだけです。/exit(エイリアス/quit)は通常の対話セッションではCLIそのものを終了させますが、アタッチ中のバックグラウンドセッションでは挙動が変わり、←と同じようにagent viewへ戻るだけになります。セッションを本当に終了させたいなら/stopを使います。
並列にバックグラウンドセッションを走らせるとコストはどうなりますか
バックグラウンドセッションも、実際に動いている間は通常の対話セッションと同じように利用枠を消費します。複数のセッションを同時に走らせれば、その間は消費もちょうど本数分だけ重なります。ただし完了して誰もアタッチしないまま1時間ほど経つとプロセスは自動的に止まるため、放置したセッションが際限なく利用枠を消費し続けるわけではありません。とはいえ結果を確認し終えたセッションはこまめに/stopで片付けておくほうが、状況を把握しやすく安心できます。
PCをスリープ・シャットダウンしても動き続けますか
スリープ中は動作を続け、復帰すると処理を再開します。ただしシャットダウンするとバックグラウンドセッションは停止します。停止したセッションはclaude respawn <id>で、会話の続きを保ったまま再起動できます。出先のノートPCを閉じるだけならスリープ扱いで済むことが多いですが、電源を落とす運用では再起動の手間が発生する点は覚えておくと安心です。
停止したセッションの出力はあとから確認できますか
claude logs <id>で直近の出力を表示できます。アタッチして全体の会話を見るほどではないが、結果だけざっと確認したいときに使える軽量な手段です。
今のセッションがバックグラウンドかどうかはどう確認しますか
/statusを実行すると、「Session kind」欄に表示されます。アタッチ中のバックグラウンドセッションはbackground job · attached、誰もアタッチしていない状態ならbackground job · unattended、通常の対話セッションはinteractiveと表示されます。
/stopとclaude rmは何が違いますか
/stop(やclaude stop <id>)はセッションのプロセスを止めるだけで、トランスクリプトとworktreeはそのまま残ります。停止済みのセッションは一覧上でグレー表示になりますが、あとでclaude respawnすれば会話を再開できます。一方claude rm <id>はセッション自体を一覧から削除する操作で、Claudeが作ったworktreeも安全に削除できる場合は一緒に消えます。作業内容をまだ残したい段階では/stopまで、完全に片付けたいときだけclaude rm、という使い分けになります。「あとで見返すかもしれない」セッションは/stop止まりにしておき、本当に不要だと確信できたものだけclaude rmで消すのが安全です。
誰もアタッチしないまま放置しているとセッションはどうなりますか
バックグラウンドセッションは、完了して誰もアタッチしていない状態が1時間ほど続くと、リソース節約のためプロセスだけ止まります。会話やworktreeは消えず、次にpeek・reply・attachのいずれかをした時点で新しいプロセスが立ち上がり、続きから再開します。Ctrl+Tでピン留めしたセッションはこの自動停止の対象から外れ、アイドル中もプロセスが動き続けます。これは/stopとは別の、省リソースのための自動的な仕組みです。
まとめ
/backgroundは会話全体をバックグラウンドエージェントへ切り離してターミナルを解放し、/stopはアタッチ中のセッションを終了させます。デタッチ(←・Ctrl+Z・/exit)はセッションを止めない点が/stopとの最大の違いです。引き継げない作業があるときはBackground this session?ダイアログが教えてくれるので、/tasksで中身を確認してから判断すれば、意図せず処理を止めてしまう事故を避けられます。
複数のタスクを並行して進めたいなら/backgroundでどんどん切り離し、claude agentsでまとめて様子を見る運用が基本です。ただし並列に走らせた分だけ利用枠の消費も早くなるので、使い終わったセッションはこまめに/stopかclaude rmで片付けておくと、あとから「いつの間にか動きっぱなしのセッションが何本もあった」という事態を防げます。