Skip to main content
claude agents で開くエージェントビューは、すべてのバックグラウンドセッションの 1 つの画面です。実行中のもの、入力が必要なもの、完了したものが表示されます。新しいセッションをディスパッチし、トランスクリプトをスクロールする代わりに一目でセッションの状態を確認し、セッションが必要とするときだけ介入します。各バックグラウンドセッションは完全な Claude Code の会話であり、ターミナルが接続されていなくてもバックグラウンドで実行し続けるため、いつでも開いて、返信して、去ることができます。 ターミナルのエージェントビュー。上部の行は、入力を待機しているセッション、実行中のセッション、完了したセッションの数をカウントします。4 つのセッションは「入力が必要」、「実行中」、「完了」の下にグループ化されています。各行はセッションの名前、最新のステータスまたは質問、および時間を表示します。下部には新しいタスクを説明するための入力と、キーボードヒントの行があります。 ターミナルのエージェントビュー。上部の行は、入力を待機しているセッション、実行中のセッション、完了したセッションの数をカウントします。4 つのセッションは「入力が必要」、「実行中」、「完了」の下にグループ化されています。各行はセッションの名前、最新のステータスまたは質問、および時間を表示します。下部には新しいタスクを説明するための入力と、キーボードヒントの行があります。 Claude が複数の独立したタスクに対して、あなたが毎ステップを監視することなく作業できる場合に、エージェントビューを使用します。バグ修正、プルリクエストレビュー、不安定なテストの調査を 3 つの行としてディスパッチし、別のウィンドウで作業を続け、行が入力が必要であることを示すか、結果が得られたときに確認します。 任意のエージェントのセッションでより直接的に作業したい場合は、行にアタッチして完全な会話に入ります。 エージェントビューを subagents、agent teams、worktrees と比較するには、エージェントを並列で実行するを参照してください。エージェントビューはあなたのマシン上でセッションを実行し、各セッションをディスパッチします。1 つの会話からクラウドで Claude が並列セッションを開始して追跡するには、Projectsを参照してください。
エージェントビューはリサーチプレビュー中です。インターフェースとキーボードショートカットは機能の進化に伴って変更される可能性があります。

クイックスタート

このチュートリアルでは、コアエージェントビューループについて説明します。タスクをディスパッチし、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 セッション内では、プロンプトフッターの ← ヒントは、← 2 agents のように入力を待機中のバックグラウンドエージェントの数をカウントし、入力が必要なエージェントがない場合は ← for agents に戻ります。99 を超えるカウントは 99+ として表示されます。カウントはターミナルがフォーカスされている間は約 10 秒ごとに更新され、フォーカスが戻ると即座に更新されます。カウントが移動したときとエージェントが完了したときに色が一時的に変わり、バックグラウンドセッションが完了して入力が必要なエージェントがない場合は、← 2 done のように完了した数を一時的に表示します。prefersReducedMotion 設定がオンの場合は両方のフラッシュがオフになり、スクリーンリーダーモードではヒントは非表示になります。

デフォルトでエージェントビューを開く

引数なしの claude がエージェントビューを新しい会話の代わりに開くようにするには、/config 設定をオンにします。
1

設定をオンにする

通常の claude セッションで /config を実行し、デフォルトでエージェントビューを開くをオンにします。メニューをスキップするには、defaultToAgentsView キーを直接設定します。
2

Claude Code を開始する

セッションを終了し、引数なしで claude を実行します。
エージェントビューが新しい会話の代わりに開きます。
設定がオンの場合に通常のセッションを開始するには、プロンプトを渡します。claude "fix the login test"。設定をオフにするには、通常のセッションで、またはエージェントビューからアタッチしたセッションで /config defaultToAgentsView=false を実行します。

エージェントビューでセッションを監視する

claude agents を実行してエージェントビューを開きます。ターミナル全体を占有し、状態でグループ化されたすべてのセッションをリストします。ピン留めされたセッションと入力が必要なセッションが上部に表示されます。各行はセッションの名前、現在のアクティビティ、およびセッションが作成されてからの経過時間を表示します。完了したセッションの経過時間は、実行にかかった時間で固定されます。 名前は、そのセッションで /color によって設定されたカラーで色付けされます。← または /background で セッションをバックグラウンドにする 場合も同様です。 デフォルトでは、リストはすべてのプロジェクト全体で開始したすべてのバックグラウンドセッションを表示します。1 つのリポジトリで作業しているセッションと別の worktree で作業している別のセッションの両方がここに表示されます。エージェントビューを開いたディレクトリに関係なく表示されます。リストを 1 つのプロジェクトに絞り込むには、--cwd を渡します:
これはそのディレクトリの下で開始されたセッションのみを表示します。~/projects/my-app/.claude/worktrees/ の下の worktree に移動した セッションも引き続き表示されます。 他のターミナルで開いているインタラクティブセッションは、バックグラウンドにする までは表示されません。セッションが生成する サブエージェント と チームメイト は、個別の行としてはリストされません。

セッション状態を読む

各行はアイコンで始まり、アイコンの色とアニメーションはセッションの状態を示します: これとは別に、アイコンの形状にも独自の意味があります: 行の右端に表示される #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、GitLab マージリクエストの場合は !1234 と書きます。
  • Claude Code は、SSH や tmux 経由などハイパーリンクのサポートを検出できない場合でもリンクを出力します。ラベルをプレーンテキストとしてレンダリングするには FORCE_HYPERLINK=0 を設定します。
  • セッションにフォローアップを送信した後も、行がライブの進捗表示に戻る間、Claude Code はラベルを保持します。
既存のプルリクエストで作業するセッションも同じ方法でリンクされます。Claude Code がプルリクエストを見つける方法は、Claude が実行するコマンドによって異なります:
  • 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 コマンドの後にブランチの検索を再試行するため、Claude が GitHub REST API を通じて作成したものも含め、プッシュ後に作成されたプルリクエストは、再試行で見つかった時点でリンクされます。
セッションが複数のプルリクエストにリンクされている場合、ラベルは代わりに 3 PRs のような数を表示し、最も注意が必要なオープンなプルリクエストに応じて色付けされます。すべてを確認するには ピークパネル を開きます。 プルリクエスト番号はそのステータスで色付けされます: タスクがプルリクエストで終了する場合、このラベルで結果を確認します。番号が緑になったらプルリクエストをレビューしてマージします。

ピーク表示と返信

