結論:Claude Code のバックグラウンドセッションを使うと、長時間かかるリファクタやテスト生成を「裏で回しながら別の作業を続ける」運用が現実的になります。起動は claude --bg --exec '<command>'、管理は claude agents ダッシュボード、戻るときはアタッチ/デタッチで切り替えるのが基本形です。
- 要点1:セッションは
claude --bgで裏に逃がし、claude agentsで一覧・アタッチ・デタッチできる(公式 changelog 2.1.154 / 2.1.144)。 - 要点2:サブエージェントは自分の子サブエージェントを最大 5 階層までスポーンでき、フォアグラウンドも同じ 5 階層上限(2.1.172 / 2.1.181)。
- 要点3:
claude agents --jsonで稼働中セッションを JSON 出力でき、tmux 復元やステータスバーへ組み込める(2.1.145 / 2.1.169)。
対象読者:Claude Code を日常的に使う開発者・PM。複数タスクを並行で回したい人、CI 風に重い処理を投げて放置したい人。
今日やること:手元のセッションで一度 ←←(左矢印 2 回)を押し、claude agents の画面に入って挙動を体感してみてください。
動作確認環境は Claude Code v2.1.169〜v2.1.195(2026 年 6 月時点・macOS / Linux)です。本記事に出てくるコマンド・フラグ・キー操作は、すべて Anthropic 公式の Claude Code changelog に記載された挙動に揃えています。製品全体の位置づけは公式の Claude Code 概要ドキュメントも参照してください。バージョンによって挙動が変わる機能なので、手元の claude --version を確認しながら読み進めてください。
そもそもバックグラウンドセッションとは何か
正直、最初に「バックグラウンドセッション」という名前を聞いたときは & でシェルに投げるのと何が違うのか、ピンときませんでした。実際に使ってみて腹落ちしたのは、これは「会話コンテキストを保ったまま走り続ける Claude のセッション」を裏に逃がす仕組みだ、ということです。
通常のセッションはターミナルを閉じれば止まります。バックグラウンドセッションは デーモン(background service)に紐づいて走り続け、後からアタッチして続きを見たり、返信を送ったりできます。changelog 2.1.144 では「claude --bg やエージェントビューで起動したセッションが、対話セッションと並んで /resume に bg マーク付きで出るようになった」と明記されています。つまり、一度逃がしたセッションは見失わずに回収できる設計です。
使いどころは主に 3 つです。
- 重いリファクタ・移行 — 大規模コードベースの一括変更を投げて、自分は別ブランチのレビューを進める。
- テスト生成・実行待ち — テスト網羅を頼んで放置し、終わったら結果だけ確認する。
- 並行調査 — 複数の独立タスクを同時に走らせ、ダッシュボードで進捗を俯瞰する。
起動の 3 パターン(←←/–bg/! コマンド)
バックグラウンドへ逃がす方法は、大きく分けて 3 通りです。どれも公式 changelog に記載のある挙動です。
パターン1:対話セッションを ←← で裏に逃がす
すでに走っているセッションを途中でバックグラウンド化する場合、←←(左矢印を 2 回)でエージェントビューを開くのが一番手軽です。changelog 2.1.154 で「←← でエージェントビューを開く操作が Bedrock・Vertex・Foundry、テレメトリ無効環境でも動くようになった」とあり、環境を選ばず使えます。
なお、ターン実行中のセッションをバックグラウンド化する操作には Ctrl+B も使えます(2.1.178 で「実行中のサブエージェントを ctrl+b でバックグラウンド化しても最初からやり直されない」修正が入っています)。
パターン2:最初から –bg で起動する
「この処理は最初から裏で回す」と決まっているなら、起動時にフラグを付けます。
# 名前付きでバックグラウンド起動
claude --bg --name "refactor-auth"
# シェルコマンドをバックグラウンドセッションとして実行
claude --bg --exec '<command>'
claude --bg --exec '<command>' は changelog 2.1.154 に明記された形式で、「シェルコマンドをアタッチ/デタッチ可能なバックグラウンドセッションとして実行する」ためのものです。--name を付けると、2.1.144 の修正で「起動後の確認メッセージに名前がエコーされる」ようになっているので、後から claude agents の一覧で識別しやすくなります。
パターン3:claude agents 内で ! コマンドを打つ
エージェントビューに入った状態からも、その場でバックグラウンドジョブを起こせます。changelog 2.1.154 にこうあります。
claude agents: type! <command>to run a shell command as a background session you can attach to and detach from.
つまりダッシュボード上で ! npm run build のように打てば、それが 1 つのバックグラウンドセッションになります。私はこのやり方が一番好きで、ダッシュボードを「ジョブ投入のコンソール」として使えるのが快適です。
claude agents ダッシュボードの読み方と操作
claude agents はバックグラウンドセッション運用の中心です。ここで何ができるかを把握しておくと、迷子になりません。
一覧の見方
changelog 2.1.161 で「ジョブが fan-out(複数に分岐)しているとき、行に done/total を詳細の手前で表示する」ようになりました。さらに 2.1.163 では「peek で一番長く走っているアイテムを表示」する挙動が加わっています。つまり、並列で何本走っていて、どこまで終わったかが一覧から読み取れます。
PR を伴うジョブの場合、2.1.153 で「PR 列に単一なら PR #N、複数なら N PRs を表示」する改善が入っています。
ピン留めで idle でも生かす(Ctrl+T)
放置していると、メモリ圧迫時にセッションが落とされることがあります。これを防ぐのがピン留めです。changelog 2.1.147 に次のようにあります。
Pinned background sessions (
Ctrl+Tinclaude agents) now stay alive when idle, are restarted in place to apply Claude Code updates, and are shed under memory pressure only after non-pinned sessions.
要するに、Ctrl+T でピン留めしたセッションは idle でも生き残り、メモリ不足時も「ピンなし」のものが先に落とされるという優先順位になります。長く回したい本命ジョブはピン留めしておくのが安全です。
ダッシュボードからの dispatch にデフォルトを渡す
ダッシュボードから新規セッションを投げる際、各種フラグでデフォルトを指定できます。changelog 2.1.142 / 2.1.143 で claude agents に --add-dir --settings --mcp-config --plugin-dir --permission-mode --model --effort --dangerously-skip-permissions が追加されています。チームで MCP 構成やモデルを固定したいときに効きます。
スクリプト連携:claude agents –json で外部に出す
バックグラウンドセッションは「人が眺める」だけでなく、機械可読でも取り出せます。changelog 2.1.145 で次の機能が追加されました。
Added
claude agents --jsonto list live Claude sessions as JSON for scripting (tmux-resurrect, status bars, session pickers).
さらに 2.1.169 で「--all で完了済みセッションも含められ、id と state フィールドが追加された」、2.1.162 で「waitingFor がブロック理由(例:パーミッションプロンプト待ち)を示す」ようになっています。
# 稼働中セッションを JSON で取得
claude agents --json
# 完了済みも含めて取得
claude agents --json --all
これを使うと、ステータスバーに「いま裏で何本走っているか」を出したり、waitingFor を見て「パーミッション待ちのジョブだけ通知する」といった仕組みが組めます。tmux のステータス行に組み込むのが定番の使い方です。
サブエージェントの 5 階層ネストと並列の上限
バックグラウンドセッションと相性が良いのが、サブエージェントの多段化です。changelog 2.1.172 で「サブエージェントが自分の子サブエージェントをスポーンできる(最大 5 階層)」ようになりました。
Sub-agents can now spawn their own sub-agents (up to 5 levels deep).
注意したいのは、この 5 階層上限が フォアグラウンドにも適用される点です。2.1.181 で「フォアグラウンドのサブエージェントが無制限にネストしていた問題を修正し、バックグラウンドと同じ 5 階層上限を尊重するようになった」と明記されています。深掘りタスクを多段で投げても、際限なく増殖はしない設計です。
並列で多数走っているときの待ち時間表示も整備されています。2.1.154 で「ターン後タイマーが Waiting for N background agents/workflows to finish と表示し、結果処理後に累計時間を報告する」ようになりました。何本待ちなのかが画面で分かるのは地味に効きます。
サブエージェントを並列で使う設計そのものについては、Claude Code サブエージェント並列実行の解説記事と、複数エージェントをチーム化するAgent Teams ガイドも合わせて読むと、役割分担の設計が立体的に見えてきます。
worktree との関係:裏セッションが共有チェックアウトを壊さない仕組み
複数セッションが同じリポジトリを触ると、編集が衝突します。Claude Code はこれを worktree 分離でガードしています。changelog 2.1.169 に「バックグラウンドセッションは、worktree に入るまで共有チェックアウトへの編集がブロックされると伝えられる」とあり、いきなり共有作業ツリーへ書き込んで事故るのを防いでいます。
worktree を使いたくない(使えない)リポジトリ向けには、2.1.143 で worktree.bgIsolation: "none" 設定が追加され、「バックグラウンドセッションが EnterWorktree なしで作業コピーを直接編集できる」逃げ道も用意されています。並列開発と worktree の基本は、git worktree 並列開発のガイドが詳しいです。
セッションの移動・設定:/cd と引き継ぎフラグ
長く回すセッションでは「途中で作業ディレクトリを変えたい」ことがあります。これに対応するのが /cd です。changelog 2.1.169 で追加されました。
Added
/cdcommand to move a session to a new working directory without breaking the prompt cache mid-session.
ポイントは「プロンプトキャッシュを壊さずにディレクトリ移動できる」こと。キャッシュが飛ぶとトークンコストが膨らむので、セッションを生かしたまま移動できる意味は大きいです。
また、バックグラウンド化したセッションが MCP 構成やモデルを引き継ぐかどうかも整理されています。2.1.143 で「/bg と ← デタッチが --mcp-config --settings --add-dir --plugin-dir --fallback-model を respawn 越しに保持する」よう修正されており、裏に逃がした瞬間に設定が抜け落ちる、という事故が起きにくくなっています。
【要注意】よくある失敗パターンと回避策
失敗1:裏セッションを起動しただけで放置し、見失う
❌ claude --bg で名前を付けず起動し、後から「どれだっけ」となる。
⭕ claude --bg --name "<わかる名前>" で起動し、claude agents の一覧で識別する。
なぜ重要か:名前なしジョブが複数並ぶと、アタッチ先を間違えます。2.1.144 で名前のエコー表示が入ったのも、この混乱を減らすためです。
失敗2:本命ジョブをピン留めせず、メモリ圧迫で落とす
❌ 重い移行ジョブを idle で放置 → メモリ不足で shed される。
⭕ Ctrl+T でピン留めし、idle でも生かす。
なぜ重要か:changelog 2.1.147 の通り、ピンなしセッションが先に落とされます。長時間ジョブはピン留めが前提です。
失敗3:裏セッションが共有チェックアウトを編集すると思い込む
❌ worktree に入る前提を知らず、「編集がブロックされた」と慌てる。
⭕ worktree 分離ガードの存在を理解し、必要なら EnterWorktree、不可なら worktree.bgIsolation: "none" を検討する。
なぜ重要か:このガードは事故防止のための仕様です。挙動を知らないと「壊れた」と誤認しがちですが、正しくは「守られている」状態です。
失敗4:古いバージョンの挙動で語る
❌ 一度覚えたキー操作・フラグをそのまま使い続ける。
⭕ 公式 changelog で、自分のバージョンの挙動を確認する。
なぜ重要か:バックグラウンド周りは 2.1.142〜2.1.195 の間だけでも修正・追加が非常に多い領域です。claude --version と changelog の突き合わせを習慣にしてください。
ヘッドレス自動化との組み合わせ
バックグラウンドセッションは「手元で裏に回す」用途ですが、CI やバッチで完全無人運用したいなら、SDK / ヘッドレス側の知識も要ります。claude agents --json の出力をジョブ監視に使い、ヘッドレス実行と組み合わせると、夜間バッチで重い処理を投げる構成が作れます。詳しくはヘッドレス自動化・SDK ガイドと、保存・通知を自動化するフック自動化ガイドを参照してください。ヘッドレス実行の公式仕様は Claude Code ヘッドレスドキュメントにまとまっています。
チームでの Claude Code 運用設計に伴走します
バックグラウンドセッションやサブエージェント並列を、自社の開発フローにどう組み込むか——導入設計から定着まで、Uravation の Claude Code 個別指導・導入支援で一緒に詰められます。無料相談はこちらから、現状の課題をお聞かせください。
導入のロードマップ(個人 → チーム)
Phase 1(最初の 1 週間):1 人で ←← とアタッチ/デタッチに慣れる。重いタスクを 1 本だけ裏に回す運用から始める。
Phase 2(2〜3 週目):--name と Ctrl+T ピン留めをルール化。claude agents --json を tmux ステータスに出して可視化する。
Phase 3(1 ヶ月以降):ダッシュボード dispatch に --mcp-config --model 等のデフォルトを与えてチーム標準化。サブエージェント多段(最大 5 階層)で並列タスクを設計する。
よくある質問(FAQ)
Q1. バックグラウンドセッションは & でシェルに投げるのと何が違いますか?
会話コンテキストを保ったまま走り続け、後からアタッチして続きを見たり返信したりできる点が違います。/resume に bg マーク付きで並び(changelog 2.1.144)、見失いません。
Q2. 起動コマンドは何ですか?
最初から裏で回すなら claude --bg --name "<名前>"、シェルコマンドを裏セッション化するなら claude --bg --exec '<command>' です(changelog 2.1.154)。対話中なら ←← でエージェントビューに逃がせます。
Q3. サブエージェントは何階層までネストできますか?
最大 5 階層です(changelog 2.1.172)。この上限はフォアグラウンドのサブエージェントにも適用されます(2.1.181)。
Q4. 裏セッションが idle で消えないようにするには?
claude agents 内で Ctrl+T を押してピン留めします。ピン留めしたセッションは idle でも生き残り、メモリ不足時も「ピンなし」のものが先に落とされます(changelog 2.1.147)。
Q5. 稼働状況をスクリプトから取得できますか?
はい。claude agents --json で稼働中セッションを JSON 取得でき(2.1.145)、--all で完了済みも含められます(2.1.169)。tmux 復元やステータスバー連携が想定用途です。
まとめ
バックグラウンドセッションは、Claude Code を「1 本ずつ待つツール」から「裏で並行して回す作業基盤」に変える機能です。claude --bg で逃がし、claude agents で俯瞰し、Ctrl+T で本命を守る——この 3 つだけ押さえれば、今日から運用を始められます。本記事のコマンド・キー操作はすべて公式 changelog に基づいていますが、バージョン更新が速い領域なので、必ず手元の claude --version と 公式 changelog を突き合わせてください。
著者プロフィール
佐藤傑(さとう・すぐる)。株式会社Uravation代表取締役。X(@SuguruKun_ai)フォロワー約10万人。100社以上の企業向けAI研修・導入支援を実施。著書『AIエージェント仕事術』(SBクリエイティブ)。