Pular para o conteúdo
claudemods

Agent Radar: um monitor de subagentes do Claude Code acima do prompt

Uma linha ao vivo acima do prompt por subagente em execução: tempo, ferramentas e ação atual, mais um painel /radar.

Permissões

  • Intercepta chamadas de ferramentasVê cada chamada de ferramenta que o Claude faz (tool.call / tool.check) e pode bloqueá-la ou alterá-la.
  • Lê seus promptsPode ver o que você digita e a transcrição da conversa (prompt.* / session.append / session.messages).
  • Altera a interfaceDesenha na interface do Claude Code: faixas, painéis, texto de status, notificações (ui.render / $.ui.*).
  • Adiciona comandos/ferramentasRegistra novos comandos de barra ou ferramentas que você ou o Claude podem acionar ($.command.register / $.tool.register).
testado com
v2.1.291
último teste
requer
Claude Code ≥ 2.1.287
superfícies
acima do prompt, painel, notificação

Instale dentro do Claude Code:

/plugin install agent-radar --marketplace hamzafer/claude-code-mods
Todas as opções de instalação ↓

O que este mod faz?

O Agent Radar é um mod da comunidade de Hamza Zafar (hamzafer), parte da coleção claude-code-mods dele. É um monitor de subagentes do Claude Code: quando o Claude delega trabalho a um subagente, a faixa acima do prompt ganha uma linha ao vivo para ele, e você vê o que cada um está fazendo sem abrir nada.

Uma linha tem este aspecto: ● Read README and all src/ files 4s · 2 tools · searching src/**/*. Ela traz a descrição do agente, o tempo decorrido, quantas chamadas de ferramenta ele fez e um rótulo simples da última. Quando o agente termina, o ponto vira um check verde por 30 segundos e aparece um toast como ✓ sweep runner done (9s · 4 tools). Um agente que falhou ou foi abortado recebe um X vermelho e o motivo.

O /radar abre um painel chamado «Agent Radar». Ele lista até nove agentes, cada um com uma tecla de atalho, mostra quantos estão rodando e quantos terminaram, e deixa você abrir um para ver suas últimas seis mensagens. O painel tem um botão «Clear finished». Agentes que começaram antes de o mod carregar são incluídos a partir da lista de agentes do próprio motor quando você executa /radar. O mod não mostra contagem de tokens nem custo.

Demonstração

A gravação mostra o Claude Code 2.1.291 com Haiku em um pequeno projeto de demonstração. Pedimos ao Claude que use um subagente Explore chamado scan src para ler o README.md e cada arquivo de src/. O Claude o inicia como agente em segundo plano e uma linha amarela aparece de imediato acima do prompt: ● scan src 4s · 2 tools · searching src/**/*. O tempo e a contagem de ferramentas sobem a cada segundo, e o rótulo muda para reading src/login.js conforme o subagente passa de um arquivo para o próximo.

Instalação

O bloco de instalação acima adiciona o marketplace do autor e instala o plugin a partir dele. A faixa aparece na próxima vez que um subagente iniciar. Se você instalou em uma sessão que já está aberta, execute /reload-plugins.

$ install agent-radar

Requer Claude Code ≥ 2.1.287

Instala a partir do marketplace do autor: hamzafer/claude-code-mods

  1. 1.Uma linha, dentro do Claude Code

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

    Cole em uma sessão em andamento (v2.1.275+). O Claude Code pede primeiro para adicionar o marketplace.

  2. 2.Pelo seu shell

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

    Depois execute /reload-plugins em qualquer sessão que já esteja aberta.

  3. 3.Experimente sem instalar

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

    Carrega o mod só para uma sessão. Nada é adicionado às suas configurações.

Como funciona

O mod guarda o estado do radar em três átomos $.state mantidos pelo host (agents, selected, now), por isso ele sobrevive a um hot reload. Quatro hooks o alimentam. agent.spawn adiciona uma entrada, tool.call conta as chamadas de ferramenta que trazem um agentId, e turn.complete marca o agente como concluído ou com falha e dispara o toast. Um relógio de um segundo, iniciado em session.start, redesenha os tempos decorridos enquanto alguma linha estiver visível. O hook de chamadas de ferramenta, de 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)
})

Ele atualiza o contador antes de deixar a chamada rodar e depois devolve o resultado de next(e) intacto. Chamadas do agente principal, que não têm agentId, são ignoradas. describe transforma uma chamada em um rótulo curto: reading e editing mais os dois últimos segmentos do caminho, searching mais os primeiros 30 caracteres de um padrão, running mais uma descrição do Bash ou os primeiros 50 caracteres do comando, e browser: click para as ferramentas do Playwright. A faixa é desenhada no ponto de renderização AbovePrompt, depois do conteúdo que outros mods e o Claude Code colocam ali, e dá lugar enquanto uma pesquisa estiver aberta.

Personalize

Não há opções em /config. Para mudar o visual, edite as constantes no topo de register.tsx: SHOW_DONE_MS (quanto tempo uma linha concluída permanece, 30 segundos) e BAND_ROWS (quantas linhas a faixa mostra, 4). A lista de agentes é limitada a 30 entradas no hook agent.spawn, e as cores e os glifos são definidos nas funções icon e color.

Permissões e segurança

