Claude Code、複数のエージェントを1画面で管理する「Agent View」を公開
(code.claude.com)デモ動画 > https://youtu.be/-INveHwbRz4
TL;DR
claude agents の1行で、バックグラウンドの Claude Code セッション群を1画面から起動・監視・応答
各セッションはターミナルがなくても存続 → supervisor プロセスが別で管理
worktree によりファイル競合を自動分離、PR まで開くと CI 状態も行に表示
Claude Code v2.1.139+ が必要、現在は Research Preview
中核となる概念
「エージェントコーディング時代」に自然に浮かぶ疑問: セッション10個をどう同時に回すのか?
従来は tmux + 複数ウィンドウ + 進行状況が見えない状態で認知負荷が高かった
Agent View はそれを1画面のテーブルに整理。各行にセッション名、現在何をしているか、最終変更時刻を表示
状態アイコンの見方
Animated ✽ - Working、ツール実行中 / 応答生成中
Yellow - Needs input、権限の判断や質問待ち
Dimmed - Idle、入力待ちだが特定の質問で止まっているわけではない
Green - Completed、正常完了
Red - Failed、エラーで終了
Grey - Stopped、Ctrl+X または claude stop で停止
アイコンの形でプロセスの生存有無も表示:
✻(または作業中アニメーション ✽)= プロセス稼働中、すぐ応答可能
∙ = プロセスは終了しているが、peek / reply / attach 時に自動で続きから再起動
✢ = /loop セッションが次の iteration までスリープ中(実行回数とカウントダウンを表示)
1行要約は Haiku 級モデルで生成されるため、トランスクリプトを開かなくても状態を把握できる。通常の利用規約・課金にそのまま含まれる。
ワークフロー
Dispatch: 下部入力欄にプロンプト → Enter。名前は自動付与
Peek: 行で Space → 最新出力、PR リンクを確認。多肢選択の質問なら数字キーで回答、それ以外でブロック中のセッションには Tab で推奨回答を補完して送ることも可能。! 接頭辞を付ければ Bash コマンドも実行できる
Attach: Enter または → キー。完全なインタラクティブセッションに入る。離席中の要約(recap)を Claude が先に表示
Detach: 空の入力で ← → バックグラウンド維持。Ctrl+C、Ctrl+D、Ctrl+Z、/exit でもバックグラウンドを維持。セッションを本当に終了するには /stop
既存のインタラクティブセッションをバックグラウンドへ送るには、その中で /bg を実行するか、空のプロンプトで ← を押せばよい。いったん Agent View を使うと、どのセッションからでも空のプロンプトで ← を押して Agent View に入れる。
ディスパッチのコツ
<subagent-name> <prompt> - 先頭の単語がサブエージェントなら、それがメインになる
@<agent-name> - プロンプト中でメンションしてもメインエージェントとして動作
@<repo> - 親ディレクトリで Agent View を開き、特定の repo へルーティング
/<skill> - Skill ディスパッチ(反復作業のパッケージ化に向く)
#1234 または PR URL - すでにその PR を作業中のセッションがあればそれを選択し、なければ新規ディスパッチ
Shift+Enter - ディスパッチして即 attach
シェルから直接: claude --bg "...", claude --agent code-reviewer --bg "..."
リストのフィルタリング
入力欄でそのままタイプすると、ディスパッチではなくフィルタとして動作:
a:<name> - そのエージェントを実行中のセッション
s:<state> - 状態別フィルタ(例: s:blocked は入力待ちのものだけ)
#<number> または PR URL - その PR を作業中のセッション
主なショートカット
↑ / ↓: 行移動
Enter: 選択セッションに attach、入力にテキストがあればディスパッチ
Space: peek パネルの開閉
Shift+Enter: ディスパッチ後すぐ attach
Alt+1~Alt+9: そのグループの N 番目のセッションへ即 attach
Ctrl+S: 状態別 / ディレクトリ別グループ切替
Ctrl+T: セッションのピン固定 / 解除
Ctrl+R: セッション名変更
Ctrl+G: $EDITOR でプロンプト作成
Ctrl+X: 停止(2秒以内にもう一度押すと削除)
Shift+↑ / Shift+↓: 並び順変更
?: 全ショートカット表示
ファイル競合は worktree で自動分離
Agent View からディスパッチされたセッションは、編集が必要になると自動で .claude/worktrees/ 配下に git worktree を作成
セッション削除時には worktree も一緒に削除 → merge / push しないと失われるので注意
サブエージェントの frontmatter に isolation: worktree を入れておけば常に分離
Supervisor アーキテクチャ
バックグラウンドセッションはターミナルではなく、ユーザーごとの supervisor プロセスの子として動作
1時間以上 idle の完了済みセッションは、プロセスだけ停止してディスク上には残る → 次回接続時に続きから再起動
supervisor 自体は全セッションが終わると終了し、次のバックグラウンドディスパッチ時に再び起動
auto-update 時には新しいバイナリで自動再起動し、バックグラウンドセッションはそのまま存続
状態ファイルの場所: ~/.claude/daemon.log(supervisor ログ)、~/.claude/daemon/roster.json(実行中セッション一覧)、~/.claude/jobs/<id>/state.json(セッション別状態)
完全に無効化するには disableAgentView 設定または CLAUDE_CODE_DISABLE_AGENT_VIEW 環境変数を使える(組織レベルの管理にも対応)
シェルコマンド
claude agents # Agent View を開く
claude attach <id> # セッションに接続
claude logs <id> # 最新出力
claude stop <id> # 停止(= claude kill)
claude respawn <id> # 停止したセッションを再起動
claude respawn --all # スリープ / シャットダウン後にすべて復活
claude rm <id> # リストから削除
制限事項
料金はそのまま発生 - 10並列ならクォータを10倍の速度で消費
バックグラウンドセッションはローカルマシン上で動作 - スリープ / シャットダウンで停止
worktree はセッション削除時に一緒に削除される
まだコメントはありません。