本文へスキップ
claudemods

Agent Radar:入力欄の上に出る Claude Code サブエージェント監視

実行中のサブエージェントごとに入力欄の上へ 1 行表示:経過時間、ツール数、現在の動作。/radar ペイン付き。

権限

  • ツール呼び出しを傍受Claude が行うすべてのツール呼び出しを参照でき(tool.call / tool.check)、ブロックや変更も可能です。
  • プロンプトを読み取る入力内容と会話のトランスクリプトを参照できます(prompt.* / session.append / session.messages)。
  • UI を変更Claude Code の画面に描画します。バンド、ペイン、ステータス表示、トーストなど(ui.render / $.ui.*)。
  • コマンド・ツールを追加あなたや Claude が呼び出せる新しいスラッシュコマンドやツールを登録します($.command.register / $.tool.register)。
検証バージョン
v2.1.291
最終検証日
必要バージョン
Claude Code ≥ 2.1.287
表示先
プロンプト上部、ペイン、トースト

Claude Code 内でインストール:

/plugin install agent-radar --marketplace hamzafer/claude-code-mods
すべてのインストール方法 ↓

このModでできること

Agent Radar は、Hamza Zafar(hamzafer)による claude-code-mods コレクションの一部で、コミュニティ Mod です。Claude Code のサブエージェント監視として働きます。Claude がサブエージェントに作業を任せると、入力欄の上の帯にそのサブエージェント用の行がリアルタイムで 1 行増え、何も開かなくても各エージェントの様子が分かります。

行はたとえば ● Read README and all src/ files 4s · 2 tools · searching src/**/* のようになります。エージェントの説明、経過時間、これまでのツール呼び出し回数、そして直近の呼び出しを表すわかりやすいラベルが並びます。エージェントが終了すると、点は緑のチェックに変わって 30 秒間残り、✓ sweep runner done (9s · 4 tools) のようなトーストが表示されます。失敗または中断したエージェントには、赤い×と理由が表示されます。

/radar を実行すると、「Agent Radar」というタイトルのペインが開きます。最大 9 件のエージェントがホットキー付きで並び、実行中の数と完了した数が表示され、1 件を開くと直近 6 件のメッセージを見られます。ペインには「Clear finished」ボタンがあります。Mod の読み込み前に開始したエージェントは、/radar を実行したときにエンジン自身のエージェント一覧から取り込まれます。トークン数やコストは表示しません。

デモ

録画では、Claude Code 2.1.291 と Haiku を使い、小さなデモプロジェクトで試しています。Claude に、scan src という名前の Explore サブエージェントで README.md と src/ の各ファイルを読むよう依頼します。Claude がそれをバックグラウンドエージェントとして起動すると、入力欄の上にすぐ黄色の行が現れます:● scan src 4s · 2 tools · searching src/**/*。時間とツール数は毎秒増え、サブエージェントが次のファイルに進むにつれて、ラベルは reading src/login.js に変わります。

インストール

上のインストールブロックは、作者のマーケットプレイスを追加し、そこからプラグインをインストールします。帯は、次にサブエージェントが起動したときに表示されます。すでに開いているセッションにインストールした場合は、/reload-plugins を実行してください。

$ install agent-radar

Claude Code 2.1.287 以上が必要

作者のマーケットプレイスからインストール: hamzafer/claude-code-mods

  1. 1.Claude Code 内で1行

    /plugin install agent-radar --marketplace hamzafer/claude-code-mods

    実行中のセッション(v2.1.275 以降)に貼り付けます。最初に Claude Code がマーケットプレイスの追加を確認します。

  2. 2.シェルから

    claude plugin marketplace add hamzafer/claude-code-mods
    claude plugin install agent-radar@claude-code-mods

    その後、すでに開いているセッションでは /reload-plugins を実行してください。

  3. 3.インストールせずに試す

    git clone https://github.com/hamzafer/claude-code-mods
    claude --plugin-dir ./claude-code-mods/mods/agent-radar

    その1セッションだけ Mod を読み込みます。設定には何も追加されません。

仕組み

Mod は、レーダーの状態をホストが保持する 3 つの $.state アトム(agents、selected、now)に保存するため、ホットリロードしても残ります。これを 4 つのフックが更新します。agent.spawn はエントリを追加し、tool.call は agentId を持つツール呼び出しを数え、turn.complete はエージェントを完了または失敗にしてトーストを出します。session.start で始まる 1 秒のクロックは、いずれかの行が表示されている間、経過時間を再描画します。ツール呼び出しのフックは hooks/register.tsx からの抜粋です。

on('tool.call', async ($, e, next) => {
  if (e.agentId) {
    const id = e.agentId
    const line = describe(e as unknown as Record<string, unknown>)
    await update($, agents, list => list.map(a => (a.id === id ? { ...a, tools: a.tools + 1, last: line } : a)))
  }
  return next(e)
})

呼び出しを実行させる前にカウンターを更新し、その後は next(e) の結果をそのまま返します。agentId を持たないメインエージェントの呼び出しは無視されます。describe は呼び出しを短いラベルに変換します。reading と editing にはパスの最後の 2 区間、searching にはパターンの先頭 30 文字、running には Bash の説明またはコマンドの先頭 50 文字、Playwright のツールには browser: click が付きます。帯は AbovePrompt の描画位置で、他の Mod や Claude Code がそこに置いたコンテンツの後に描画され、アンケートが開いている間は場所を譲ります。

カスタマイズ

/config に設定項目はありません。見た目を変えるには、register.tsx の先頭にある定数を編集します。SHOW_DONE_MS(完了した行を残す時間、30 秒)と BAND_ROWS(帯に表示する行数、4)です。エージェント一覧は agent.spawn フックで 30 件に制限されており、色と記号は icon 関数と color 関数で設定されています。