選択した行で Space を押してピークパネルを開きます。パネルは、行がターミナルの端で切り詰めている文とともに開き、その文がどれかはセッションの状態によって異なります:
  • ユーザーを待っているセッション:尋ねている正確な質問。返信入力の上に表示されます
  • 完了したセッション:その結果
  • 作業中のセッション:その完全なステータス文
次に、セッションにリンクされたプルリクエストがリストされます。ユーザーを待っているセッションの場合、その下に waiting 3m のような行が表示されて待機時間を示し、これがパネルに表示される唯一の時間です。行の右端の経過時間は別の数字で、セッションが開始されてからカウントされます。 ほとんどの場合、ピークパネルで十分であり、完全なトランスクリプトを開く必要はありません。 ピークパネルに返信を入力して Enter を押すと、そのセッションに送信されます。返信の先頭に ! を付けると、代わりに Bash コマンドを送信します。返信がどう扱われるかは、セッションと送信する内容によって異なります:
  • 作業中のセッション:/model、/effort、/rename、/usage はすぐに実行されます。その他の返信は応答を中断せずにセッションの メッセージキュー に追加され、キューに入れた入力が反映されるタイミング で反映されます。その他の コマンド は、セッション自体のプロンプトで入力するとすぐに実行されるものであっても、ターンが終了するまで待機します
  • /stop だけの返信:セッションに届けられるのではなく、セッションが作業中でもユーザーを待っている状態でも、その場でセッションを停止します
  • シェルジョブ:返信は /stop も含め、入力としてコマンドのターミナルに送られます
セッションがユーザーを待っている場合、ピークパネルからの答え方は、セッションが何を待っているかによって異なります:
  • 選択肢が用意された質問:パネルには選択肢が番号付きで表示されます。返信入力が空の状態で選択肢の番号を押すと入力され、Enter で送信できます。または、代わりに独自の回答を入力します
  • 選択肢のない質問:回答を入力します。空の入力に返信の候補が表示されている場合は、Tab を押して入力し、送信前に編集できます
  • 権限プロンプトまたはその他のダイアログ(サンドボックス プロンプトや MCP サーバーの 入力リクエスト など):返信してもダイアログには答えられません。返信はキューで待機します。ダイアログに答えるには、→ でアタッチします
PermissionRequest または PreToolUse フックが、セッションが尋ねている呼び出しについて Claude Code が検証できない出力を返した場合、行には保留中のリクエストのテキストの前に、フックイベントと hook output invalid: および検証エラーが表示されます。別の形で失敗したフックの場合、行にはフックが失敗したことが表示されます。セッションは引き続き同じリクエストで待機します。 返信を配信できなかった場合、エラーメッセージには返信が保存されたかどうかが示されます。! または / を先頭に付けた返信は保存されません。Claude Code は、次にセッションを再起動したときに、保存された返信をセッションの次のプロンプトとして送信します。それ以外の返信は再度送信してください。 音声ディクテーション を ホールドモード で有効にしている場合、返信入力がフォーカスされている間にプッシュトゥトークキーを押し続けると、入力する代わりに返信をディクテーションできます。エージェントビュー下部のディスパッチ入力でも同じように機能します。 ↑ と ↓ を使用してパネルを閉じずに隣接するセッションをピーク表示するか、→ を使用してアタッチします。

セッションにアタッチする

選択した行で 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 では、アタッチしてから約 0.5 秒以内に ← を押すと、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 の 2 回押しは、いずれもセッションを実行したままにします。/loop が次のイテレーションを待っている間にデタッチすると、ループは実行を続け、そのイテレーションはユーザーがいなくてもスケジュールどおりに開始されます。デタッチする前にループを停止するには、ループを停止する を参照してください。セッション内からセッションを終了するには、/stop を実行します。

ターミナルを離れずにセッションを切り替える

フォアグラウンドで実行しているセッション、つまりエージェントビューからアタッチするのではなくターミナルで開始したセッションでは、空のプロンプトで ← を押すとセッションがバックグラウンドになり、その行が選択された状態でエージェントビューが開くため、ターミナルを離れずにセッションを切り替えられます。同じ 1 回の押下で、アタッチされたセッションはデタッチされます。 プロンプトのテキストの最後の文字を削除した直後、またはプロンプト履歴を移動した直後に ← を押すと、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 Code が会話を再度開けない場合は、終了して会話を再開する claude --resume コマンドを出力します。 Claude のタスクリスト は会話とともにバックグラウンドセッションに移動するため、その行に戻ったときもチェックリストはそのまま残っています。 ← を押した元の行は、矢印キーまたはマウスで選択を移動した後も、太字で薄くない名前を保持するため、どのセッションから来たかがわかります。 ← を押したときにツールが実行中の場合、Claude Code はバックグラウンドにする前にその完了を待ち、Claude はバックグラウンドセッションで応答を続けます。待たずにすぐにバックグラウンドにするには、← を再度押します。進行中のバックグラウンド作業をバックグラウンドセッションに引き継げない場合、Claude Code は /background と同様に、まず Background this session? ダイアログを表示します。 約 10 秒経過すると、Claude Code はそれ以上待たずにセッションをバックグラウンドにします。ただし、次のようなケースは例外です:
  • フォアグラウンドのサブエージェントがまだ実行中:Claude が開始した フォアグラウンドのサブエージェント の作業が引き継がれるよう、Claude Code は待機を続け、Still backgrounding after the current tool を表示します。待たずにバックグラウンドにするには ← を再度押しますが、その場合それらのサブエージェントは最初からやり直しになります。
  • 権限プロンプトまたは質問が回答を待っている:権限プロンプトまたは Claude が尋ねた質問が待機している間、Claude Code は待機を続け、Still backgrounding after the current tool — a question is waiting for your answer. を表示します。権限プロンプトでの Yes など、回答によってターンが続行する場合、Claude Code は現在のツールが完了した時点でセッションをバックグラウンドにします。
  • プロンプト入力に入力した:未送信のテキストはターミナルの入力ボックスに残り、バックグラウンドセッションには移動しないため、Claude Code は切り替えをキャンセルします。Backgrounding cancelled — you have unsent text in the input. Send it or clear it, then press ← again. と表示されます。
  • ターンを停止した:Claude Code は切り替えをキャンセルし、Backgrounding cancelled — the turn was stopped. を表示します。たとえば、Esc で Claude を中断した 場合、メインの会話からの権限プロンプトで コメントなしで No を選択した場合、またはそこで Claude が尋ねた質問で Esc を押した場合に、ターンは停止します。セッションをバックグラウンドにするには、← を再度押します。
  • キューに入れたメッセージを移動できない:Claude の作業中にキューに入れた メッセージは、会話とともにバックグラウンドセッションに移動します。そのいずれかを移動できない場合、セッションはフォアグラウンドに留まり、Claude Code は Cannot open agents — 1 queued message can't move to the background. Press ← again once Claude has read it. のような通知を表示します。
