Claude Code は、いま入力している作業を止めずに別の仕事を走らせられます。claude --bg でセッションを最初から背後に置き、claude agents で開く agent view に一覧して、必要なときだけ手元のターミナルへ引き寄せる、という流れです。本記事では公式ドキュメントの Agent view(リサーチプレビュー)に基づき、起動の入口・一覧画面の操作・ターミナルからの管理コマンド・worktree による分離までを順に説明します。
バックグラウンドセッションとは
バックグラウンドセッションは、ターミナルを占有せずに動き続ける Claude Code のセッションです。通常のセッションは起動したターミナルの中で対話しますが、バックグラウンドに置いたセッションは自分の裏で作業を進め、こちらは別の作業を続けられます。
この仕組みが効くのは、待ち時間が長い仕事です。テストの調査、依存関係の更新、大きめのリファクタリングのように「投げてしばらく放っておく」タイプの作業を複数同時に走らせ、終わったものから見に行く、という進め方ができます。
セッションには状態があり、agent view の一覧では次のように区別されます。
| 状態 | 意味 |
|---|---|
| Working | ツールの実行や生成が進行中 |
| Needs input | 承認や回答を待って止まっている |
| Idle | 次の指示を受け付けられる |
| Completed | 作業が正常に終わった |
| Failed | エラーで終わった |
| Stopped | 停止させた |
プロセスが生きているかどうかは状態とは別に示されます。プロセスが終了していても、結果を覗いたり返信したりはできます。
セッションを背後に回す3つの入口
入口は3つあり、どれを使っても同じバックグラウンドセッションになります。
1. シェルから直接始める
claude --bg "your task description"
最初からバックグラウンドで起動し、すぐにプロンプトが戻ります。投げっぱなしにしたい仕事はこれが最短です。
2. agent view から投げる
claude agents
一覧画面を開き、プロンプトを入力して Enter を押すと、新しいバックグラウンドセッションが立ち上がります。すでに走っているセッションを見ながら次の仕事を足せるので、複数を並べて進めるときはこちらが扱いやすくなります。
3. いま開いているセッションを背後へ回す
/background
# または
/bg "additional instruction"
対話中のセッションの中でこのコマンドを打つと、そのセッションがそのままバックグラウンドへ移ります。/bg に文字列を渡すと、背後へ回すのと同時に追加の指示を与えられます。空のプロンプトで ← を押しても、現在のセッションを背後に回して agent view を開く動作になります。
agent view の見方と操作
claude agents で開く画面は、走っているセッションを行として並べた表です。キー操作は次のとおりです。
| キー | 動作 |
|---|---|
↑ / ↓ | 行を移動する |
Enter | 選択中のセッションへ接続する、または新規に投げる |
Space | peek パネルを開閉する |
→ | 選択中のセッションへ接続する |
Ctrl+S | グループ分けを切り替える(状態別 / ディレクトリ別) |
Ctrl+T | セッションをピン留め・解除する |
Ctrl+R | セッションの名前を変える |
Ctrl+X | セッションを停止する。もう一度押すと削除する |
Shift+↑ / Shift+↓ | 並び順を入れ替える |
Esc | 終了、またはパネルを閉じる |
? | すべてのショートカットを表示する |
peek で中身だけ見る
行を選んで Space を押すと peek パネルが開きます。待ち状態なら「何を聞かれているか」、終了済みなら結果、作業中なら状況の1行が出ます。そのまま返信を入力して Enter を押せば、一覧を離れずに答えられます。Tab で返信候補が出ます。
接続と切り離し
会話の全体を見たいときは Enter か → で接続します。接続するとターミナルが通常の対話セッションになります。戻るには、空のプロンプトで ← を押すか、/exit を実行するか、Ctrl+Z(元の場所へ戻る)か、Ctrl+C の2回押しを使います。
投げ方のバリエーション
<agent-name> <prompt> # サブエージェントを指定して投げる
@<agent-name> <prompt> # 同上
@<repo> <prompt> # ディレクトリを指定して投げる
! <command> # シェルコマンドをバックグラウンドジョブとして走らせる
/model opus # このあとの投入に使うモデルを決める
/model default # 既定へ戻す
外部エディタで長いプロンプトを書きたいときは Ctrl+G を使います。
ターミナルからの管理コマンド
agent view を開かずに、シェルから直接扱うこともできます。セッションIDは claude --bg で起動したときに表示され、~/.claude/jobs/ 配下のディレクトリ名と一致します。
claude attach <id> # セッションをこのターミナルで開く
claude logs <id> # 直近の出力を表示する
claude stop <id> # セッションを停止する
claude respawn <id> # 会話を保ったままセッションを再起動する
claude respawn --all # すべてのセッションを再起動する
claude rm <id> # 一覧からセッションを取り除く
claude agents --cwd <path> # 指定ディレクトリのセッションだけ見る
claude agents --json # セッション一覧を JSON で出す
claude daemon status # バックグラウンドの管理プロセスの状態を見る
claude daemon stop --any # バックグラウンドサービスを止める
claude agents --json は、スクリプトから状態を拾いたいときに使えます。claude respawn は会話の内容を保ったまま再起動するので、モデルを変えてやり直したいときに便利です。設定したモデルは再起動後も引き継がれます。
起動時の設定を引き継ぐ
agent view を開くときにフラグを渡すと、そこから投げるセッションにも設定が伝わります。
claude agents --permission-mode plan --model opus --effort high
claude agents --settings ./config.json --add-dir ../lib
引き継がれるのは --mcp-config、--settings、--add-dir、--plugin-dir、--fallback-model です。権限モードについては権限モードの選び方もあわせてご覧ください。
worktree 分離と注意点
バックグラウンドセッションは、ファイルを編集する前に .claude/worktrees/ 配下の独立した git worktree へ自動的に移動します。複数のセッションが同じリポジトリで同時に手を動かしても、互いの編集を踏まないようにするためです。
この分離が不都合な場合は、.claude/settings.json で切れます。
{
"worktree": {
"bgIsolation": "none"
}
}
切る前に、なぜ分離されているのかを考えてください。分離を外すと、並列に走るセッションが同じファイルを同時に書きます。
把握しておくべき制約
- レート制限は並列数に比例して減ります。 10 セッションを同時に走らせれば、消費もおよそ10倍の速さになります。「並べれば速い」は使用量の話では成り立ちません。
- セッションはローカルで動きます。 マシンをシャットダウンすると止まります。スリープでは維持されます。
- agent view でセッションを削除すると、Claude が作った worktree も消えます。 残したい変更は先にコミットしてください。
- agent view はリサーチプレビューです。 画面やショートカットは今後変わる可能性があります。
並列作業そのものについてはworktree で Claude Code を並列実行する、セッションの再開や命名についてはClaude Code のセッション管理で扱っています。