Lemos todos os arquivos que o plugin carrega antes de executar qualquer coisa: .claude-plugin/plugin.json, hooks/hooks.json, hooks/register.tsx, types/index.d.ts e o arquivo de testes. Não há package.json, script de instalação, binário nem código empacotado, e não encontramos caracteres ocultos ou de largura zero. O repositório tem um LICENSE MIT.

Altera a interface abrange a faixa, o painel e os toasts. Adiciona um comando abrange o /radar. O mod não usa rede, comandos de shell, gravação de arquivos nem variáveis de ambiente, e não guarda nada fora do estado do host do Claude Code, que fica na memória. Ele não inicia nenhum serviço em segundo plano: o relógio de um segundo pertence à sessão e só roda enquanto uma linha de agente está visível. Não adiciona nada aos prompts nem aos resultados de ferramentas e nunca chama o modelo.

Os pontos que merecem atenção são estes. O mod se prende a todo tool.call e agent.spawn sem matcher, então vê nomes e entradas de ferramentas dos subagentes, como um comando Bash ou um caminho de arquivo, e mantém na memória um rótulo curto do mais recente. Ele não os salva nem os envia. No painel, abrir um agente lê suas mensagens recentes por $.session.messages e as mostra localmente, cortadas em 400 caracteres cada. Por fim, o claude plugin validate não relatou erros nem avisos, mas observou que os hooks agent.spawn e tool.call não têm .catch. Os dois hooks repassam o evento com next(e), então o risco prático é um erro lançado por uma atualização de estado, não um bloqueio. Os 2 testes do autor passaram no Claude Code 2.1.291.

Intercepta chamadas de ferramentas
Vê cada chamada de ferramenta que o Claude faz (tool.call / tool.check) e pode bloqueá-la ou alterá-la.
Lê seus prompts
Pode ver o que você digita e a transcrição da conversa (prompt.* / session.append / session.messages).
Altera a interface
Desenha na interface do Claude Code: faixas, painéis, texto de status, notificações (ui.render / $.ui.*).
Adiciona comandos/ferramentas
Registra novos comandos de barra ou ferramentas que você ou o Claude podem acionar ($.command.register / $.tool.register).

Compatibilidade e solução de problemas

Verificado com o Claude Code 2.1.291 no macOS (validate e testes). Se a faixa não aparecer:

  • Um subagente precisa iniciar na sessão atual; a faixa só lista agentes cujo início ela viu. Execute /radar para incluir os que começaram antes.
  • Há uma pesquisa aberta acima do prompt; a faixa volta quando ela fechar.
  • Outro plugin já é dono do /radar. O Claude Code recusa o nome e o mod segue em frente sem o comando.
  • Instalado em uma sessão aberta: execute /reload-plugins.

O rodapé «Agent view» do Claude Code é separado deste mod e mostra sua própria lista de agentes abaixo do prompt.

Perguntas frequentes

O Agent Radar faz requisições de rede ou chama o modelo?
Não. O módulo de hooks não usa APIs de rede, shell, arquivos nem variáveis de ambiente. Ele apenas escuta os eventos do próprio Claude Code e desenha o que eles informam. O único texto que lê são as mensagens do subagente, e só quando você abre um agente no painel /radar.
O que a linha acima do prompt mostra?
Um ponto de status (amarelo enquanto roda, um check verde ao terminar, um X vermelho em caso de erro ou abortado), a descrição do agente, o tempo decorrido e a contagem de ferramentas e, para um agente em execução, um rótulo curto da última chamada de ferramenta, como 'reading demo-app/README.md' ou 'searching src/**/*'. No máximo quatro linhas são exibidas, depois '+N more · /radar'.
Por quanto tempo um agente concluído fica na faixa?
30 segundos. Depois a linha some, mas o agente continua no painel /radar, que guarda os 30 agentes mais recentes, até você pressionar «Clear finished».
Ele pode deixar minhas chamadas de ferramentas lentas ou bloqueá-las?
Não as bloqueia. Ele se prende a cada chamada de ferramenta de um subagente, incrementa um contador e deixa a chamada passar sem alterações. O hook não tem .catch, então uma falha na atualização do estado apareceria como erro nessa chamada; o claude plugin validate lista isso como uma observação, não como um aviso.
E se /radar conflitar com outro comando?
O Claude Code recusa um nome que já existe. O mod ignora essa recusa e inicia mesmo assim, então a faixa continua funcionando, mas nesse caso não há o comando de painel /radar.
Contador de chamadas de ferramentas em execução no Claude CodeDestaque

Contador de chamadas de ferramentas

Conta as chamadas de ferramentas do Claude por turno e por sessão, mostra o total junto ao spinner e adiciona /tally.

  • spinner
  • transcrição
  • status
  • Intercepta chamadas de ferramentas
  • Altera a interface
  • Adiciona comandos/ferramentas

testado com v2.1.310

Aviso de conclusão em execução no Claude CodeDestaque

Aviso de conclusão

Um toast "Done in 2m 14s" e um som curto quando um turno longo do Claude termina, com notificação opcional no desktop.

  • notificação
  • Executa comandos
  • Altera a interface
  • Reproduz som

testado com v2.1.310

Mais em Painéis e dashboards, Timers, tarefas e standups.