権限と安全性

実行する前に、プラグインが読み込むすべてのファイルを確認しました:.claude-plugin/plugin.json、hooks/hooks.json、hooks/register.tsx、types/index.d.ts、テストファイルです。package.json、インストールスクリプト、バイナリ、バンドルされたコードはなく、隠し文字やゼロ幅文字も見つかりませんでした。リポジトリには MIT の LICENSE があります。

UI を変更する は、帯、ペイン、トーストを指します。コマンドを追加する は /radar を指します。Mod はネットワーク、シェルコマンド、ファイル書き込み、環境変数を使わず、メモリ上に保持される Claude Code のホスト状態の外には何も保存しません。バックグラウンドサービスも起動しません。1 秒のクロックはセッションに属し、エージェントの行が表示されている間だけ動きます。プロンプトやツールの結果には何も追加せず、モデルを呼び出すこともありません。

注意点は次のとおりです。Mod はマッチャーなしですべての tool.call と agent.spawn にフックするため、Bash コマンドやファイルパスなど、サブエージェントのツール名と入力を目にし、直近のものの短いラベルをメモリ上に保持します。それらを保存したり送信したりはしません。ペインでは、エージェントを開くと $.session.messages を通じて直近のメッセージを読み、ローカルで表示します(1 件あたり 400 文字で切り詰め)。最後に、claude plugin validate はエラーも警告も報告しませんでしたが、agent.spawn と tool.call のフックに .catch がないことを注記しています。どちらのフックも next(e) でイベントを渡すため、実際のリスクはブロックではなく、状態更新でエラーが投げられることです。作者の 2 件のテストは Claude Code 2.1.291 で成功しました。

ツール呼び出しを傍受
Claude が行うすべてのツール呼び出しを参照でき(tool.call / tool.check)、ブロックや変更も可能です。
プロンプトを読み取る
入力内容と会話のトランスクリプトを参照できます(prompt.* / session.append / session.messages)。
UI を変更
Claude Code の画面に描画します。バンド、ペイン、ステータス表示、トーストなど(ui.render / $.ui.*)。
コマンド・ツールを追加
あなたや Claude が呼び出せる新しいスラッシュコマンドやツールを登録します($.command.register / $.tool.register)。

互換性とトラブルシューティング

macOS 上の Claude Code 2.1.291 で確認しました(validate とテスト)。帯が表示されない場合は次を確認してください。

  • サブエージェントは現在のセッションで起動する必要があります。帯は、起動を見たエージェントだけを一覧にします。それ以前に起動したエージェントを取り込むには /radar を実行します。
  • 入力欄の上でアンケートが開いています。閉じると帯は戻ります。
  • 別のプラグインがすでに /radar を使っています。Claude Code はその名前を拒否し、Mod はコマンドなしで動作を続けます。
  • 開いているセッションにインストールした場合は、/reload-plugins を実行してください。

Claude Code の「Agent view」フッターはこの Mod とは別のもので、入力欄の下に独自のエージェント一覧を表示します。

よくある質問

Agent Radar はネットワークリクエストを送ったり、モデルを呼び出したりしますか?
いいえ。この hooks モジュールは、ネットワーク、シェル、ファイル、環境変数の API を使いません。Claude Code 自身のイベントを受け取り、報告された内容を描画するだけです。読み取るテキストはサブエージェントのメッセージだけで、/radar ペインでエージェントを開いたときに限られます。
入力欄の上の行には何が表示されますか?
状態を示す点(実行中は黄色、完了すると緑のチェック、エラーまたは中断では赤い×)、エージェントの説明、経過時間とツール数が表示されます。実行中のエージェントには、直近のツール呼び出しの短いラベル('reading demo-app/README.md'、'searching src/**/*' など)も付きます。表示は最大 4 行で、それを超えると '+N more · /radar' になります。
完了したエージェントは帯にどれくらい残りますか?
30 秒です。その後、行は消えますが、エージェントは /radar ペインに残ります。ペインは直近 30 件のエージェントを保持し、「Clear finished」を押すまで消えません。
ツール呼び出しが遅くなったり、ブロックされたりしますか?
ブロックはしません。サブエージェントのツール呼び出しごとにフックしてカウンターを 1 つ増やし、呼び出しはそのまま通します。このフックには .catch がないため、状態更新が失敗するとその呼び出しでエラーとして表れます。claude plugin validate はこれを警告ではなく注記として挙げています。
/radar が他のコマンドと衝突したらどうなりますか?
Claude Code は、すでにある名前を拒否します。Mod はその拒否を無視して起動するので、帯は引き続き動作しますが、その場合 /radar のペインコマンドはありません。
Claude Code で動作中の ツール呼び出しカウンターおすすめ

ツール呼び出しカウンター

Claude のツール呼び出しをターンごと・セッションごとに数え、スピナーの横に件数を表示。/tally で内訳も確認できます。

  • スピナー
  • トランスクリプト
  • ステータス
  • ツール呼び出しを傍受
  • UI を変更
  • コマンド・ツールを追加

v2.1.310 で検証済み

Claude Code で動作中の 完了トーストおすすめ

完了トースト

Claude の長いターンが終わると「Done in 2m 14s」のトーストと短いチャイムでお知らせ。デスクトップ通知にも対応します。

  • トースト
  • コマンドを実行
  • UI を変更
  • 音を再生

v2.1.310 で検証済み

同じカテゴリの Mod: ペインとダッシュボード、タイマー、ToDo、スタンドアップ。