Claude Code がセッションをバックグラウンドにすると(約 10 秒経過後、または ← を再度押した後)、Claude がフォアグラウンドでまだ実行中のシェルコマンドは停止されます。Claude Code はそのコマンドについて Background this session? ダイアログを表示しません。バックグラウンドセッションでは、Claude はそのコマンドが開始されたという記録を持たないため、コマンドを再度実行する場合があります。セッションの移動時にコマンドを実行し続けるには、Claude Code がまだ待機している間に Ctrl+B を押して バックグラウンドコマンドに切り替えます。 ← を押すと、会話にまだメッセージがない場合でもセッションの行が作成されるため、→ でその行に戻れます。 フォアグラウンドセッションでのこのショートカットは、/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 がそのセッション用に作成した worktree は、削除方法と worktree の内容に応じて、削除、保持、またはそのまま残されます。会話のトランスクリプトは常にローカルマシンに残り、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 などのフラグで開かれた
画面に収まらない完了したセッションは … N more 行に折りたたまれます。Completed グループはライブグループの後に残った縦のスペースを埋め、短いターミナルではヘッダーが 1 行の概要に圧縮されるため、作業中または入力が必要なセッションは表示されたままになります。

セッションをフィルタリングする

ディスパッチ入力を次のいずれかのフィルターで始めると、入力に合わせてリストが絞り込まれます: フィルターを組み合わせるには、a:、s:、n:、または o: で始め、スペースで区切って追加します。リストには、そのすべてに一致するセッションが表示されます。たとえば、s:blocked a:reviewer は、ユーザーを待っている reviewer セッションを表示します。 フィルターが有効な間は、折りたたんだグループが展開されて一致するセッションが表示され、一致するセッションが選択されるため、Enter を押すとそのセッションが開きます。入力をクリアするとフィルターが解除され、それらのグループは再び折りたたまれます。

キーボードショートカット

エージェントビューで ? を押すと、ショートカットをコンテキスト内で確認できます。下の表はそれらをまとめたものです。 Agents コンテキスト にアクションがあるショートカットは、keybindings.json に従います。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 ヒントを表示します。入力した内容はすべてヒントの横の入力に残るため、編集できます。 繰り返しのタスクを スキル としてパッケージ化すると、プロンプトを再入力することなく、エージェントビューから同じワークフローを繰り返し開始できます。 同じ @name がサブエージェントと兄弟リポジトリの両方に一致する場合、サブエージェントが優先されます。最初の単語のみによる一致も適用されるため、たまたまサブエージェント名のいずれかで始まるプロンプトは、その単語をプレーンテキストとして扱わずにそのサブエージェントをディスパッチします。明示的にしたい場合は @ 形式を使用し、一致を避けるには別の単語でプロンプトを開始します。

特定のディレクトリにディスパッチする

新しいセッションは、エージェントビューを開いたディレクトリで実行されます。別のディレクトリを対象にするには、以下のいずれかを使用します。
  • そのディレクトリで claude agents を開きます。
  • 親ディレクトリで claude agents を開き、プロンプトで @<repo> を使用して子リポジトリをメンションします。@ を入力すると、以下の対象がリストされます。
    • 起動ディレクトリの 1 階層下にある Git リポジトリ
    • 起動元のリポジトリに登録された git worktree のうち、そのディレクトリツリー内にあるもの(Claude が .claude/worktrees/ の下に作成したものなど)。チェックアウトされたブランチでラベル付けされます。git worktree add ../feature などでリポジトリの外に追加された worktree はリストされません
    • リストに既にセッションがあるディレクトリ
    名前にスペースを含むディレクトリはリストされません。
  • シェルから、そのディレクトリに cd して claude --bg "<prompt>" を実行します。
エージェントビューがディレクトリでグループ化されている場合、ディスパッチは選択した行のディレクトリにプロンプトを送信するため、パスを再入力することなくグループを選択してそこにディスパッチできます。

セッションをバックグラウンドに送信またはコピーする

2 つのコマンドで、作業中のセッションからバックグラウンドに作業を移動できます。/background は現在の会話をバックグラウンドに送信してターミナルを解放し、/fork はコピーを送信して、元の場所で作業を続けられるようにします。

セッションをバックグラウンドに送信する

/background またはそのエイリアス /bg を実行すると、現在の会話がバックグラウンドセッションに移動します。/bg run the test suite and fix any failures のようにプロンプトを渡すと、先にもう 1 つ指示を与えられます。/bg の実行時に Claude が応答中の場合、応答はバックグラウンドセッションで続行されます。 サブエージェント、バックグラウンドシェルコマンド、ワークフロー、モニター などのバックグラウンド作業がまだ実行中のセッションを終了しようとすると、すぐに終了する代わりに Background work is running ダイアログが表示されます。Move to background and exit を選択すると、/background と同じ方法でセッションをバックグラウンドに移動してシェルに戻ります。エージェントビューが オフになっている 場合、このオプションは表示されません。 リスト上のバックグラウンドセッションが既にその会話の名前を持っている場合、Claude Code は新しい行の名前に my-session (2) のような番号を付け、既存の行の名前はそのままにします。新しい行の名前を変更するには、エージェントビューでその行を選択して Ctrl+R を押します。

/fork でセッションをコピーする

