Claude Codeの/tasksコマンドでサブエージェントの完了を確認する
/tasksはバックグラウンドのシェルコマンドとサブエージェントを一覧表示し、完了後30秒だけ残る猶予も扱います。エイリアスは/bashesです。
/tasksは、現在のセッションで動いているバックグラウンドのシェルコマンドとサブエージェントを一覧表示するコマンドです。完了済みのサブエージェントも一定時間は残るため、「あのサブエージェント、結局どうなった」を後から確認できます。エイリアスは/bashesです。
/tasksが映すもの
/tasksが一覧に出すのは、実行中のバックグラウンドシェルコマンドと、実行中または完了直後のサブエージェントです。プロンプト入力欄の下に常時出るサブエージェントパネルとは別の画面で、パネルから消えた行を後から拾い直す役割も持ちます。
> /tasks
# 実行中・完了直後の項目が一覧表示される
# 行を選んでEnterでトランスクリプトを開き、xで停止する似た名前の画面にCtrl+Tのタスクリストがありますが、映しているものは別物です。あちらはClaude自身が組んだ作業計画のチェックリストで、こちらはシェルコマンドとサブエージェントの実行状況です。両者の違いはClaude Codeタスクリスト表示の見方とCtrl+T操作で表にまとめています。
完了直後は30秒だけ「done」として残る
サブエージェントが成功して終わると、プロンプト下のパネルからその行は即座に消えます。代わりにフッターへ「/tasks to see subagents」という案内が30秒間出ます。その間に/tasksを開くと、完了した項目が「done」として実行中の項目より下に並んだ状態で見つかります。Enterを押せばトランスクリプトを開いて内容を確認できます。
この30秒の猶予はv2.1.232で入った仕様です。それより前は、成功で終わったサブエージェントも失敗時と同じ扱いでパネルに30秒残るだけで、フッターの案内も出ませんでした。さらにv2.1.208より前まで遡ると、完了した瞬間に一覧そのものから消え、詳細画面も閉じる挙動でした。バージョンを重ねるごとに「終わった後も少し確認できる」方向へ調整が続いてきた機能です。
失敗・停止したサブエージェントは/tasksの一覧から外れる
成功時とは逆に、サブエージェントが失敗した、または利用者が停止させた場合は挙動が変わります。プロンプト下のパネルには行が30秒残ります。早く消したいときは行を選んでxを押せばその場でクリアできます。ただしこちらは/tasksの一覧そのものからは外れる扱いで、完了済み(done)としては並びません。「成功は/tasksに残る、失敗・停止はパネルだけに残る」という非対称な設計です。
xで止めたサブエージェントは自動で再開しない
/tasksで実行中のサブエージェントを選んでxを押すと停止します。停止したサブエージェントは、ClaudeからSendMessageで話しかけられても自動では再開しません(v2.1.191以降の挙動)。SDK側のstop_taskリクエストで止めた場合も同じです。
再開したい場合は、行がまだパネルに残っている間にそのサブエージェントのトランスクリプトへ直接入力します。これで停止状態がクリアされ、以降はSendMessageによる自動再開も再び効くようになります。停止させたことを忘れたまま「反応がない」と感じたら、この手順を思い出すと解決します。
行にモデル名と実行強度も出る
v2.1.242以降、/tasksの各サブエージェントの行にはモデル名が表示されます。そのサブエージェントの定義(または呼び出し元のskill)に実行強度(effort)の指定があれば、それも添えて表示されます。どのモデルで動いているかを確認したいとき、サブエージェントの設定を開き直さずに/tasksだけで済みます。モデル指定の仕組み自体はCLAUDE_CODE_SUBAGENT_MODELとはで扱っています。
/tasksに並ぶのはバックグラウンドのサブエージェントだけ
サブエージェントには、応答が返るまでメイン会話を止めるフォアグラウンド実行と、動いている間も並行して作業を続けられるバックグラウンド実行の2種類があります。フォアグラウンドは結果が返るまでその場で待つ形なので、そもそも一覧で追いかける必要がありません。/tasksが対象にするのは、この2種類のうちバックグラウンド側です。
どちらで動くかはいくつかの条件で決まります。対話セッションで既定になっているfork modeがオンの状態では、Claudeが生成するサブエージェントは常にバックグラウンドで動きます。fork modeがオフの場合は、結果をすぐ会話に反映させたいときだけフォアグラウンドに切り替わります。サブエージェントの定義にbackground: trueを指定しておけば、Claudeが結果をすぐ欲しがる場面でもバックグラウンドのまま固定できます。逆に環境変数CLAUDE_CODE_DISABLE_BACKGROUND_TASKSを設定していると、種類を問わずすべてフォアグラウンドで動きます。
権限確認はメインの会話に出る
バックグラウンドのサブエージェントが承認の要るツール呼び出しに達しても、そのプロンプトはサブエージェント側では止まりません。メインのセッションに「どのサブエージェントが求めているか」を示した上で表示されます。承認すればサブエージェントは続行し、Escを押せばそのツール呼び出しだけを拒否してサブエージェント自体は止めずに済みます。
v2.1.186より前は挙動が違い、バックグラウンドのサブエージェントが確認を要するツール呼び出しに達すると、その場で自動的に拒否されていました。承認を待つのではなく問答無用で止まっていたということです。現在のバージョンでは、/tasksや画面下のパネルを見ながら、動いているサブエージェントの権限要求にその都度応じる運用が基本になります。
バックグラウンドのサブエージェントはツールセットが狭い
/tasksに並ぶバックグラウンドのサブエージェントは、フォアグラウンドで動くサブエージェントより使えるツールが絞られています。AgentとExitPlanModeを除くと、残せる組み込みツールは次の19個です。
Read | Grep |
Glob | Bash |
PowerShell | Edit |
Write | NotebookEdit |
WebFetch | WebSearch |
TodoWrite | Skill |
ToolSearch | EnterWorktree |
ExitWorktree | Monitor |
TaskStop | SendMessage |
Artifact |
MCPツールはそのまま使えますが、上記に無い組み込みツールはtoolsフィールドで明示していても取り除かれます。会話全体を引き継ぐフォークしたサブエージェントは、/subtask(Claude Code v2.1.212以降)で起動する場合に限りこの制限の対象外で、メイン会話とまったく同じツール一式を持ちます。似た名前の/forkは別物で、agent viewを切っている場合にだけforked subagentを起動し、それ以外では会話まるごとを新しいバックグラウンドセッションへコピーする操作です。
/tasksで見ているサブエージェントが「そのツールは使えないはず」という結果を返してきたときは、まずバックグラウンド実行によるツール制限を疑うと、原因の切り分けが早くなります。
完了したかをClaudeに聞くより/tasksで確認する方が早い
サブエージェントの結果は、完了通知として後のターンでClaudeに届く仕組みです。Claudeはこの通知が来るまで結果の報告を待ち、その前に進捗を尋ねられれば「まだ実行中」と答えます。v2.1.211より前のバージョンでは、実はまだ終わっていないサブエージェントの結果を、Claudeが誤って報告してしまうことがありました。
現在のバージョンではこの誤報告は解消されています。それでも、Claudeが次のターンで気づくのを待つよりは、/tasksを直接開いて状態を見た方が早く正確です。とくに複数のサブエージェントを同時に走らせているときは、どれが終わってどれがまだ動いているかを/tasksの一覧で一度に把握できます。
@メンションの候補にも動作状況が出る
/tasks以外の場所でも、動いているサブエージェントの状態を垣間見られます。プロンプト入力中に@を押すと、ファイルと同じようにサブエージェントを選べます。この@メンション機能では、名前付きでバックグラウンド実行中のサブエージェントが候補の一覧に混じり、名前の横に状態が表示されます。次に投げる指示をどのサブエージェントに向けるか選ぶ場面で、ついでに実行状況も見えるという位置づけです。ただし一覧性・詳細度では/tasksの方が上で、複数のサブエージェントをまとめて比較したいときは/tasksを開く方が確実です。
会話全体を裏に回す/backgroundとは別物
/tasksが管理するのは、あくまで今の会話の中で動いているバックグラウンド作業です。会話そのものを丸ごと切り離す操作は別にあります。切り離して別プロセスにするコマンドは/background(エイリアス/bg)で、これは/tasksとは別の操作です。/backgroundを実行する前に「引き継げない作業がないか」を/tasksで確認する、という使い方はできますが、/tasks自体に会話を切り離す機能はありません。両コマンドの役割分担はClaude Codeの/backgroundと/stopコマンドの使い方にまとめています。
同じように、1つのシェルコマンドだけをCtrl+Bで裏へ回す操作も/tasksと隣接しますが別機能です。Ctrl+Bで裏に回した後の自動終了条件やタイムアウト時の扱いはClaude Codeバックグラウンド実行で扱っています。
よくある質問
/tasksを閉じるとサブエージェントは止まりますか
いいえ。/tasksは実行中の状況を映すだけの一覧画面で、閉じても裏側のバックグラウンド処理自体は止まりません。動いているシェルコマンドやサブエージェントは、/tasksを開いていない間も並行して進みます。実際に止めたいときは、/tasksを開いて行を選びxを押す操作が必要です。
まとめ
/tasksはバックグラウンドのシェルコマンドとサブエージェントを一覧表示し、成功して終わった項目だけを30秒「done」として残します。失敗・停止した項目は一覧からは外れ、パネル側でxによるクリアを待つだけの扱いです。xで止めたサブエージェントは自動再開しないので、再開したいときはトランスクリプトへ直接入力してください。v2.1.242以降はモデル名と実行強度も行に表示され、設定を開き直さず確認できます。