claude agents で開くエージェントビューは、すべてのバックグラウンドセッションの 1 つの画面です。実行中のもの、入力が必要なもの、完了したものが表示されます。新しいセッションをディスパッチし、トランスクリプトをスクロールする代わりに一目でセッションの状態を確認し、セッションが必要とするときだけ介入します。各バックグラウンドセッションは完全な Claude Code の会話であり、ターミナルが接続されていなくてもバックグラウンドで実行し続けるため、いつでも開いて、返信して、去ることができます。


エージェントビューはリサーチプレビュー中です。インターフェースとキーボードショートカットは機能の進化に伴って変更される可能性があります。
クイックスタート
このチュートリアルでは、コアエージェントビューループについて説明します。タスクをディスパッチし、Claude が作業する際に行が更新されるのを見守り、ピークして確認して返信し、フル会話にアタッチします。ディスパッチしたセッションはエージェントビューを閉じた後も実行し続けるため、離れて後で戻ることができます。1
エージェントビューを開く
シェルから以下を実行します。まだディレクトリのワークスペーストラストダイアログを受け入れていない場合、Claude Code はエージェントビューが開く前にそれを表示します。これは
claude が表示するのと同じダイアログです。受け入れてワークスペースの信頼を保存して続行します。拒否すると、Claude Code はエージェントビューを開かずに終了します。エージェントビューが開き、下部に入力フィールドが表示され、セッションが開始されるとテーブルが埋まります。いつでも Esc を押してシェルに戻ります。← でセッションをバックグラウンドにして開いた場合、Esc はそのセッションの会話に戻ります。セッションは離れている間も実行し続け、次にエージェントビューを開いたときに再度表示されます。2
セッションをディスパッチする
タスクを説明するプロンプトを入力して
Enter を押します。新しいバックグラウンドセッションがそのタスクで開始され、作業中か、入力を待機中か、完了しているかを示す行として表示されます。新しいセッションはエージェントビューヘッダーに表示されているモデルを使用します。どの権限モードで開始するかは、エージェントビューをどのように開いたかによって異なります。ここで入力するすべてのプロンプトは独自の新しいセッションを開始します。別のプロンプトを入力して Enter を押すと、最初のセッションへのフォローアップを送信するのではなく、最初のセッションと並行して 2 番目のセッションが起動します。この方法で複数を並行して実行できます。各セッションはサブスクリプションクォータを独立して使用するため、一度に多くをディスパッチする前に制限事項を参照してください。3
ピーク表示と返信
矢印キーで行を選択し、
Space を押してピークパネルを開きます。フルトランスクリプトではなく、セッションの最新の出力、または待機中の質問が表示されます。返信を入力して Enter を押すと、エージェントビューを離れずに送信できます。4
アタッチとデタッチ
フル会話が必要な場合は、行で
Enter または → を押してアタッチします。セッションはターミナルを引き継ぎ、フルインタラクティブな Claude Code セッションになります。空のプロンプトで ← を押してデタッチし、テーブルに戻ります。5
既存のセッションを持ち込む
このステップは実行中のセッションが必要です。前のステップに従った場合、このターミナルで開いているセッションはないため、別のターミナルで通常の
claude セッションを開き、最初にメッセージを送信してください。既に開いているセッションをエージェントビューに移動するには、セッション内で /bg を実行するか、空のプロンプトで ← を押してセッションをバックグラウンドにし、1 ステップでエージェントビューを開きます。メッセージがまだない新しいセッションでは、/bg はメッセージを最初に送信するよう求めますが、← はすぐに機能します。セッションは実行し続け、ディスパッチしたセッションと並行して行として表示されます。claude agents を claude の代わりにプライマリエントリーポイントとして使用できます。エージェントビューからすべてのタスクをディスパッチし、フル会話が必要な場合はアタッチし、← を押してテーブルに戻ります。
通常の claude セッション内では、プロンプトフッターの ← ヒントは、← 2 agents のように入力を待機中のバックグラウンドエージェントの数をカウントし、入力が必要なエージェントがない場合は ← for agents に戻ります。99 を超えるカウントは 99+ として表示されます。カウントはターミナルがフォーカスされている間は約 10 秒ごとに更新され、フォーカスが戻ると即座に更新されます。カウントが移動したときとエージェントが完了したときに色が一時的に変わり、バックグラウンドセッションが完了して入力が必要なエージェントがない場合は、← 2 done のように完了した数を一時的に表示します。prefersReducedMotion 設定がオンの場合は両方のフラッシュがオフになり、スクリーンリーダーモードではヒントは非表示になります。
エージェントビューでセッションを監視する
claude agents を実行してエージェントビューを開きます。ターミナル全体を占有し、状態でグループ化されたすべてのセッションをリストします。ピン留めされたセッションと入力が必要なセッションが上部に表示されます。各行はセッションの名前、現在のアクティビティ、およびセッションが作成されてからの経過時間を表示します。完了したセッションの経過時間は、実行にかかった時間で固定されます。
名前は、そのセッションで /color によって設定されたカラーで色付けされます。← または /background で セッションをバックグラウンドにする ときにカラーが引き継がれます。
デフォルトでは、リストはすべてのプロジェクト全体で開始したすべてのバックグラウンドセッションを表示します。1 つのリポジトリで作業しているセッションと別のワークツリーで作業している別のセッションの両方がここに表示されます。エージェントビューを開いたディレクトリに関係なく表示されます。リストを 1 つのプロジェクトに絞り込むには、--cwd を渡します:
~/projects/my-app/.claude/worktrees/ の下の ワークツリーに移動した セッションは、~/projects/my-app に属するものとしてカウントされます。
他のターミナルで開いているインタラクティブセッションは、バックグラウンドにする までは表示されません。Subagents と teammates はセッションが生成しても個別の行としてリストされません。
セッション状態を読む
各行は、セッションの状態を示すアイコンで始まります。アイコンの色とアニメーションはセッションの状態を示します:
別に、アイコンの形状は基盤となるプロセスが実行しているかどうかを示します:
行の右端に表示される
#N または !N ラベルは セッションのプルリクエストまたはマージリクエスト へのリンクであり、状態アイコンの一部ではありません。
ターミナルタブのタイトルは、エージェントビューが開いている間、待機中の入力カウントを表示します。セッションが入力を必要とする場合は 2 awaiting input · claude agents、そうでない場合は claude agents です。
スクリプトまたは別のプログラムからセッション状態を読み取るには、~/.claude/jobs/ の下のファイルではなく claude agents --json を使用します。
エージェントビューが開いている間、Claude Code はローカルバックグラウンドセッションが入力を必要とし始めたとき、完了したとき、または失敗したときに、設定された ターミナル通知チャネル を通じて通知を送信します。/loop セッションなどのスケジュールで実行されるセッションは、入力が必要な場合にのみ通知します。通知は Claude Code の残りの部分と同じ preferredNotifChannel 設定 を使用し、agent_needs_input または agent_completed タイプで Notification フック を発火します。
バックグラウンドセッションは作業を続けるためにターミナルを開く必要がありません。別の スーパーバイザープロセス がセッションを実行するため、エージェントビューを閉じたり、シェルを閉じたり、新しいインタラクティブセッションを開始したりしても、ディスパッチされた作業は続きます。
セッション状態はディスク上に永続化され、自動更新とスーパーバイザー再起動を通じて保存されます。セッションはマシンがスリープするときも保存されます。プロセスはウェイク時に再開され、スーパーバイザーはアイドルとして時間ギャップを扱う代わりにそれらに再接続します。シャットダウンはまだ実行中のセッションを停止します。シャットダウン後にセッションが失敗として表示される を参照して、それらを復旧する方法を確認してください。
応答しなくなったセッションを開くと、スーパーバイザーはそのプロセスを再起動し、セッションは中断した応答を中断したところから続行します。マシンがスリープしている間に応答の途中でセッションがその状態になる可能性があります。
行の概要
各行の 1 行の概要は Haiku クラスモデル によって生成されるため、トランスクリプトを開かずにセッションが何をしているか、何が必要か、または何を生成したかを伝えることができます。セッションがアクティブに作業している間、行テキストはセッション自身の最近の出力から最大 15 秒ごとに 1 回更新され、モデルリクエストを送信せず、各ターンが終了したときに新しい概要を書きます。 作業中の行はセッションが何をしているかを示し、ブロックされた行は質問を示します。長いターンの間、モデルは数分ごとに概要を書き直し、ビジーな行は古い概要を表示し続けません。概要テキストは行の残りの幅を埋め、ターミナルの右端でのみ切り詰められます。ピークパネル を開いてエッジが切り詰める文を読みます。 リストが ディレクトリでグループ化 されている場合、概要はセッションの状態を色付きの単語で開きます。例えばNeeds input · double jump or wall climb? のようになります。デフォルトの状態グループ化では、グループヘッダーはすでに状態を名前付けするため、行は概要のみを表示します。
ターン終了時の概要と各ミッドターン書き直しは、通常のプロバイダーを通じた 1 つの短い Haiku クラスリクエストであり、セッション自体と同じ データ使用条件 の下で請求および処理されます。15 秒の更新はモデル書き直しの間にセッション自身の出力を再利用し、リクエストを送信しません。Haiku クラスモデルが設定されていないサードパーティプロバイダーまたはゲートウェイでは、リクエストはセッションのメインモデルを使用します。ANTHROPIC_DEFAULT_HAIKU_MODEL を設定して選択します。
プルリクエストステータス
セッションが プルリクエストを開く と、Claude Code は行の右端にラベルを追加し、プルリクエストにリンクします:- Claude Code はラベルを
#1234としてプルリクエストに、!1234として GitLab マージリクエストに書き込みます。 - Claude Code はハイパーリンクサポートを検出できない場合でもリンクを出力します。例えば SSH または tmux 経由。
FORCE_HYPERLINK=0を設定してラベルをプレーンテキストとしてレンダリングします。 - セッションにフォローアップを送信した後、Claude Code はラベルを保持し、行がライブプログレスに戻ります。
- Claude が
ghでプルリクエストを編集、コメント、クローズ、またはマージ準備完了にマークすると、Claude Code はコマンド自身の出力が名前付けするプルリクエストをリンクします。キャプチャされた出力がプルリクエストを名前付けしないghコマンドはリンクを作成しません。gh pr mergeは一般的なケースです。なぜなら、結果をインタラクティブターミナルにのみ出力するためです。 - Claude が
gh pr checkoutでプルリクエストをチェックアウトするか、ブランチにプッシュすると、Claude Code はgh pr viewでブランチを検索してオープンなプルリクエストをリンクします。 - プルリクエストは Claude がプッシュするときにまだ存在する必要はありません。Claude Code は同じディレクトリで最大 5 つの後の
git、gh、glab、またはcurlコマンドが実行された後、ブランチ検索を再試行します。GitHub REST API を通じて Claude が作成したものを含む、後で作成されたプルリクエストは、再試行がそれを見つけるときにリンクします。
3 PRs のようになり、最も注意が必要なオープンプルリクエストで色付けされます。ピークパネル を開いてすべてを表示します。
プルリクエスト番号はそのステータスで色付けされます:
タスクがプルリクエストで終了する場合、このラベルで結果を確認します。プルリクエスト番号が緑になったときにプルリクエストをレビューしてマージします。
ピーク表示と返信
選択した行でSpace を押してピークパネルを開きます。行が切り詰める文で開き、どの文かはセッションの状態によって異なります:
- あなたを待機しているセッション:尋ねている正確な質問。返信入力の上に表示されます
- 完了したセッション:その結果
- 作業中のセッション:その完全なステータス文
waiting 3m のような行がそれらの下に表示され、待機時間を示します。これはパネルで表示される唯一の時間です。行の右端の経過時間は異なる数字です。セッションが開始されてからカウントされます。
ほとんどの場合、ピークパネルで十分であり、フルトランスクリプトを開く必要はありません。
ピークパネルに返信を入力して Enter を押すと、そのセッションに送信されます。セッションが複数選択肢の質問をしている場合、ピークパネルはオプションを番号付きリストとして表示し、数字キーを押して 1 つを選択できます。許可プロンプトはテキストとして表示され、セッションが実行したいことを説明します。番号付きオプションはありません。返信を入力して答えるか、標準プロンプトで答えるためにアタッチします。他のブロックされたセッションの場合は、Tab を押して入力に提案された返信を入力し、送信前に編集できます。返信の前に ! を付けて Bash コマンドを代わりに送信します。
PermissionRequest または PreToolUse フックが Claude Code がセッションが尋ねている呼び出しに対して検証できない出力を返す場合、行はフックイベントと hook output invalid: を検証エラーとともに表示し、その後に保留中のリクエストのテキストを表示します。別の方法で失敗するフックの場合、行はフックが失敗したことを示します。セッションは同じリクエストで待機し続けます。
配信できない返信。バックグラウンドサービスに到達できないか、送信が失敗した場合、返信は保存され、そのプロセスが再度開始されるときにセッションの次のプロンプトとして送信されます。エラーメッセージは返信が保存されたことを示します。! でプレフィックスされた返信は保存されません。保存されたテキストはセッションにプレーンプロンプトとして到達するため、Bash コマンドとして実行されません。
音声ディクテーション が有効な場合、返信入力がフォーカスされている間、プッシュトゥトークキーを押したままにするか、タップして返信をディクテーションします。これはエージェントビューの下部のディスパッチ入力でも同じように機能します。
↑ と ↓ を使用してパネルを閉じずに隣接するセッションをピーク表示するか、→ を使用してアタッチします。
セッションにアタッチする
選択した行でEnter または → を押してアタッチします。エージェントビューはフルインタラクティブセッションに置き換えられます。アタッチすると、Claude は不在中に何が起こったかの短い要約を投稿します。
アタッチ中、セッションは他の Claude Code セッションのように動作します。すべての コマンド、キーボードショートカット、および機能が機能します。以下の例外があります。
アタッチ中、/install-github-app と /mcp 設定リストは通常どおり機能します。人間がターミナルにいるため、ダイアログを完了できます。誰もアタッチされていない場合、これらのコマンドはダイアログを開くことができないため、セッションはエージェントビューの Needs input の下に表示され、open this session to manage MCP servers のような行が表示されます。トランスクリプト返信は同じことを示します。アタッチしてコマンドを再度実行して続行します。アタッチするとニーズ入力行がクリアされます。/mcp reconnect <server>、/mcp enable、および /mcp disable はどちらの方法でもアタッチせずに機能します。
アタッチされたセッションは、tui 設定に関係なく、常に フルスクリーンモード でレンダリングされます。バックグラウンドセッションには追加するターミナルスクロールバックがないためです。PgUp、PgDn、またはマウスホイールでスクロールし、トランスクリプトモードの場合は Ctrl+O を押します。ターミナルのネイティブスクロールと tmux コピーモードは現在のビューポートのみを表示します。これはフルスクリーンアプリケーションを実行するときと同じです。
空のプロンプトで ← を押すか、/exit を実行してデタッチし、エージェントビューに戻ります。エージェントビューからセッションを開いたか、シェルから claude attach <id> を実行したかに関係なく機能します。
← は /btw オーバーレイ が開いている間もデタッチします。Claude Code v2.1.257 以降が必要です。まだ答えている側の質問は、あなたが離れている間、実行し続けます。次回アタッチするときに、オーバーレイは再度開くか、その答えで開きます。
Windows では、アタッチしてから約半秒以内に ← を押すと、Claude Code は Ambiguous ←, press again to detach を表示します。その時間枠では、ターミナルはアタッチ前からのプレスを再配信できるためです。← を再度押してデタッチします。
Ctrl+Z もデタッチしますが、開始した場所に戻ります。エージェントビューからアタッチした場合はエージェントビュー、またはシェルから claude attach を実行した場合はシェルです。ダイアログがフォーカスを持っており、← に応答していない場合は Ctrl+Z を使用します。
Ctrl+C はアタッチ中に標準的な割り込み動作を保持します。実行中の応答または ! シェルコマンドをキャンセルするのであり、デタッチするのではありません。空のプロンプトで Ctrl+C を 2 回押すとデタッチします。これは他のセッションと同じです。
デタッチはバックグラウンドセッションを停止しません。←、Ctrl+Z、/exit、および二重 Ctrl+C または二重 Ctrl+D はすべてセッションを実行し続けます。セッション内からセッションを終了するには、/stop を実行します。
ターミナルを離れずにセッションを切り替える
フォアグラウンドで実行しているセッション、つまりエージェントビューからアタッチするのではなくターミナルで開始したセッションでは、空のプロンプトで← を押すとセッションをバックグラウンドにし、そのセッションが事前に選択された状態でエージェントビューを開きます。これにより、ターミナルを離れずにセッションを切り替えることができます。同じ単一の押下でアタッチされたセッションをデタッチします。
プロンプトのテキストの最後を削除した直後、またはプロンプト履歴を移動した直後に ← を押すと、Claude Code は確認を求めます。最初のプレスは Press ← again to open agents を表示するか、アタッチされたセッションで Press ← again to go back to agents を表示し、2 番目のプレスが切り替わります。
← がフォアグラウンドセッションをバックグラウンドにすると、エージェントビューはリストの上に Your conversation moved to the background を表示し、そのセッションの行が既に選択されています。そこから:
Enterを押して会話を再度開きます。Escを押して切り替えを元に戻し、会話に戻ります。EscがStill starting — try again in a momentを表示する場合、バックグラウンドセッションはまだ準備ができていないため、しばらくしてからEscを再度押します。Ctrl+Cを 2 回押してシェルに終了します。
claude --resume コマンドを出力し、それを再開します。
Claude のタスクリスト は会話とともにバックグラウンドセッションに移動するため、そのセッションに戻るときにチェックリストは完全です。
← を押した行は、矢印キーまたはマウスで選択を移動した後も、太字で薄くない名前を保持するため、どのセッションから来たかを判断できます。
← を押すときにツールが実行されている場合、Claude Code はそれが完了するまで約 10 秒待機してからバックグラウンドにし、応答はバックグラウンドセッションで続きます。代わりに待機せずにすぐにバックグラウンドにするには、← を再度押します。進行中の作業がバックグラウンドセッションに引き継ぐことができない場合、Claude Code は Background this session? ダイアログを最初に表示します。これは /background と同じです。
10 秒の制限は フォアグラウンド subagents Claude が会話で開始した間は適用されません。Claude Code は待機を続けるため、それらの作業が引き継がれ、待機中に Still backgrounding after the current tool 通知が表示されます。← を再度押してすぐにバックグラウンドにしない場合、これらの subagents が最初から再開されます。Claude Code は 動的ワークフロー が実行している subagents を待機しません。ワークフローに subagents が実行されている場合、Claude Code は Background this session? ダイアログを代わりに表示します。
Claude Code はプロンプト入力に未送信のテキストがある間、セッションをバックグラウンドにしません。テキストはターミナルの入力ボックスに留まり、バックグラウンドセッションに移動しません。Claude Code がセッションをバックグラウンドにするのを待っている間に入力に入力すると、Backgrounding cancelled — you have unsent text in the input. Send it or clear it, then press ← again. でスイッチがキャンセルされます。
← を押すと、会話にメッセージがない場合でもセッションの行が作成されるため、→ はそれに戻ります。
このショートカットは /config の leftArrowOpensAgents 設定でオフにできます。
リストを整理する
エージェントビューはセッションをグループ化し、入力が必要なセッションが上部に表示されます。Ready for review と Needs input は Working と Completed の上に表示されます。これらのグループ名は上記の 状態 と 1 対 1 でマップされません。セッションはオープンなプルリクエストを持つときに Ready for review に移動し、Completed は完了、失敗、および停止したセッションを一緒に収集します。
Ctrl+S を押してディレクトリでグループ化に切り替えます。選択内容は実行全体で保存されます。
グループ内で:
Ctrl+Tを押してセッションをトップにピン留めし、アイドル中にそのプロセスを実行し続けますShift+↑またはShift+↓を押してセッションを並べ替えますCtrl+Rを押してセッションの名前を変更します- グループヘッダーで
Enterを押して折りたたみます
Ctrl+X を押して停止し、2 秒以内に Ctrl+X を再度押して削除します。グループヘッダーで Ctrl+X を押すと、確認後、そのグループ内のすべてのセッションが削除されます。
2 番目のプレスは、停止の試みが失敗した場合でもセッションを削除します。例えば バックグラウンドサービスが応答していない ため。確認は別の 2 秒間アクティブなままであり、削除はセッション自体のプロセスを終了します。Esc を押して確認を削除せずに削除します。
セッションを削除するときに削除されるもの でカバーされている保持されたケースを除き、削除するとセッションがリストから削除され、Claude が作成したワークツリーは削除、保持、または削除方法とワークツリーが保持するものに応じて所定の位置に残されます。会話トランスクリプトはローカルマシンに常に残り、claude --resume を通じて利用可能です。
Claude Code v2.1.212 以降でセッションを戻すには、ディスパッチ入力に /resume を入力します。ピッカーが開き、エージェントビューを開いたリポジトリの過去のセッションが表示されます。最新のものが最初です。削除したセッションを含みます。既に行を持つセッションはリストされません。↑/↓ は選択を移動し、Enter は選択したセッションをバックグラウンドセッションとして再開し、リストに行として再度参加し、Esc はピッカーを閉じます。
ピッカーは裸の /resume に対してのみ開きます。ターゲット、スコープ、または制限された再開は、ピッカーで提供できないため、エージェントビューは以下の場合に attach to a session to run it ヒントを表示します:
/resumeは ID または検索用語を名前付けします- ビューは
--cwdでスコープされます - ビューは
--safe-modeで開始されました - ビューは
--permission-modeまたは--settingsなどのフラグで開かれました
Completed グループはライブグループの後に残された垂直スペースを埋め、短いターミナルではヘッダーが単一の概要行にコンパクトされるため、作業中または入力が必要なセッションが表示されたままです。
セッションをフィルタリングする
ディスパッチ入力に入力してディスパッチの代わりにフィルタリングします:キーボードショートカット
エージェントビューで? を押してコンテキスト内のすべてのショートカットを表示します。下の表はそれらをまとめています。
Ctrl+S、Ctrl+T、および Ctrl+G は keybindings.json に従います。Ctrl+S と Ctrl+T を Agents コンテキスト の agents:switchView と agents:togglePin アクションで再バインドまたはアンバインドし、Ctrl+G を Chat コンテキストの chat:externalEditor バインディングを通じて再バインドします。テーブル内の他のショートカットは再バインドできません。
新しいエージェントをディスパッチする
エージェントビューから新しいバックグラウンドセッションをディスパッチするか、既存のインタラクティブセッションをバックグラウンドに送信するか、シェルから直接開始できます。エージェントビューから
エージェントビューの下部の入力にプロンプトを入力してEnter を押すと、新しいバックグラウンドセッションが開始されます。セッションはプロンプトから自動的に名前が付けられます。後で Ctrl+R で名前を変更できます。
自動名は Haiku クラスモデル によって書かれた短いラベルです。セッションが後で取得する名前もその行に表示されます。これには、そのセッションで プランを承認 するときに生成される タイトル も含まれます。
プロンプトに画像を貼り付けて、タスクにスクリーンショットまたは図を含めます。
800 文字を超えるか 3 行以上の貼り付けられたテキストは [Pasted text #N] プレースホルダーに折りたたまれるため、入力は 1 行のままです。ディスパッチするときに完全なテキストが送信されます。ディスパッチする前に折りたたまれたテキストを確認または編集するには、同じテキストを再度貼り付けると、プレースホルダーが入力に展開されます。
プロンプトの一部をプレフィックスまたは言及してセッションの開始方法を制御します:
エージェントビュー自体で実行される少数のコマンドがあります。ディスパッチの代わりに:
/exitおよび/quitはエージェントビューを閉じます/logoutはサインアウトします/modelは ディスパッチモデル を設定します/loginはサインインダイアログを開き、セッションにアタッチせずに再度サインインできます- 裸の
/resumeまたはそのエイリアス/continueは、リポジトリの過去のセッションのピッカーを開き、1 つを戻す ことでバックグラウンドセッションとして復帰させます。Claude Code v2.1.212 以降が必要です
/init などのプロンプト展開組み込みは、新しいバックグラウンドセッションにその最初のプロンプトとして送信されます。その他の組み込みコマンドは、代わりに attach to a session to run it ヒントを表示します。入力したテキストはヒントの横に入力に残るため、編集できます。
繰り返しタスクを skill としてパッケージ化すると、プロンプトを再入力せずにエージェントビューから同じワークフローを何度も開始できます。
同じ @name が subagent と兄弟リポジトリの両方と一致する場合、subagent が優先されます。最初の単語の一致も適用されるため、subagent 名の 1 つと一致する単語で始まるプロンプトはその subagent をディスパッチします。明示的にしたい場合は @ 形式を使用するか、プロンプトを別の単語で開始して一致を避けます。
特定のディレクトリにディスパッチする
新しいセッションはエージェントビューを開いたディレクトリで実行されます。別のディレクトリをターゲットにするには、以下のいずれかを実行します:-
そのディレクトリで
claude agentsを開きます。 -
親ディレクトリで
claude agentsを開き、プロンプトで@<repo>を使用して子リポジトリを言及します。@を入力すると、これらのターゲットがリストされます:- 起動ディレクトリの 1 レベル下の Git リポジトリ
- 起動元のリポジトリの登録済み git worktrees。
.claude/worktrees/の下に Claude が作成したものなど、そのディレクトリツリー内に存在し、チェックアウトされたブランチでラベル付けされたもの。git worktree add ../featureなどのリポジトリの外に追加された worktree はリストされません - リスト内に既にセッションがあるディレクトリ
-
シェルから、ディレクトリに
cdしてclaude --bg "<prompt>"を実行します。
セッション内から
2 つのコマンドは、セッション内の作業をバックグラウンドに移動します。/background は現在の会話をそこに送信してターミナルを解放し、/fork はコピーを送信しながら元の場所で作業を続けます。
セッションをバックグラウンドに送信する
/background またはそのエイリアス /bg を実行して現在の会話をバックグラウンドセッションに移動します。/bg run the test suite and fix any failures などのプロンプトを渡して、バックグラウンド化する前に 1 つの追加命令を送信します。Claude が応答中に /bg を実行した場合、応答はバックグラウンドセッションで続行されます。
バックグラウンド作業が実行中のセッション(subagent、バックグラウンドシェルコマンド、ワークフロー、または monitor など)を終了すると、直ちに終了する代わりに Background work is running ダイアログが表示されます。セッションをバックグラウンド化して終了するには Move to background and exit を選択します。これは /background と同じ方法でセッションをバックグラウンド化し、シェルに戻ります。このオプションは、エージェントビューが オフ になっている場合は表示されません。
バックグラウンド化されたセッションのリストに既に会話の名前がある場合、Claude Code は新しい行の名前に番号を付けます(例:my-session (2))。既存の行の名前は変わりません。新しい行の名前を変更するには、エージェントビューで選択して Ctrl+R を押します。
/fork でセッションをコピーする
/fork を実行して現在の会話を新しいバックグラウンドセッションにコピーしながら、元の会話は実行し続けます。コピーはその時点までの会話のすべてで開始されます。以下の箇条書きを参照してコピーが実行される場所を確認してください。また、モデル、権限モード、努力レベル、およびセッション中に追加したディレクトリまたは「今後は聞かない」権限付与も引き継ぎます。コピーはエージェントビューの独自の行として表示されます。
フォーク後、2 つの会話は独立しています。コピーが実行する内容は、クロスセッションメッセージング が有効になっているセッションでは、どちらのセッションの Claude も明示的に相手にメッセージを送信できますが、それ以外は元の会話に自動的に入りません。
セッションのコピーには Claude Code v2.1.212 以降が必要です。v2.1.161 から v2.1.211 では、/fork は代わりに forked subagent を開始します。これは現在 /subtask です。エージェントビューがオフ になっている場合、/fork は forked subagent の動作を保持し、/subtask は利用できません。
/fork open a draft pull request with the work so far などのプロンプトを渡すと、コピーはすぐにそれに取り組み始めます。プロンプトがない場合、コピーは最初の命令を待ちます。claude agents でその行を選択して Space を押すか、claude attach <id> を実行します。選択された行は、待機中に space to send it a prompt を表示します。
/fork 確認は 1 行で、コピーの状態(例:session running)、そのエージェントビュー行の名前、および claude attach 用のセッション ID を表示します。名前をクリックしてコピーに切り替えます。このセッションはバックグラウンドに移動し(← を押すのと同じ)、エージェントビューはコピーのセッションを開きます。
コピーが 所定の位置で編集 する場合を除き、Claude Code はコード変更を行う前に独自の worktree を作成するよう指示します。git リポジトリの外では、hook で作成された worktree から移動されたコピーのみが指示を受けます。WorktreeCreate hook がない場合、コピーは所定の位置で編集します。worktree から移動されたコピーは、分離設定に関係なく、その worktree を編集、実行、または入力しないよう指示されます。
コピーが開始される場所は、現在のセッションが実行されている場所によって異なります:
- ディスパッチされたセッションと同様に、コピーは ファイルを編集する前に独自の worktree に移動 します。その場合、確認はコピーが実行される場所を言及しません。
- セッションが開始後にリンクされた worktree に移動した場合、コピーは移動前のセッションがあった場所に戻ります。所定の位置で編集 しない限り、独自の worktree でコード変更を行います。worktree がブランチにチェックアウトされている場合、その指示はタスクがあなたの作業に基づいている場合、新しいブランチをあなたのブランチに基づくよう指示します。あなたのブランチは worktree でチェックアウトされたままだからです。確認は
runs in the origin treeで終わります。 - リンクされた worktree 内でセッションを起動し、リポジトリにメインワーキングツリーがある場合、コピーはそのメインワーキングツリーで開始されます。同じ worktree-of-its-own ルールですが、ブランチ指示はありません。確認はここでも
runs in the origin treeで終わります。 - ベアリポジトリレイアウトの worktree 内で起動されたセッションには、戻るメインワーキングツリーがないため、コピーはそこにとどまり、確認は
edits this checkoutで終わります。worktree 分離が オフ になっているセッションで、リンクされた worktree 内にない場合も同じ注記が表示されます。コピーは開いているファイルを編集するためです。
--tools 許可リストなど、コピーが継承しない起動フラグで開始されたセッションはフォークできません。Claude Code はそう言う代わりに部分的なコピーを作成します。エージェントビューからディスパッチされたセッションは通常フォークされます。コピーは、それが来たセッションと同じ エージェント定義 と追加命令で起動されます。
バックグラウンド化するときに引き継がれるもの
バックグラウンド化は、保存された会話から再開する新しいプロセスを開始し、実行中の作業がそこに移動します。実行中のバックグラウンドシェルコマンド、backgrounded subagent、動的ワークフロー、/loop で作成したスケジュール済みタスク、および Claude の artifact コメントへの自動返信 はすべてバックグラウンドセッションに引き継がれ、そこで実行し続けます。subagent はそれが開始したすべてのものと一緒に移動するため、すべての作業が移動できる場合にのみ引き継がれます。バックグラウンド化の代わりに実行中の作業を停止するには、CLAUDE_DISABLE_ADOPT=1 環境変数を設定します。Claude Code はバックグラウンド化する前に確認を求めます。
動的ワークフロー がまだ subagent を実行している場合、Claude Code は Background this session? ダイアログでバックグラウンド化する前に確認を求めます。再開するサブエージェントの数を表示します。Stay を選択して最初に完了させます。確認すると、Claude Code はバックグラウンドセッションで実行を再生成します。まだ実行中だった subagent は最初から再開するため、これまでに使用したトークンは再度費やされます。一時停止後に再開 を参照して、どの完了した subagent が保存された結果を返し、どれが再度実行されるかを確認してください。
Claude Code は、実行中の monitor など、引き継げない作業を停止し、monitor を所有している backgrounded subagent を monitor と一緒に停止します。そのような作業が実行されている場合、Claude Code は Background this session? ダイアログを表示するため、停止する前に確認できます。
バックグラウンドに入ると、セッションは新しい subagent、monitor、およびバックグラウンドコマンドを開始でき、それらは後のデタッチとリアタッチ全体で実行し続けます。
元の起動時の設定フラグはバックグラウンド化されたセッションに引き継がれるため、その MCP サーバー、設定、およびフォールバックモデルは有効なままです:
--mcp-configおよび--strict-mcp-config--settings--add-dir--plugin-dir--fallback-model--allow-dangerously-skip-permissions
/add-dir で追加したディレクトリも引き継がれます。--allow-dangerously-skip-permissions を引き継ぐことで、バックグラウンド化されたセッションで bypassPermissions に到達可能になりますが、新しい権限は付与されません。このモードは、セッションが監視していない状態で承認なしに動作することを許可するため、権限モード、モデル、および努力 で説明されているのと同じ 1 回限りのインタラクティブな受け入れが必要です。
シェルから
--bg またはその長い形式 --background を渡してセッションを直接バックグラウンドに送信します:
-p 値ではなく、位置引数です。Claude Code は、セッションが作成される前に --bg を -p または --print と組み合わせることを拒否します。--print は claude agents がアタッチするインタラクティブセッションを開始しないためです。
特定の subagent(例:code-reviewer)をセッションのメインエージェントとして実行するには、--bg を --agent と組み合わせます:
no agent named 警告を出力し、セッションはバックグラウンド化されたと報告されますが、セッションは --agent '<name>' not found エラーで直ちに終了します。
バックグラウンド化されたセッションが後で再開または再開始されると、Claude Code はエージェントとそのツール制限を復元します。システムプロンプトについては、再開された会話のシステムプロンプトフラグ を参照してください。そのワークスペースを信頼 している場合、セッションのディレクトリでエージェントを最初に検索するため、プロジェクトスコープのエージェントは別のディレクトリから再開されたときに読み込まれます。エージェントが存在しなくなった場合、セッションはデフォルトツールで続行され、トランスクリプトは エージェントを名前付けする警告 で開きます。
既存の会話をバックグラウンドで続行するには、完全なセッション ID を --resume で渡します:
note: 行を出力します。セッションが所定の位置で続行される場合、claude agents はそれに対して 1 つの行を表示します。
--bg を --continue、裸の --resume、または --resume と名前またはファイルパスと組み合わせると、Claude Code は常にそのようなコピーを開始します。目的でコピーを開始するには --fork-session を追加し、注記なしで開始します。
--name を渡して、自動生成されたセッションの代わりにエージェントビューでセッションの表示名を設定します:
--bg はこの出力の上に Starting background service… を最初に出力する可能性があります。--name を渡すと、短い ID の後に名前が表示されます:
シェルコマンドを実行する
Claude セッションの代わりにシェルコマンドをバックグラウンドジョブとして実行するには、--exec を渡します。次の例は pytest -x をバックグラウンドジョブとして実行します:
! を入力して同じ種類のジョブをディスパッチします。! はプレフィックスとして表示され、その後のすべてがコマンドです。Enter を押してジョブを開始します。
コマンドは PTY バックアップジョブとして実行され、エージェントビューの行として表示されます。最新の出力行がそのステータスです。シェルジョブは Claude の代わりにコマンドを実行するため、モデルは呼び出されず、出力はセッションに送信されません。
出力を確認するには、行にアタッチするか、Space を押してアタッチせずにピークするか、シェルから claude logs <id> を実行します。キャプチャされた出力はメモリに保持され、ディスクに書き込まれません。行とその出力は、コマンド終了後約 5 分で自動的にクリーンアップされるため、その前に結果が必要な場合は読み取ります。
ファイル編集の分離方法
エージェントビュー、/bg、または claude --bg から開始されたすべてのバックグラウンドセッションは、作業ディレクトリで開始されます。ファイルを編集する前に、Claude はセッションを .claude/worktrees/ の下の分離された git worktree に移動するため、並列セッションは同じチェックアウトを読み取ることができますが、それぞれが独自のものに書き込みます。セッションが worktree に入ると、Claude Code は worktree 分離を強制 し、セッションとそれが生成する subagent に対して実行します。
Claude はワークツリーをスキップします:
- セッションが既にリンクされた git worktree 内にある場合。Claude が
.claude/worktrees/の下に作成したか、git worktree addで別の場所に作成したかに関係なく - Claude が編集しているファイルがリンクされた git worktree 内にある場合。セッションまたはその subagent が
git worktree addで作成したものなど - 作業ディレクトリが git リポジトリでない場合、および
WorktreeCreatehook が設定されていない場合 - 作業ディレクトリの外への書き込みの場合
worktree.bgIsolation を "none" に設定します。バックグラウンドセッションは、ワークツリーに移動する前に作業コピーを直接編集します。プロジェクトの .claude/settings.json に設定を追加します:
WorktreeCreate hook を設定して、Claude は git の場合と同じ方法で編集を分離します。
フックがディレクトリで失敗し、それが git リポジトリではない場合、Claude はそのディレクトリの分離をスキップし、作業ディレクトリを所定の位置で編集します。git リポジトリ内では、Claude Code はセッションが worktree に移動するまで共有チェックアウトへの書き込みをブロックします。
セッションの worktree パスを見つけるには、セッションをピークするか、アタッチして作業ディレクトリを確認します。
バックグラウンドセッションが生成する subagent は、セッションの作業ディレクトリを継承するため、そのファイル編集はセッションの worktree ではなく作業コピーに配置されます。subagent に独自の個別ワークツリーを代わりに提供するには、frontmatter で isolation: worktree を設定するか、生成時に isolation: "worktree" を渡します。
バックグラウンドセッションが Claude が入った worktree でコード変更を行った場合、Claude Code は完了する前に作業を保持するよう Claude に指示するため、セッションと worktree を削除しても生き残ります:
- コミットとプッシュ:Claude は確認なしにコミットし、リポジトリにリモートがある場合はブランチをプッシュします。
- ドラフトプルリクエスト:Claude はタスクが呼び出すときに開き、
#Nラベル が行に表示されます。 - 決して:
mainまたはmasterへのプッシュ、強制プッシュ、およびマージ。 - あなたの git 指示が優先:タスク、
CLAUDE.md、または memory があなたがコミットまたはプッシュを自分で処理すると言う場合、Claude は git をあなたに任せます。
"none" に設定されている場合、ワークツリーの移動が失敗した場合、またはセッションが既に存在していた worktree 内で開始された場合に適用されます。
タスクに関係なく、Claude はジョブを報告で終了し、実行内容と作業がある場所を示します。パス、ブランチ、プルリクエスト、または答え自体。
セッションを削除するときに削除されるもの
エージェントビュー でCtrl+X を 2 回押すか、claude rm で削除します。以下の保持されたケースを除き、セッションはリストから削除されます。そのトランスクリプトは claude --resume を通じてマシンに残り、削除はスーパーバイザーの再開始を通じて保持されます。
Claude がセッション用に作成した worktree に何が起こるか:
- エージェントビューはそれを削除します。コミットされていない変更を含めて、保持したい変更をまずコミットしてください。
-
claude rmはコミットされていない変更がある場合、セッション行と一緒に保持します。 -
エージェントビューも
claude rmも、別の実行中のセッションが使用または ロックしている worktree を削除しません。再度削除してもそれは変わりません。Claude Code は worktree とセッションを保持し、保持されたディレクトリと理由を名前付けします。エージェントビューでは、セッションの行はnot deletedを表示します。別のセッションを閉じてから再度削除します。 -
セッションを削除し、その worktree に Claude Code が他の場所に保存されていることを確認できないコミットがある場合、Claude Code は worktree とセッションを保持し、メッセージは worktree のブランチと未プッシュコミット数を名前付けします。メッセージは、2 つの前進方法も提供します。コミットをプッシュするか、再度削除してそれらを破棄します。
リモートのコミットは削除をブロックしません。ローカルコピーのあなたの
originリモートのデフォルトブランチのコミットもブロックしません。そのブランチがメインチェックアウト(リポジトリディレクトリ自体、worktree ではなく)でチェックアウトされている限り。 その拒否の後、あなたは選択します:- コミットを保持するには、それらをプッシュするか、そのデフォルトブランチにマージしてから、セッションを再度削除します。
- それらを破棄するには、プッシュせずにセッションを再度削除します。エージェントビューの行で
Ctrl+Xを 2 回押すか、拒否が出力したclaude rm <id> --discard-unpushedコマンドを実行します。これはセッションと worktree をそのブランチと一緒に削除し、未プッシュコミットとコミットされていない変更を破棄します。
-
git が認識しなくなった worktree(例:
git worktree pruneの後)は削除をブロックしません。Claude Code はセッションを削除し、ディレクトリをディスク上に残します。 -
git またはあなたの
WorktreeRemovehook が worktree を削除できない場合、Claude Code は worktree とセッションを保持し、メッセージは原因を名前付けします。フックの場合、メッセージは終了方法(例:exited 1)を示し、stderr の開始を引用します。メッセージは、次のいずれかを実行するよう指示します:- セッションを再度削除して、エージェントビューの行で
Ctrl+Xを 2 回押すか、拒否が出力したclaude rm <id> --force-remove-worktree <worktree-id>コマンドを実行してディレクトリを削除します。Claude Code は、ディレクトリがリポジトリのリンクされた worktree の 1 つであることを確認できる場合にのみこれを提供します。.claude/worktrees/の下、追跡されたファイルへのコミットされていない変更なし、ネストされたリポジトリなし、他のセッションのレコードがそれを名前付けしていません。worktree のブランチはリポジトリに残ります。 - ディレクトリを使用しているものを閉じるなど、障害を修正し、フックを修正してから、セッションを再度削除します。
- ディレクトリを自分で削除してから、セッションを再度削除します。
- セッションを再度削除して、エージェントビューの行で
WorktreeCreate hook がディレクトリを別の場所に作成したため)は、削除できます。ディレクトリにファイルが残っている間:
- エージェントビューは削除する前に同じ
Ctrl+Xダブルプレスを要求します。hook で作成されたディレクトリの場合、代わりにWorktreeRemovehook を実行し、1 つがない場合は削除を拒否してセッションを保持します。 claude rmはセッションと worktree を保持し、理由を名前付けします。
モデルを設定する
エージェントビューヘッダーに表示されるモデル名はディスパッチのデフォルトです。入力から開始する新しいセッションはこのモデルを使用します。これは、ユーザー設定のmodel setting から取得されます。/model picker でモデルを選択して設定するか、設定を直接編集します。
エージェントビューを開く際にディスパッチのデフォルトをオーバーライドするには、--model を渡します。権限モード、モデル、および努力 を参照してください。
エージェントビューの内部からディスパッチのデフォルトを変更するには、ディスパッチ入力に /model の後にモデル名を入力して Enter を押します。ヘッダーは (session) マーカー付きでそのモデルを表示するように更新され、その後ディスパッチするセッションはそれを使用します。/model default と入力してオーバーライドをクリアし、ディスパッチのデフォルトに戻します。このオーバーライドは現在の claude agents 実行の残りの間続き、設定ファイルに書き込まれません。次の例は、1 つのセッションを Opus でディスパッチし、次のセッションを Sonnet でディスパッチします:
- シェルから、
claude --bgで--modelを渡します。 - 実行中のセッションにアタッチして、そこで
/modelを実行します。ピッカーから選択するか、入力した/model <name>は、ピッカーでsを押してセッションのみの切り替えを行わない限り、新しいセッションのデフォルトとして保存されます。セッションが再生成される場合、セッションのみの切り替えは保持されます。 - frontmatter が
modelフィールドを設定する subagent をディスパッチします。
権限モード、モデル、および努力
バックグラウンドセッションは、ディスパッチされた場所と方法から設定、プロバイダー、権限モード、モデル、および努力を取得します。以下のサブセクションは各ソースをカバーし、スーパーバイザーがセッションを再開始するときに何が保持されるかをカバーします。設定とプロバイダー
バックグラウンドセッションは、そこでclaude を開始した場合と同じように、実行されるディレクトリから settings を読み取ります。これには、プロジェクト設定の env values が含まれるため、そこで設定された ANTHROPIC_MODEL またはプロバイダー変数がそのディレクトリのバックグラウンドセッションに適用されます。
バックグラウンドセッションは、ディスパッチ元のシェルの PATH でも実行されるため、実行するコマンドはターミナルと同じツールを見つけます。CLAUDE_CODE_USE_BEDROCK または CLAUDE_CODE_USE_VERTEX などのクラウドプロバイダー選択、ANTHROPIC_DEFAULT_*_MODEL エイリアス、および CLAUDE_CODE_EXTRA_BODY オーバーライドもそのシェルから保持します。
LLM ゲートウェイ
LLM ゲートウェイ を通じて Claude Code をルーティングする場合、ゲートウェイ変数を設定ファイルのenv ブロックに入れ、シェルでエクスポートするのではなく、バックグラウンドセッションは設定の残りと一緒にそれらを読み取ります。設定ファイルで設定 はブロックと資格情報に使用する設定ファイルを表示します。
シェルでのみゲートウェイ ANTHROPIC_BASE_URL をエクスポートする場合、スーパーバイザー 自体が同じゲートウェイをエクスポートしたシェルから開始された場合、および以下の場合にのみ、ANTHROPIC_CUSTOM_HEADERS と資格情報と一緒にバックグラウンドセッションに到達します:
←または/backgroundで独自のセッションをバックグラウンド化する- セッションをあなたがいるディレクトリにディスパッチする
- あなたがいるディレクトリで停止したセッションを起動するか、それに返信する
ANTHROPIC_BASE_URL に適用される条件の下でエンドポイントとフラグペアをセッションに転送し、ANTHROPIC_CUSTOM_HEADERS と一緒に転送します。例えば、CLAUDE_CODE_USE_VERTEX=1 を ANTHROPIC_VERTEX_BASE_URL と CLAUDE_CODE_SKIP_VERTEX_AUTH=1 でエクスポートし、Claude Code はそのエンドポイントとフラグを転送します。
Claude Code は転送されたゲートウェイをそのセッションの実行プロセスにのみ適用し、ディスクに書き込みません。
権限モード
権限モード は、セッションをどのように開始したかによって異なります:/bgまたは←でバックグラウンド化:Claude Code はセッションが入っていた権限モードを保持するため、acceptEditsまたはautoに切り替えたセッションはデタッチ後もそのモードのままです←で開いたエージェントビューからディスパッチ:ターゲットの独自の設定が最初に来て、他に何も設定しない場合、来たセッションの権限モードが適用されます- シェルで開始した
claude agentsからディスパッチするか、claude --bgで実行:新しいセッションは、ディスパッチのデフォルト で開いたエージェントビューからディスパッチしない限り、そのディレクトリで新しいclaudeセッションが開始する方法で開始されます。セッションが開始する権限モード はリストされた順序を示します
← で開いたエージェントビューからディスパッチするセッションの場合、Claude Code は以下の最初に適用されるものから権限モードを取得します:
- ターゲットディレクトリの
permissions.defaultMode。2 つのソースルールが適用されます:autoおよびbypassPermissionsは 管理設定、--settingsファイル、または~/.claude/settings.jsonからのみ有効。- Claude Code は、来たセッションが入っていたモードより許容的なモードを選択するプロジェクトの
.claude/settings.jsonまたは.claude/settings.local.jsonからのdefaultModeを拒否します。
- 来たセッションの権限モード
acceptEdits を要求するチェックイン設定を持つディレクトリにディスパッチする場合、新しいセッションは plan モードで開始されます。その defaultMode を ~/.claude/settings.json に移動する場合、来たセッションの権限モードに関係なく適用されます。
許容性は plan、次に Manual と dontAsk、次に acceptEdits と auto(それぞれが他より許容的と見なされる)、次に bypassPermissions を実行します。
ディスパッチのデフォルト
エージェントビューからディスパッチするすべてのセッションのデフォルトを設定するには、開く際に--permission-mode、--model、--effort、または --agent のいずれかを渡します:
--effort ここは トップレベル --effort フラグ と同じ値を受け入れます。ultracode を含みます。
--agent は、ディスパッチプロンプトが @name または最初の単語で名前を付けない場合に使用される subagent を設定します。設定されている場合は agent setting にデフォルト設定され、そうでない場合は組み込みのキャッチオール claude エージェントです。ディスパッチ入力で subagent を名前付けすると、両方がオーバーライドされます。
claude agents は、--permission-mode bypassPermissions の短縮形として --dangerously-skip-permissions も受け入れ、各ディスパッチされたセッションの Shift+Tab サイクルで bypassPermissions を利用可能にするために --allow-dangerously-skip-permissions も受け入れます。どちらも トップレベル CLI フラグ と一致します。
--restricted を渡して、ビューからディスパッチするすべてのセッションを 制限モード で開始します。トップレベル --restricted フラグで起動したかのように。Claude Code v2.1.248 以降が必要です。
アクティブなデフォルトはディスパッチ入力の下のフッターに表示されます。
Claude Code は、セッションが監視していない状態で承認なしに動作することを許可するため、claude --bg --permission-mode bypassPermissions を拒否します。これは、claude で対話的に実行して --dangerously-skip-permissions で受け入れるまで拒否されます。claude agents に --dangerously-skip-permissions または --permission-mode bypassPermissions を渡すと、以前に受け入れていない場合は同じ免責事項が表示され、受け入れるとそのビューから起動するセッションに bypassPermissions が適用されます。--allow-dangerously-skip-permissions を渡すと、同じ免責事項も表示され、受け入れるとそれらのセッションの Shift+Tab サイクルで bypassPermissions が利用可能になります。
再開始全体で保持されるもの
バックグラウンドセッションに対して選択した権限モード、モデル、および努力は、設定フラグ と一緒に、スーパーバイザーが後で セッションのプロセスを停止して再開 するときに保持されます。claude --bg --dangerously-skip-permissions または claude --bg --permission-mode bypassPermissions で起動したセッションは、その再開後も bypassPermissions のままです。セッション中に /model または /effort で変更したモデルまたは努力も保持されます。
セッションが設定から努力を取得した場合(--effort または /effort からではなく)、Claude Code は各プロセスを開始するたびに設定を再度読み取ります。settings.json で保存された努力を編集した後、変更は ← または /bg でバックグラウンド化したセッションとそれらの後の再開に到達します。保存された努力は effortLevel キーまたは modelSettings エントリです。
Claude Code は /rename または Ctrl+R で設定した名前も、その再開全体で保持するため、claude --resume <name> はセッションを解決します。
アタッチ中に Ctrl+S で隠した プロンプトもセッションと一緒に保持されます。セッションのプロセスが停止または再開始された後、セッションを再度開き、Ctrl+S は隠されたテキストを復元します。隠しの貼り付けコンテンツは再開始を通じて生き残りません。
設定、プラグイン、および MCP サーバー
エージェントビューは、設定、プラグイン、MCP サーバー、および追加ディレクトリを読み込むためのclaude と同じ設定フラグを受け入れます。エージェントビューは --settings と --plugin-dir を自身に適用し、すべての設定フラグをそこからディスパッチするセッションに渡すため、この方法で読み込むプラグインまたは MCP サーバーはそれらのセッションでも利用可能です。
--add-dir、--plugin-dir、または --mcp-config を値ごとに 1 回繰り返します。--add-dir a b c などのスペース区切り形式は claude agents ではサポートされていません。
--settings と --plugin-dir を agents の前または後に配置できます。--add-dir と --mcp-config を agents の後に保持します。agents の前にいずれかを配置する場合、claude agents --json は unknown option エラーで失敗します。
次の例は、設定オーバーライドと 1 つの追加ディレクトリでエージェントビューを開きます:
--settings はファイルパスまたはインライン JSON 文字列を受け入れます。ファイルパスは既存のファイルを指す必要があります。Claude Code は、そうでない場合は Settings file not found エラーで終了します。
シェルからセッションを管理する
すべてのバックグラウンドセッションには、シェルから使用できる短い ID があります。ID はclaude --bg でセッションを開始するときに出力され、各セッションの ID は ~/.claude/jobs/ の下のディレクトリ名です。これらのコマンドはスクリプティングまたはエージェントビューを開きたくない場合に便利です。
セッションを JSON として一覧表示
claude agents --json はアクティブなセッションを JSON 配列として出力して終了します。すべてのライブセッション、およびプロセスが終了した場合でも引き続き動作またはブロックされているバックグラウンドセッションが含まれます。--all を追加して、完了したバックグラウンドセッションも含めます。--cwd <path> を追加して、そのディレクトリの下で開始されたセッションに一覧を制限します。
各エントリは 1 つのセッションを説明します。
スクリプトからセッション状態を読み取る
claude agents --json は Claude Code の外からセッション状態を読み取るためのサポートされている方法です。例えば、ステータスバー、スケジューラー、またはバックグラウンド作業を監督する別の Claude セッションから。claude agents --json --all をポーリングします。これはプロセスが終了したセッションをリストし続け、各エントリの state、status、waitingFor を読み取ります。
ターンを完了し、次の指示を待っているセッションは
blocked ではなく done を読み取ります。blocked は常にセッションが続行する前にあなたから何かが必要であることを意味します。
~/.claude/jobs/<id>/ の下のファイルは安定したインターフェースではありません。セッションまたは別のプログラムが state、detail、tempo、needs に書き込む値は、次の更新時に置き換えられます。
セッションが独自の言葉で進捗を報告するようにしたい場合は、state.json を編集する代わりに、例えば $CLAUDE_JOB_DIR/tmp の下など、独自のファイルを書き込むようにしてください。
バックグラウンドセッションのホスティング方法
Claude Code は、エージェントビューに表示されているすべてのセッションをバックグラウンドセッションとして扱います。現在接続しているかどうかに関わらず、バックグラウンドセッションとして扱われます。これに対して、claude を直接実行して開始したセッションはそのターミナルに紐付けられ、ターミナルが閉じると終了します。ただし、バックグラウンドに送信することはできます。
どのような種類のセッションにいるかを確認するには、/status を実行してください。バックグラウンドセッションでは、Session kind の行に background job · attached または background job · unattended と表示されます。ターミナルが接続されているかどうかによって異なります。その他のセッションでは interactive と表示されます。
スーパーバイザープロセス
スーパーバイザーはバックグラウンドサービスで、バックグラウンドセッションを実行し、エージェントビューやターミナルを閉じた後もセッションが動作し続けるようにします。Claude Code は、セッションをバックグラウンドに送信するか、エージェントビューを開いた時点で最初にスーパーバイザーを起動します。自分で管理する必要はありません。 各セッションはスーパーバイザーの下で独自の Claude Code プロセスであり、そのプロセスに何が起こるかはセッションの状態によって異なります。- 動作中、権限プロンプトまたは他のダイアログで一時停止中、または接続中:プロセスは実行を続けます。実行中のサブエージェント、ワークフロー、またはモニターは動作中としてカウントされます。
- 終了したか、約 1 時間の間、あなたの次のメッセージを待機中で、未接続:スーパーバイザーはリソースを解放するためにプロセスを停止します。ターンを終了して質問を投げかけたセッションは、あなたの次のメッセージを待機中としてカウントされます。会話はディスクに保存され、次回接続または返信するときに、セッションは中断したところから再開されます。
Ctrl+Tでセッションをピンして、プロセスの実行を継続させます。 - スーパーバイザーが実行中に予期せず終了した:スーパーバイザーはプロセスを再起動します。自分でバックグラウンドに送信したセッションを
←または/backgroundで終了した場合、たとえばkillで終了した場合、再起動の代わりに停止済みとしてマークされます。シャットダウンで終了したセッションについては、セッションがシャットダウン後に失敗または停止として表示される を参照してください。 - 自動更新後:スーパーバイザーは新しいバージョンに再起動し、アイドル状態のセッションをバックグラウンドで移動します。動作中、あなたを待機中、または接続中のセッションは中断されません。
CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF を 1 に設定してください。
スーパーバイザーとそのセッションは、インタラクティブセッションと同じ保存された認証情報で認証されます。セッションに到達する設定とシェル変数(PATH を含む)については、設定とプロバイダー を参照してください。ゲートウェイエンドポイントについては、LLM ゲートウェイ を参照してください。
状態の保存場所
セッション状態は Claude Code 設定ディレクトリの下に保存されます。CLAUDE_CONFIG_DIR を設定した場合、スーパーバイザーは ~/.claude の代わりにそのディレクトリを使用し、独自のセッションを持つ別のインスタンスとして実行されます。
各バックグラウンドセッションには、
CLAUDE_JOB_DIR 環境変数が ~/.claude/jobs/<id> ディレクトリに設定されているため、セッションが実行するシェルコマンドは、並列セッションと衝突することなく、$CLAUDE_JOB_DIR/tmp に一時ファイルを書き込むことができます。
ファイルを直接読み取らずにこの状態を検査するには、claude daemon status を実行してください。スーパーバイザーに到達可能かどうか、そのプロセス ID とバージョン、ソケットディレクトリ、およびライブバックグラウンドセッションの数を報告します。
このコマンドは、実行中のスーパーバイザーが呼び出した claude とは異なるバージョンにある場合に警告を表示します。これは、スーパーバイザーがまだ再起動していない更新後に発生します。警告は両方のバージョンを表示し、claude daemon stop --any を実行して新しいバージョンを取得するよう指示します。Claude Code が OS サービスとしてインストールされている場合、提案されるコマンドはフラグなしの claude daemon stop です。
セッションはそのバージョンの不一致を無傷で生き残ります。セッションの state.json を更新する古い Claude Code バージョンは、認識しないフィールドを保持し、セッションをリストに保ちます。ロスターの roster.json のセッションリストは同じルールに従うため、新しいバージョンで開始されたセッションは到達可能なままで、スーパーバイザーが再起動した後も入力を受け付け続けます。
エージェントビューをオフにする
バックグラウンドエージェントとエージェントビューを完全にオフにするには、disableAgentView 設定 を true に設定するか、CLAUDE_CODE_DISABLE_AGENT_VIEW 環境変数を設定してください。管理者は 管理設定 を通じてこれを強制できます。
トラブルシューティング
claude agents がエージェントビューを開く代わりにサブエージェントをリストする
claude agents が数を出力した後、設定されたサブエージェントを表示してから終了する場合、エージェントビューはお使いの環境では利用できません。claude update を実行して最新バージョンをインストールしてください。
更新後もエージェントビューが開かない場合は、設定または環境変数によってオフになっているかどうかを確認してください。
エージェントビューがセッションなしで開く
最初のセッションをディスパッチする前に、エージェントビューは空のセクションヘッダーを表示し、各セクションの下に説明があり、セッションリストの代わりに入力の上に 1 行の説明があります。下部の入力にプロンプトを入力してEnter を押して、最初のセッションをディスパッチします。
バックグラウンド化が Background this session? ダイアログを表示する
← を押して現在のセッションをバックグラウンドに移すと、Claude Code が Background this session? ダイアログを表示する場合、セッションには実行中の作業があり、バックグラウンド化によって停止、再開、または無人で実行されたままになる可能性があり、Claude Code はそれを実行する前に確認します:
- 移動できない作業:セッションには、実行中の monitor などのバックグラウンドセッションに移動できない作業があります。ダイアログは Claude Code が停止する作業を名前で表示し、別に転送されるタスクをカウントします。
- 実行中のサブエージェントを持つワークフロー:動的ワークフローにはまだ実行中のサブエージェントがあります。ワークフロー自体は転送されますが、実行中のサブエージェントは最初から再開され、ダイアログはその数を表示します。
- 自動アーティファクト返信:Claude がアーティファクトのコメントに自動で返信している場合があります。これらの返信はバックグラウンドセッションで続行され、ダイアログはそのことを表示します。
/tasks を実行してすべての実行中のものを確認し、確認してバックグラウンド化するか、Stay を選択して作業が完了するまで待機します。バックグラウンド化するときに転送されるものを参照して、どのタスク種が転送され、どのタスク種が Claude Code によって停止されるかを確認してください。
プロンプトが短すぎるとして拒否される
ディスパッチ入力は会話の開始ではなく、タスクの説明を期待しています。4 文字未満のプロンプトはToo short ヒントで拒否されるため、誤ったキー入力がセッションを開始しません。セッションで何をしたいかを説明してください。例えば investigate the flaky checkout test のようにします。
シャットダウン後、セッションが失敗または停止として表示される
マシンをシャットダウンまたは再起動すると、実行中のバックグラウンドセッションが停止します。入力を待機していたセッションは、戻ってきたときにNeeds input の下に留まります。その他の実行中のセッションについては、エージェントビューが表示する内容は、最後に進捗があってからどのくらい前かによって異なります:
- 48 時間以内の場合、セッションは失敗として表示されます。アタッチまたは返信すると、中断したところから再開します。
- 48 時間以上経過した場合(マシンが数日間オフになっていた後など)、セッションは
ended while the background service was offとして停止として表示されます。行でEnterを押すと、フッターにPress enter again to resume this session (it ended while the background service was off), or ctrl+x to delete it.が表示されます。同じ行で再度Enterを押して、保存された会話を再開します。返信またはclaude attach <id>でそのフッタープロンプトなしで再開します。
claude rm <id> は行を削除します。ただし、保持されたケースで説明されている場合を除き、claude respawn <id> は元のプロンプトを再度実行します。このセッションの保存された会話はディスク上にもはやありませんを参照してください。
スリープだけではセッションを停止しません。セッションはスリープ全体で保持され、スーパーバイザーはウェイク時にそれらに再接続します。
セッションを開くと、会話が既に開いていると表示される
2 つのプロセスが同じトランスクリプトに書き込むことはできません。停止したセッションの保存された会話が別の実行中の Claude Code プロセスで既に開いている場合、Claude Code はセッション自体のプロセスを開始することを拒否します。何が表示されるかは、会話を保持しているものによって異なります:- 例えば
claude --resumeまたは/resumeで会話を再開したターミナル:行はOpen in a terminalを表示し、そこで続行するというヒントが表示され、行を開くとCan't open — this session is running in another terminalが表示されます。そのターミナルで続行するか、終了して行を再度開きます。 - 別の非インタラクティブ Claude Code プロセス(例えば、同じ会話のバックグラウンドセッションプロセスがまだ終了していない):行を開くと
This conversation is already open in another running Claude sessionが表示されます。そのプロセスを使用するか、終了するまで待機して行を再度開きます。
セッションを開くと、保存されたトランスクリプトがないと表示される
別の会話からバックグラウンド化された停止したセッションが最初の応答が完了する前に停止した場合、再開するものはありません。最初の応答が完了するまで、会話はバックグラウンド化された会話にのみ存在します。claude attach は This session has no saved transcript で開くことを拒否します。
エージェントビューでは、その行を開くとリストの下に Press enter again to restart this session fresh が表示されます。同じ行で再度 Enter を押して、空の会話でセッションを再開するか、シェルから claude respawn <id> を実行します。
元の会話は無傷です。claude --resume で再開するか、それで作業を続けます。詳細については、エラーリファレンスを参照してください。
ターミナルホストが停止したか、セッションが応答しなくなった
スーパーバイザーは各バックグラウンドセッションのターミナルを独自のホストプロセスで実行します。そのプロセスが停止したか応答しなくなった場合、Claude Code は理由を表示し、再開を提供します。どちらの場合も会話は保存され、再開はそれを再開します。エラーリファレンスは完全なメッセージを引用しています。 Claude Code は、Enter からまたは claude attach から実行されるシェルコマンドを実行している行を再開しません。これはコマンドを再度実行するためです。行のメッセージと claude attach の両方は、コマンドが再度実行されないことを示しています。
ターミナルホストが停止した
Linux と WSL では、スーパーバイザーはセッションを開くかどうかに関わらず数秒ごとに各ホストプロセスをチェックし、プロセスが終了しているがスーパーバイザーへの接続が閉じられていない場合、セッションを失敗としてマークします。- エージェントビューでは、行は
terminal host process died — press Enter to restartを表示します。それでEnterを押すと、Claude Code はセッションを新しいホストプロセスで再開します。 - シェルから、
claude attach <id>は既に失敗としてマークされたセッションを再開します。それ以外の場合は原因を報告して終了し、claude attach <id>を再度実行するよう指示します。
セッションが応答していない
スーパーバイザーが開いた状態を受け入れるが、約 10 秒間出力が到着しない場合、Claude Code は試みを終了し、再開を提供します。単にスタールしたセッション(例えば、マシンスリープ全体)はこの提供に到達しません。スーパーバイザーは開く時に自動的にそれを再開します。- エージェントビューでは、フッターは
Press enter again to restart this session — it isn't responding (its conversation is saved and resumes).を表示します。同じ行で再度Enterを押すと、Claude Code は応答しないプロセスを停止し、セッションを再開します。その 2 番目の押下なしに何も停止しません。 - シェルから、
claude attach <id>は原因を報告して終了し、claude stop <id>を実行してからclaude attach <id>を実行するよう指示します。
セッションが possibly low memory ノートで開始前に失敗する
バックグラウンドセッションのプロセスが開始を完了する前に終了し、ホストのメモリが不足している場合、行のステータスは終了を名前で表示し、possibly low memory — free some up and retry を追加します。
ノートは仮説であり、確認された原因ではありません。Claude Code はプロセスがエラーを書き込まずに静かに終了し、シグナルによって停止されず、ホストがその時点で低メモリを報告した場合にのみ追加します。プロセスが終了前にエラーを書き込んだ場合、行はそのエラーを代わりに表示します。
マシンのメモリを解放してから、行にアタッチ、ピーク表示、または返信して、スーパーバイザーがセッションの新しいプロセスを開始します。メモリが低いままの場合、スーパーバイザーはアイドルセッションを停止して、独自にリソースを解放し、他のセッションを停止しても何も解放されない場合は、保持されたピン留めセッションも停止します。
エージェントビューがバックグラウンドサービスが応答しなかったと表示される
アタッチ、ピーク表示、またはclaude logs がバックグラウンドサービスが応答しなかったと報告する場合、スーパーバイザープロセスがスタールしている可能性があります。それを停止して、次の claude agents に新しいものを開始させてください。バックグラウンドセッションを再起動全体で実行し続けるには、--keep-workers を渡してください:
--keep-workers がない場合、コマンドはバックグラウンドセッションも終了します。--any フラグは、デフォルトであるインストール済みサービスではなく、オンデマンドで開始されたスーパーバイザーを停止したいことを確認します。
スーパーバイザーが起動しても接続を受け入れることができない場合は、独自に終了してロックを解放するため、次の claude agents は手動停止なしで新しいものを開始します。上記の手順は、実行中のスーパーバイザーがスタールしている場合に適用されます。
コマンドが代わりに記録されたプロセスがスーパーバイザーとして検証できなかったと言って終了する場合は、報告されたプロセス ID を確認してください。それがあなたが所有するスーパーバイザーの場合は、自分で停止してから、~/.claude/daemon.lock を削除して、次の claude agents が新しく開始するようにします。
Windows では、スーパーバイザーが停止要求に応答しない場合、コマンドはそのプロセス ID を出力します。taskkill /PID <pid> でそのプロセスを終了して復旧を完了します。--keep-workers を渡した場合、バックグラウンドセッションは引き続き保持されます。
ディスパッチが Could not resolve authentication method で失敗する
バックグラウンドディスパッチが Could not resolve authentication method で失敗し、インタラクティブセッションが正常に認証される場合、ディスパッチを受け取ったワーカーは認証情報を取得しませんでした。バックグラウンドセッションはスーパーバイザーから認証情報を取得するため、このエラーはスーパーバイザープロセス自体で利用可能な保存された認証情報がないことを意味します。/login を実行したか、API キーを設定したことを確認してから、スーパーバイザーを停止してください:
claude agents または claude --bg は、保存された認証情報を読み取る新しいスーパーバイザーを開始します。/login ではなく ANTHROPIC_API_KEY などの環境変数で認証する場合は、変数が設定されているシェルからその次のコマンドを実行してください。
原因と修正の完全なリストについては、エラーリファレンスを参照してください。
macOS でバックグラウンドセッションが Desktop、Documents、または Downloads を読み取ることができない
macOS では、バックグラウンドセッションホストは独自のプロセスとして実行され、ターミナルとは別に保護されたフォルダへのアクセスをリクエストします。バックグラウンドセッションが~/Desktop、~/Documents、~/Downloads、または別の保護された場所を読み取るときに Operation not permitted を報告する場合、System Settings の Privacy & Security > Files and Folders でアクセスを許可するか、エントリの Full Disk Access を有効にしてください。
ネイティブインストーラーを使用すると、エントリは Claude Code として表示され、許可は更新全体で保持されます。Homebrew または npm などの他のインストール方法を使用すると、エントリはバイナリパスを表示し、更新後に再度許可が必要になる場合があります。
macOS でバックグラウンドセッションがローカルネットワークホストに到達できない
macOS 15 以降では、システムはローカルネットワークアクセス権限を付与するまで、プロセスがローカルネットワーク上のデバイスに到達することをブロックします。そのため、LAN アドレスをターゲットとするコマンドは、同じコマンドがフォアグラウンドターミナルで機能していても、バックグラウンドセッションでconnect: no route to host で失敗する可能性があります。バックグラウンドセッションでローカルネットワークアドレスに接続する最初のコマンドは、Claude Code の macOS ローカルネットワークアクセス権限プロンプトをトリガーします。一度許可すると、これらのコマンドはフォアグラウンドターミナルと同じ方法で LAN ホストに到達します。
セッションがアタッチ後に応答が遅い
セッションが完了し、約 1 時間アタッチされていない状態で待機すると、スーパーバイザーはリソースを解放するためにプロセスを停止します。アタッチすると、中断したところから新しいプロセスが開始され、プロセスが再起動している間にセッションにすぐに切り替わります。作業中、入力を待機しているセッション、パーミッションプロンプトまたは別のダイアログで一時停止しているセッション、またはピン留めされたセッションはこの方法で停止されることはありません。セッションをCtrl+T でピン留めして、応答性を保つことができます。
プロセスが開始している間、Claude Code はセッションのトランスクリプトの末尾を、ライブセッションが描画する方法でフォーマットして表示します。マークダウン、ハイライトされたコードブロック、ツール呼び出しは薄暗い行として表示され、Session is starting ノートを持つ薄暗いプロンプト領域の上に表示されます。ライブセッションは準備ができるとすぐにそれを置き換えます。
.claude/worktrees/ が満杯になっている
エージェントビューでセッションを削除すると、Claude が作成したワークツリーが削除されます。ただし、いくつかの削除はワークツリーを保持するか、そのディレクトリをディスク上に残すため、孤立したディレクトリが蓄積する可能性があります。Git がもはや認識しないディレクトリは git worktree list に表示されないため、それらを手動で削除します。
プロジェクトディレクトリで git worktree list を使用して孤立したエントリをリストし、各エントリを git worktree remove <path> で削除します。ワークツリーをクリーンアップするを参照してください。
制限事項
Agent view はリサーチプレビューであり、以下の制限事項があります。- レート制限が適用される:バックグラウンドセッションはインタラクティブセッションと同じようにサブスクリプション使用量を消費するため、10 個のエージェントを並行して実行するとクォータが 10 倍速く消費されます。
- セッションはローカル:バックグラウンドセッションはマシンで実行され、スリープ中は保持されますが、マシンがシャットダウンすると停止します。
- Claude が作成した worktrees はエージェント view のセッションで削除される:セッションが独自の worktree でファイルを編集した場合、セッションを削除する前に変更をコミットしてください。削除によって worktree が保持される場合もあります。
関連リソース
Claude を並列実行する他の方法、および実行するセッション間で検出結果を渡す方法については、以下を参照してください。- エージェントを並列実行:エージェントビューとサブエージェント、エージェントチーム、ワークツリーを比較
- クロスセッションメッセージング:セッション間で検出結果を相互に渡す
- Agent teams:互いにメッセージを送信する複数のセッションを調整
- Claude Code on the web:ローカルではなく、マネージドクラウド環境でセッションを実行
バージョン履歴
Agent view はリサーチプレビュー中に急速に進化しました。古い Claude Code バージョンを使用している場合、このページの一部の動作が異なる可能性があります。特に、claude agents はまだサポートしていないフラグを unknown option エラーで拒否します。下の表は各フラグと動作がいつ追加されたかをリストしています。