/fork を実行すると、元のセッションを実行したまま、現在の会話を新しいバックグラウンドセッションにコピーします。コピーはその時点までの会話のすべてを持って開始されます。コピーが実行される場所については、以下の箇条書きを参照してください。また、モデル、権限モード、effort レベル、およびセッション中に追加したディレクトリや「今後は確認しない」権限付与も引き継ぎます。コピーはエージェントビューに独自の行として表示されます。 フォーク後、2 つの会話は独立しています。コピーが行ったことが自動的に元の会話に入ることはありません。ただし、クロスセッションメッセージング が有効なセッションでは、どちらのセッションの Claude も明示的にもう一方にメッセージを送信できます。 セッションのコピーには Claude Code v2.1.212 以降が必要です。v2.1.161 から v2.1.211 では、/fork は代わりに フォークされたサブエージェント を開始します。これは現在の /subtask です。エージェントビューがオフになっている 場合、/fork はフォークされたサブエージェントの動作を維持し、/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 リポジトリの外では、フックが作成した worktree から移動したコピーのみがこの指示を受けます。WorktreeCreate フック がない場合、コピーはその場で編集します。元のセッションの worktree から移動したコピーには、分離設定に関係なく、その worktree を編集したり、そこでコマンドを実行したり、そこに入ったりしないようにも指示されます。 コピーが開始される場所は、現在のセッションが実行されている場所によって異なります。
  • ディスパッチされた他のセッションと同様に、コピーは ファイルを編集する前に独自の worktree に移動します。その場合、確認にはコピーが実行される場所は記載されません。
  • セッションが開始後にリンクされた worktree に移動した場合、コピーは移動前にセッションがあった場所で開始され、その場で編集する 場合を除き、そこで独自の worktree を作成してコード変更を行います。元のセッションの worktree がブランチをチェックアウトしている場合、その指示には、元のセッションの作業に基づくタスクを行うコピーが新しいブランチを元のブランチに基づいて作成するよう伝える内容も含まれます。元のブランチは worktree でチェックアウトされたままだからです。確認は runs in the origin tree で終わります。
  • メインの作業ツリーを持つリポジトリのリンクされた worktree 内でセッションを起動した場合、コピーはそのメインの作業ツリーで開始され、独自の worktree を作成するルールは同じですが、ブランチについての指示はありません。この場合も確認は runs in the origin tree で終わります。
  • ベアリポジトリ構成の worktree 内で起動されたセッションには戻るべきメインの作業ツリーがないため、コピーはその場所にとどまり、確認は edits this checkout で終わります。リンクされた worktree 内にないセッションで worktree 分離が オフになっている 場合も、コピーが開いているファイルを編集することになるため、同じ注記が表示されます。
置き換えられたシステムプロンプトや --tools 許可リストなど、コピーが継承しない起動フラグで開始されたセッションはフォークできません。Claude Code は部分的なコピーを作成する代わりに、その旨を伝えます。エージェントビューからディスパッチされたセッションは通常どおりフォークできます。コピーは元のセッションと同じ エージェント定義 と追加指示で起動されます。

バックグラウンドに移動するときに引き継がれるもの

バックグラウンドへの移動では、保存された会話から再開する新しいプロセスが開始され、進行中のバックグラウンド作業はそのプロセスに移動します。実行中のバックグラウンドシェルコマンド、バックグラウンド化されたサブエージェント、動的ワークフロー、/loop で作成したスケジュールタスク、および Claude の アーティファクトコメントへの自動返信 はすべて引き継がれ、そこで実行を続けます。サブエージェントは自身が開始したすべてのものと一緒に移動するため、その作業のすべてが移動できる場合にのみ引き継がれます。進行中のバックグラウンド作業を引き継がずに停止するには、CLAUDE_DISABLE_ADOPT=1 環境変数を設定します。その場合、Claude Code はバックグラウンドに移動する前に確認を求めます。 動的ワークフロー でまだサブエージェントが実行中の場合、Claude Code はバックグラウンドに移動する前に Background this session? ダイアログで確認を求め、再起動されるサブエージェントの数を示します。先に完了させるには Stay を選択します。確認すると、Claude Code はバックグラウンドセッションで実行を再生します。まだ実行中だったサブエージェントは最初からやり直されるため、それまでに使用したトークンは再度消費されます。完了したサブエージェントのうち、保存された結果を返すものと再実行されるものについては、一時停止後の再開 を参照してください。 Claude Code は、実行中の モニター など引き継げないバックグラウンド作業を停止し、モニターを所有するバックグラウンド化されたサブエージェントも一緒に停止します。そのような作業が実行中の場合、Claude Code は Background this session? ダイアログを表示し、作業を停止する前に確認できるようにします。 バックグラウンドに移動した後、セッションは新しいサブエージェント、モニター、バックグラウンドコマンドを開始でき、それらはその後のデタッチや再アタッチをまたいで実行を続けます。 元の起動時の設定フラグはバックグラウンド化されたセッションに引き継がれるため、その MCP サーバー、設定、フォールバックモデルは引き続き有効です。
  • --mcp-config と --strict-mcp-config
  • --settings
  • --setting-sources
  • --add-dir
  • --plugin-dir
  • --fallback-model
  • --allow-dangerously-skip-permissions
セッション中に /add-dir で追加したディレクトリも引き継がれます。--allow-dangerously-skip-permissions を引き継ぐと、バックグラウンド化されたセッションでも bypassPermissions に切り替えられる状態が維持されますが、新たに何かを付与するわけではありません。このモードには引き続き、バイパスの免責事項への同意 が記録されている必要があります。

シェルからエージェントをディスパッチする

--bg またはその長い形式 --background を渡すと、直接バックグラウンドで動作するセッションを開始します。
プロンプトは位置引数であり、-p の値ではありません。Claude Code は、-p または --print と組み合わせた --bg をセッションの作成前に拒否します。--print は claude agents がアタッチするインタラクティブセッションを開始しないためです。 信頼していない ディレクトリのターミナルから claude --bg を実行すると、最初にワークスペース信頼ダイアログが表示され、同意するとセッションが開始されます。拒否すると、Claude Code はセッションを開始せずに終了します。スクリプト内など、ダイアログを表示できない場所では、コマンドは代わりに Workspace not trusted エラーで終了します。 code-reviewer など、定義済みの特定の サブエージェント をセッションのメインエージェントとして実行するには、--bg を --agent と組み合わせます。
名前がどのサブエージェントにも一致しない場合、起動は失敗します。Claude Code は no agent named 警告を出力し、セッションをバックグラウンド化したと報告しますが、セッションは --agent '<name>' not found エラーで直ちに終了します。 バックグラウンド化されたセッションが後で再開または再起動されると、Claude Code はエージェントとそのツール制限を復元します。システムプロンプトについては、再開された会話でのシステムプロンプトフラグ を参照してください。そのワークスペースを信頼している 場合、Claude Code はまずセッション自身のディレクトリでエージェントを検索するため、プロジェクトスコープのエージェントは、セッションが別のディレクトリから再開された場合でも読み込まれます。エージェントが存在しなくなった場合、セッションはデフォルトのツールで続行され、そのトランスクリプトは エージェント名を示す警告 とともに開きます。 既存の会話をバックグラウンドで続行するには、その完全なセッション ID を --resume で渡します。
Claude Code v2.1.257 以降では、Claude Code はそのセッションを同じ ID で続行するか、新しい ID でコピーを開始し、その場で続行できなかった理由を説明する note: 行を出力します。セッションがその場で続行される場合、claude agents にはそのセッションの行が 1 つ表示されます。 --bg を --continue、引数なしの --resume、または名前やファイルパスを指定した --resume と組み合わせると、Claude Code は常にそのようなコピーを開始します。注記なしで意図的にコピーを開始するには、--fork-session を追加します。 エージェントビューでの表示名を自動生成されたものの代わりに設定するには、--name を渡します。
バックグラウンド化の後、Claude はセッションの短い ID と、セッションを管理するためのコマンドを出力します。バックグラウンドセッションをホストするサービスがまだ実行されていない場合、--bg はこの出力の前に Starting background service… を出力することがあります。--name を渡すと、名前は短い ID の後に表示されます。

シェルコマンドを実行する

Claude セッションの代わりにシェルコマンドをバックグラウンドジョブとして実行するには、--exec を渡します。次の例は pytest -x をバックグラウンドジョブとして実行します。
エージェントビューでは、ディスパッチ入力の最初の文字として ! を入力すると、同じ種類のジョブをディスパッチできます。! はプレフィックスとして表示され、その後に続くものすべてがコマンドとなり、Enter でジョブが開始されます。 コマンドは PTY ベースのジョブとして実行され、エージェントビューに行として表示され、出力の最新行がそのステータスになります。シェルジョブは Claude の代わりにコマンドを実行するため、モデルは呼び出されず、出力はどのセッションにも送信されません。 出力を表示するには、行にアタッチするか、Space を押してアタッチせずにプレビューするか、シェルから claude logs <id> を実行します。キャプチャされた出力はメモリ内に保持され、ディスクには書き込まれません。行とその出力はコマンドの終了から約 5 分後に自動的にクリーンアップされるため、結果が必要な場合はそれまでに確認してください。

ファイル編集の分離方法

エージェントビューからバックグラウンドセッションをディスパッチするか、claude --bg で開始すると、セッションは作業ディレクトリで開始されます。ファイルを編集する前に、Claude はセッションを .claude/worktrees/ の下にある分離された git worktree に移動します。これにより、並列セッションは同じチェックアウトを読み取りつつ、それぞれ独自の場所に書き込めます。セッションが worktree に入ると、Claude Code はそのセッションと、セッションが生成するすべてのサブエージェントに対して worktree 分離を強制します。 Claude は以下の場合に worktree をスキップします。
  • 既に開いていたセッションを ← または /background で バックグラウンドに移動した 場合。そのセッションは、既に作業していた場所でファイルの編集を続けます
  • セッションが既にリンクされた git worktree 内にある場合。Claude が .claude/worktrees/ の下に作成したものか、git worktree add で別の場所に作成したものかは問いません
  • Claude が編集しているファイルが、セッションまたはそのサブエージェントが git worktree add で作成したものなど、リンクされた git worktree 内にある場合
  • 作業ディレクトリが git リポジトリではなく、WorktreeCreate フック も設定されていない場合
  • 書き込み先が作業ディレクトリの外にある場合
git worktree が実用的でないリポジトリで worktree 分離をオフにするには、worktree.bgIsolation を "none" に設定します。バックグラウンドセッションは、先に worktree に移動することなく、作業コピーを直接編集するようになります。プロジェクトの .claude/settings.json に設定を追加します。
git リポジトリの外では、セッションは作業ディレクトリに直接書き込み、互いに分離されないため、同じファイルを編集する並列セッションのディスパッチは避けてください。別のバージョン管理システムを使用している場合は、WorktreeCreate フック を設定すると、Claude は git の場合と同じ方法で編集を分離します。 git リポジトリではないディレクトリでフックが失敗した場合、Claude はそのディレクトリの分離をスキップし、作業ディレクトリをその場で編集します。git リポジトリ内では、編集前に Claude が worktree に移動させるセッションは、その移動が行われるまで共有チェックアウトに対して Edit、Write、NotebookEdit ツールを使用できません。 セッションの worktree のパスを確認するには、アタッチしてその作業ディレクトリを確認します。 バックグラウンドセッションが生成する サブエージェント は、セッションの作業ディレクトリを継承します。セッションが worktree に入ると、サブエージェントのファイル編集は作業コピーではなくその worktree に反映されます。代わりにサブエージェントに独自の別の worktree を与えるには、そのフロントマターで isolation: worktree を設定するか、生成時に isolation: "worktree" を渡します。 Claude が入った worktree でバックグラウンドセッションがコード変更を行った場合、Claude Code は完了前に作業を保存するよう Claude に指示します。これにより、セッションとその worktree を削除しても作業が失われません。
  • コミットとプッシュ: Claude は確認なしでコミットし、リポジトリにリモートがある場合はブランチをプッシュします。
  • ドラフトプルリクエスト: タスクが必要とする場合、Claude はプルリクエストを作成し、行に #N ラベル が表示されます。
  • 行わないこと: main または master へのプッシュ、フォースプッシュ、マージ。
  • ユーザーの git に関する指示が優先されます: タスク、CLAUDE.md、または メモリ で、コミットやプッシュはユーザー自身が行うと指定されている場合、Claude は git 操作をユーザーに任せます。
自身で分離したのではないチェックアウトを編集するセッションは、コミットやブランチの切り替えの前に引き続き確認を求めます。これは、分離が "none" に設定されている場合、worktree への移動が失敗した場合、または既存の worktree 内でセッションが開始された場合に適用されます。 タスクの内容にかかわらず、Claude は何を行ったか、および作業がどこにあるか(パス、ブランチ、プルリクエスト、または回答そのもの)を示すレポートでジョブを終えます。

セッションを削除すると何が削除されるか

セッションを削除するには、エージェントビュー で Ctrl+X を 2 回押すか、claude rm を使用します。以下で保持されるケースを除き、セッションはリストから削除されます。そのトランスクリプトは claude --resume で利用できるようマシン上に残り、削除はスーパーバイザーの再起動後も維持されます。 Claude がセッション用に作成した worktree がどうなるかは次のとおりです。
  • エージェントビューは、コミットされていない変更も含めて worktree を削除するため、残しておきたいものは先にコミットしてください。
  • claude rm は、コミットされていない変更がある場合、セッションの行と一緒に worktree を保持します。
  • エージェントビューも claude rm も、別の実行中のセッションが使用中またはロック中の worktree は削除せず、再度削除しても変わりません。Claude Code は worktree とセッションを保持し、保持したディレクトリとその理由を示します。エージェントビューでは、セッションの行に not deleted が表示されます。もう一方のセッションを閉じてから、再度削除してください。
  • 他の場所に保存されていることを Claude Code が確認できないコミットが worktree にあるセッションを削除すると、Claude Code は worktree とセッションを保持し、メッセージには worktree のブランチと未プッシュのコミット数が示されます。メッセージには、コミットをプッシュするか、再度削除してコミットを破棄するかの 2 つの対処方法も示されます。 リモート上のコミットは削除を妨げません。origin リモートのデフォルトブランチのローカルコピー上のコミットも、そのブランチがメインチェックアウト(worktree ではなくリポジトリディレクトリ自体)でチェックアウトされている限り、削除を妨げません。 このように拒否された後は、次のいずれかを選択します。
    • コミットを残すには、プッシュするか、そのデフォルトブランチにマージしてから、セッションを再度削除します。
    • コミットを破棄するには、プッシュせずにセッションを再度削除します。エージェントビューでその行に対して Ctrl+X を 2 回押すか、拒否時に出力された claude rm <id> --discard-unpushed コマンドを実行します。これにより、セッションと worktree がそのブランチとともに削除され、未プッシュのコミットとコミットされていない変更は破棄されます。
    再度削除するとき、Claude Code は拒否時に示された内容のみを破棄します。その後 worktree に新しいコミットが追加されていた場合、Claude Code は再び worktree を保持し、更新された状態を表示します。 別の完了済みセッションの記録にもその worktree が記載されている場合、再度削除しても worktree は残ります。コミットをプッシュしてから、再度削除してください。
  • git worktree prune の後など、git がもはや認識しない worktree は削除を妨げません。Claude Code はセッションを削除し、ディレクトリはディスク上に残します。
  • git または WorktreeRemove フック が worktree の削除に失敗した場合、Claude Code は worktree とセッションを保持し、メッセージにその原因を示します。フックの場合、メッセージには exited 1 などの終了状況が示され、stderr の冒頭が引用されます。メッセージでは、次に行うべきことも以下から示されます。
    • セッションを再度削除して、それでもディレクトリを削除します。エージェントビューでその行に対して Ctrl+X を 2 回押すか、claude rm の拒否時に出力された claude rm <id> --force-remove-worktree <worktree-id> コマンドを実行します。worktree のブランチはリポジトリに残ります。 Claude Code がこの方法を提示するのは、以下のすべてを確認できる場合のみです。
      • ディレクトリが、.claude/worktrees/ の下にあるリポジトリのリンクされた worktree の 1 つである
      • worktree にも、チェックアウトされたサブモジュールにも、追跡対象ファイルへのコミットされていない変更がない
      • 他のセッションの記録にそのディレクトリが記載されていない
      別の git リポジトリに置き換えられたものなど、サブモジュールのチェックアウトの状態を Claude Code が確認できない場合も、この方法は提示されません。
    • コミットされていない変更をコミットまたはスタッシュする、別の git リポジトリを worktree の外に移動する、ディレクトリを使用しているものを閉じる、フックを修正するなど、障害となっているものを解消してから、セッションを再度削除します。
    • ディレクトリを自分で削除してから、セッションを再度削除します。
自分で作成し、その中でセッションを開始した worktree は、いずれの場合もそのまま残ります。 リポジトリが削除された場合や、WorktreeCreate フック が別の場所にディレクトリを作成した場合など、worktree ディレクトリがどの git リポジトリにも属さないセッションも削除できます。ディレクトリにファイルが残っている間は、次のようになります。
  • エージェントビューは、ファイルを破棄する前に同じく Ctrl+X の 2 回押しを求めます。フックが作成したディレクトリの場合は、代わりに WorktreeRemove フック を実行し、そのフックがない場合は削除を拒否してセッションを保持します。
  • claude rm はセッションと worktree を保持し、その理由を示します。
どちらの方法でも、別の完了済みセッションの記録に記載されているディレクトリは保持されます。

モデルを設定する

エージェントビューのヘッダーに表示されるモデル名が、ディスパッチのデフォルトです。入力から開始する新しいセッションはこのモデルを使用します。これはユーザー設定の model 設定 から取得されます。/model ピッカー でモデルを選択するか、設定を直接編集して設定します。 エージェントビューのセッション全体でディスパッチのデフォルトを上書きするには、エージェントビューを開くときに --model を渡します。権限モード、モデル、effort を参照してください。 エージェントビュー内からディスパッチのデフォルトを変更するには、ディスパッチ入力に /model に続けてモデル名を入力し、Enter を押します。ヘッダーが更新されてそのモデルが (session) マーカー付きで表示され、以降にディスパッチするセッションはそのモデルを使用します。/model default と入力すると上書きが解除され、ディスパッチのデフォルトに戻ります。この上書きは現在の claude agents の実行が終わるまで有効で、設定ファイルには書き込まれません。次の例は、1 つ目のセッションを Opus で、次のセッションを Sonnet でディスパッチします。
各バックグラウンドセッションは異なるモデルで実行できます。1 つのセッションについて上書きするには、次のようにします。
  • シェルから、claude --bg に --model を渡します。
  • 実行中のセッションにアタッチして /model を実行して切り替えます。ピッカーでの選択、または入力した /model <name> は、ピッカーで s を押してセッション限定の切り替えにしない限り、新しいセッションのデフォルトとして保存されます。セッション限定の切り替えは、セッションが再生成されても維持されます。
  • フロントマターで model フィールドを設定している サブエージェント をディスパッチします。

権限モード、モデル、effort

バックグラウンドセッションは、どこからどのようにディスパッチされたかに応じて、設定、プロバイダー、権限モード、モデル、effort を取得します。以下のサブセクションでは、それぞれの取得元と、スーパーバイザーがセッションを再起動したときに維持されるものについて説明します。

設定とプロバイダー

バックグラウンドセッションは、実行されるディレクトリから 設定 を読み取ります。これは、引き継いだ設定フラグ を付けてそのディレクトリで claude を開始した場合と同じです。これにはプロジェクト設定の env 値 も含まれるため、そこで設定された 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 で自分のセッションをバックグラウンドに移動する場合
  • 現在いるディレクトリにセッションをディスパッチする場合
  • 現在いるディレクトリの停止したセッションに、アタッチまたは返信して起動する場合
Claude Code は、クラウドプロバイダーの前段にあるゲートウェイも転送します。ディスパッチ元のシェルでプロバイダーを選択し、そのゲートウェイエンドポイントを認証バイパスフラグとともにエクスポートしている場合、Claude Code は 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 は以下のうち最初に該当するものから権限モードを取得します。
  1. 対象ディレクトリの permissions.defaultMode。取得元について 2 つのルールが適用されます。
  2. 移動元のセッションの権限モード
Claude Code がある取得元のモードを許容度が高すぎるとして拒否した場合、リストの次の取得元で決まります。たとえば、plan モードのセッションから、チェックインされた設定で acceptEdits を要求するディレクトリにディスパッチした場合、新しいセッションは plan モードで開始されます。その defaultMode を ~/.claude/settings.json に移すと、移動元のセッションの権限モードに関係なく適用されます。 許容度は、plan、次に Manual と dontAsk、次に acceptEdits と auto(互いに相手より許容度が高いとみなされます)、次に bypassPermissions の順に高くなります。

ディスパッチのデフォルト

エージェントビューからディスパッチするすべてのセッションのデフォルトを設定するには、開くときに --permission-mode、--model、--effort、--agent のいずれかを渡します。
ここでの --effort は、ultracode を含め、トップレベルの --effort フラグ と同じ値を受け付けます。 --agent は、ディスパッチのプロンプトで @name または最初の単語としてサブエージェントが指定されていない場合に使用される サブエージェント を設定します。デフォルトは、agent 設定 が設定されていればその値、そうでなければ組み込みの汎用 claude エージェントです。ディスパッチ入力でサブエージェントを指定すると、その両方が上書きされます。 claude agents は、--permission-mode bypassPermissions の短縮形として --dangerously-skip-permissions も受け付けます。また、--allow-dangerously-skip-permissions を指定すると、そのモードで開始せずに、ディスパッチした各セッションの Shift+Tab サイクルで bypassPermissions を利用可能にします。どちらも トップレベルの CLI フラグ と同じです。 --restricted を渡すと、ビューからディスパッチするすべてのセッションが、それぞれトップレベルの --restricted フラグで起動されたかのように 制限モード で開始されます。Claude Code v2.1.248 以降が必要です。 有効なデフォルトは、ディスパッチ入力の下のフッターに表示されます。 bypassPermissions モードで開始されるバックグラウンドセッションには、バイパスの免責事項への同意 が記録されている必要があります。このモードでは、監視していないセッションが承認なしに操作を行えるためです。claude agents に --dangerously-skip-permissions または --permission-mode bypassPermissions を渡すと、以前に同意していない場合は同じ免責事項が表示され、同意するとビューから起動するセッションに bypassPermissions が適用されます。--allow-dangerously-skip-permissions を渡した場合も同じ免責事項が表示され、同意すると、それらのセッションをそのモードで開始せずに、Shift+Tab サイクルで bypassPermissions を利用可能にします。

再起動後も維持されるもの

バックグラウンドセッションに選択した権限モード、モデル、effort は、引き継いだ設定フラグ とともに、スーパーバイザーが後でそのプロセスを 停止して再起動 しても維持されます。セッションの途中で /model や /effort で変更したモデルや effort も保持されます。 セッションが --effort や /effort ではなく設定から effort を取得していた場合、Claude Code はそのセッションのプロセスを開始するたびに設定を読み直します。settings.json で保存された effort を編集すると、その変更は ← または /bg でバックグラウンドに移動するセッションと、その後の再起動に反映されます。保存された effort とは、effortLevel キーまたは modelSettings のエントリです。 Claude Code は、/rename または Ctrl+R で設定した名前もその再起動後に保持するため、引き続き claude --resume <name> を実行してセッションにアクセスできます。 アタッチ中に Ctrl+S でスタッシュしたプロンプトもセッションとともに保持されます。プロセスが停止または再起動された後にセッションを再度開き、Ctrl+S を押すとスタッシュしたテキストが復元されます。スタッシュ内の貼り付けたコンテンツは再起動後には残りません。

設定、プラグイン、MCP サーバー

エージェントビューは、設定、プラグイン、MCP サーバー、追加ディレクトリを読み込むための claude と同じ設定フラグを受け付けます。エージェントビューは --settings、--setting-sources、--plugin-dir を自身に適用し、すべての設定フラグをビューからディスパッチするセッションに渡すため、この方法で読み込んだプラグインや MCP サーバーはそれらのセッションで利用できます。 --add-dir、--plugin-dir、--mcp-config は値ごとに 1 回ずつ繰り返して指定します。claude agents は、--add-dir a b c のようなスペース区切りの形式をサポートしていません。 --settings、--setting-sources、--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/ の下のディレクトリ名です。これらのコマンドはスクリプティングまたはエージェントビューを開きたくない場合に便利です。 claude attach と claude logs は、claude logs "auth refactor" のように、ID の代わりにセッション名の一部を受け取ることができます。claude attach が名前でセッションを開けるのはそのプロセスが実行中の間だけなので、停止したセッションを再開するには代わりに ID を渡してください。名前を渡すには Claude Code v2.1.290 以降が必要です。

セッションを 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 プロセスであり、そのプロセスに何が起こるかはセッションの状態によって異なります。
  • 動作中、権限プロンプトまたは他のダイアログで一時停止中、または接続中:プロセスは実行を続けます。実行中のサブエージェント、ワークフロー、またはモニターは動作中としてカウントされます。/loop のウェイクアップなど、保留中のセッションスコープのスケジュールタスクも同様です。
  • 完了したか次のメッセージを待機中で、約 1 時間未接続:スーパーバイザーはリソースを解放するためにプロセスを停止します。質問を投げかけてターンを終了したセッションは、次のメッセージを待機中としてカウントされます。会話はディスクに保存され、次回接続または返信するときに、セッションは中断したところから再開されます。Ctrl+T でセッションをピンして、プロセスの実行を継続させます。
  • スーパーバイザーが実行中に予期せず終了した:スーパーバイザーはプロセスを再起動します。← または /background で自分でバックグラウンドに送信したセッションを、たとえば kill で終了した場合は、再起動されずに停止済みとしてマークされます。シャットダウンで終了したセッションについては、セッションがシャットダウン後に失敗または停止として表示される を参照してください。
  • 自動更新後:スーパーバイザーは新しいバージョンに再起動し、アイドル状態のセッションをバックグラウンドで移動します。動作中、ユーザーの応答を待機中、または接続中のセッションは中断されません。
  • スーパーバイザー自体が停止した(たとえば、そのプロセスが Claude Code の外部から終了された場合):macOS と Linux では、各セッションのプロセスは新しいスーパーバイザーが再接続するのを約 1 分間待ち、再接続されなければ停止します。その 1 分以内にシェルで claude agents を実行すると、新しいスーパーバイザーが起動し、セッションの実行が継続されます。先に 1 分が経過した場合、セッションは停止しますが、保存された会話はディスクに残ります。セッションがシャットダウン後に失敗または停止として表示される で説明されているように、セッションに接続するか返信すると、保存された会話からセッションが再起動されます。
セッションのプロセスが停止または再起動されると、Claude が開始したバックグラウンドシェルコマンド、動的ワークフロー、およびバックグラウンドサブエージェントは次のプロセスに引き継がれます。実行中のモニターとサブエージェントが開始したシェルコマンドはプロセスで停止します。セッションを削除すると、引き継がれたすべてのものが停止します。代わりにプロセスで停止させるには、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 を実行して新しいバージョンを取得するよう指示します。 セッションはそのバージョンの不一致を無傷で生き残ります。セッションの 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 はそれを実行する前に確認します:
  • 移動できない作業:セッションには、実行中の モニター など、バックグラウンドセッションに移動できない作業があります。ダイアログは 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 Code は行を開くことを拒否します。メッセージは再開するものがないことを示しています。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 Code は拒否された試みで入力した返信を保存し(! または / で始まる返信を除く)、セッションが次に開始するときに送信します。

セッションを開くと、保存されたトランスクリプトがないと表示される

別の会話からバックグラウンド化したセッションのうち、独自のターンを実行する前に停止したセッションを開くと、Claude Code はその会話を再開します。Claude Code がその会話を見つけられない場合、セッションを開くことを拒否します:
  • claude attach は This session has no saved transcript を出力します。
  • エージェントビューでは、リストの下に Press enter again to restart this session fresh が表示されます。
同じ行で再度 Enter を押して空の会話でセッションを再開するか、シェルから claude respawn <id> を実行します。 詳細については、エラーリファレンスを参照してください。

ターミナルホストが停止したか、セッションが応答しなくなった

スーパーバイザーは各バックグラウンドセッションのターミナルを独自のホストプロセスで実行します。そのプロセスが停止したか応答しなくなった場合、Claude Code は理由を表示し、再開を提供します。どちらの場合も会話は保存され、再開はそれを再開します。エラーリファレンスは完全なメッセージを引用しています。 Claude Code は、Enter からまたは claude attach から実行されるシェルコマンドを実行している行を再開しません。これはコマンドを再度実行するためです。行のメッセージと claude attach の両方は、コマンドが再度実行されないことを示しています。

セッションが possibly low memory ノートで開始前に失敗する

バックグラウンドセッションのプロセスが開始を完了する前に終了し、ホストのメモリが不足している場合、行のステータスは終了を名前で表示し、possibly low memory — free some up and retry を追加します。 ノートは仮説であり、確認された原因ではありません。Claude Code はプロセスがエラーを書き込まずに静かに終了し、シグナルによって停止されず、ホストがその時点で低メモリを報告した場合にのみ追加します。プロセスが終了前にエラーを書き込んだ場合、行はそのエラーを代わりに表示します。 マシンのメモリを解放してから、行にアタッチまたは返信すると、スーパーバイザーがセッションの新しいプロセスを開始します。メモリが低いままの場合、スーパーバイザーはアイドルセッションを停止して独自にリソースを解放し、他のセッションを停止しても何も解放されない場合は、アイドル状態のピン留めセッションも停止します。

エージェントビューがバックグラウンドサービスが応答しなかったと表示される

アタッチ、ピーク表示、または claude logs がバックグラウンドサービスが応答しなかったと報告する場合、スーパーバイザープロセスがスタールしている可能性があります。それを停止して、次の claude agents に新しいものを開始させてください。バックグラウンドセッションを再起動全体で実行し続けるには、--keep-workers を渡してください:
次に、シェルで claude agents を実行して新しいスーパーバイザーを開始します。停止から約 1 分以内に実行すると、新しいスーパーバイザーはまだ実行中のセッションに再接続し、それらの作業は中断されることなく続行されます。それより時間がかかった場合、macOS と Linux ではその時点でセッションは自動的に停止しており、いずれかにアタッチまたは返信すると、保存された会話からそのセッションが再開されます。--keep-workers がない場合、コマンドはバックグラウンドセッションも終了します。--any フラグを指定すると、Claude Code がオンデマンドで開始したスーパーバイザーをコマンドで停止できます。 スーパーバイザーが起動しても接続を受け入れることができない場合は、独自に終了してロックを解放するため、次の 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 キーを設定したことを確認してから、スーパーバイザーを停止してください:
約 1 分以内に、シェルで 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 が作成した worktree が削除されます。ただし、いくつかの削除は worktree を保持するか、そのディレクトリをディスク上に残すため、孤立したディレクトリが蓄積する可能性があります。Git がもはや認識しないディレクトリは git worktree list に表示されないため、それらを手動で削除します。 プロジェクトディレクトリで git worktree list を使用して孤立したエントリをリストし、各エントリを git worktree remove <path> で削除します。worktree をクリーンアップするを参照してください。

制限事項

Agent view はリサーチプレビューであり、以下の制限事項があります。
  • レート制限が適用される:バックグラウンドセッションはインタラクティブセッションと同じようにサブスクリプション使用量を消費するため、10 個のエージェントを並行して実行するとクォータが 10 倍速く消費されます。
  • セッションはローカル:バックグラウンドセッションはマシンで実行され、スリープ中は保持されますが、マシンがシャットダウンすると停止します。
  • Claude が作成した worktrees はエージェント view のセッションで削除される:セッションが独自の worktree でファイルを編集した場合、セッションを削除する前に変更をコミットしてください。削除によって worktree が保持される場合もあります。
Claude を並列実行する他の方法、および実行するセッション間で検出結果を渡す方法については、以下を参照してください。

バージョン履歴

Agent view はリサーチプレビュー中に急速に進化しました。古い Claude Code バージョンを使用している場合、このページの一部の動作が異なる可能性があります。特に、claude agents はまだサポートしていないフラグを unknown option エラーで拒否します。下の表は各フラグと動作がいつ追加されたかをリストしています。