Agent Radar: un monitor de subagentes de Claude Code sobre el prompt
Una línea en vivo sobre el prompt por subagente en ejecución: tiempo, herramientas y acción actual, más un panel /radar.
Permisos
- Intercepta llamadas a herramientasVe cada llamada a herramienta que hace Claude (tool.call / tool.check) y podría bloquearla o modificarla.
- Lee tus promptsPuede ver lo que escribes y la transcripción de la conversación (prompt.* / session.append / session.messages).
- Modifica la interfazDibuja en la interfaz de Claude Code: bandas, paneles, texto de estado, avisos (ui.render / $.ui.*).
- Añade comandos/herramientasRegistra nuevos comandos de barra o herramientas invocables por ti o por Claude ($.command.register / $.tool.register).
- probado con
- v2.1.291
- última prueba
- requiere
- Claude Code ≥ 2.1.287
- superficies
- sobre el prompt, panel, aviso
- código fuente
- Hamza Zafar (hamzafer) (MIT)
Instalar dentro de Claude Code:
/plugin install agent-radar --marketplace hamzafer/claude-code-mods¿Qué hace este mod?
Agent Radar es un mod de la comunidad de Hamza Zafar (hamzafer), parte de su colección claude-code-mods. Es un monitor de subagentes de Claude Code: cuando Claude delega trabajo en un subagente, la banda sobre el prompt añade una línea en vivo para él, de modo que puedes ver qué hace cada uno sin abrir nada.
Una línea tiene este aspecto: ● Read README and all src/ files 4s · 2 tools · searching src/**/*. Incluye la descripción del agente, el tiempo transcurrido, cuántas llamadas a herramientas ha hecho y una etiqueta clara de la última. Cuando el agente termina, el punto se convierte en una marca verde durante 30 segundos y aparece un toast como ✓ sweep runner done (9s · 4 tools). Un agente fallido o abortado recibe una cruz roja y el motivo.
/radar abre un panel titulado «Agent Radar». Lista hasta nueve agentes con una tecla de acceso cada uno, muestra cuántos están en ejecución y cuántos han terminado, y permite abrir uno para ver sus últimos seis mensajes. El panel tiene un botón «Clear finished». Los agentes que empezaron antes de que se cargara el mod se incorporan desde la lista de agentes del propio motor al ejecutar /radar. El mod no muestra recuentos de tokens ni costes.
Demo
La grabación muestra Claude Code 2.1.291 con Haiku en un pequeño proyecto de demostración. Le pedimos a Claude que use un subagente Explore llamado scan src para leer README.md y cada archivo de src/. Claude lo inicia como agente en segundo plano y de inmediato aparece una línea amarilla sobre el prompt: ● scan src 4s · 2 tools · searching src/**/*. El tiempo y el número de herramientas suben cada segundo, y la etiqueta cambia a reading src/login.js cuando el subagente pasa de un archivo al siguiente.
Instalación
El bloque de instalación de arriba añade el marketplace del autor e instala el plugin desde él. La banda aparece la próxima vez que se inicie un subagente. Si lo instalas en una sesión que ya está abierta, ejecuta /reload-plugins.
$ install agent-radar
Requiere Claude Code ≥ 2.1.287
Se instala desde el marketplace del autor: hamzafer/claude-code-mods
1.Una línea, dentro de Claude Code
/plugin install agent-radar --marketplace hamzafer/claude-code-modsPégala en una sesión abierta (v2.1.275+). Claude Code te pedirá primero añadir el marketplace.
2.Desde tu shell
claude plugin marketplace add hamzafer/claude-code-mods claude plugin install agent-radar@claude-code-modsDespués ejecuta /reload-plugins en cualquier sesión que ya esté abierta.
3.Pruébalo sin instalarlo
git clone https://github.com/hamzafer/claude-code-mods claude --plugin-dir ./claude-code-mods/mods/agent-radarCarga el mod solo para una sesión. No se añade nada a tu configuración.
Cómo funciona
El mod guarda el estado del radar en tres átomos $.state que mantiene el host (agents, selected, now), por lo que sobrevive a una recarga en caliente. Cuatro hooks lo alimentan. agent.spawn añade una entrada, tool.call cuenta las llamadas a herramientas que llevan un agentId, y turn.complete marca el agente como terminado o fallido y lanza el toast. Un reloj de un segundo que arranca en session.start redibuja los tiempos transcurridos mientras se muestre alguna línea. El hook de llamadas a herramientas, 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)
})Actualiza el contador antes de dejar que la llamada se ejecute y luego devuelve el resultado de next(e) sin tocarlo. Las llamadas del agente principal, que no tienen agentId, se ignoran. describe convierte una llamada en una etiqueta corta: reading y editing más los dos últimos segmentos de la ruta, searching más los primeros 30 caracteres de un patrón, running más una descripción de Bash o los primeros 50 caracteres del comando, y browser: click para las herramientas de Playwright. La banda se dibuja en el punto de renderizado AbovePrompt, después del contenido que otros mods y Claude Code colocan allí, y se aparta mientras hay una encuesta abierta.
Personalízalo
No hay opciones en /config. Para cambiar el aspecto, edita las constantes al inicio de register.tsx: SHOW_DONE_MS (cuánto permanece una línea terminada, 30 segundos) y BAND_ROWS (cuántas líneas muestra la banda, 4). La lista de agentes está limitada a 30 entradas en el hook agent.spawn, y los colores y glifos se definen en las funciones icon y color.
Permisos y seguridad
Leímos todos los archivos que carga el plugin antes de ejecutar nada: .claude-plugin/plugin.json, hooks/hooks.json, hooks/register.tsx, types/index.d.ts y el archivo de pruebas. No hay package.json, script de instalación, binario ni código empaquetado, y no encontramos caracteres ocultos ni de ancho cero. El repositorio tiene un LICENSE MIT.
Cambia la interfaz abarca la banda, el panel y los toasts. Añade un comando abarca /radar. El mod no usa red, comandos de shell, escritura de archivos ni variables de entorno, y no guarda nada fuera del estado del host de Claude Code, que se mantiene en memoria. No inicia ningún servicio en segundo plano: el reloj de un segundo pertenece a la sesión y solo corre mientras se muestra una línea de agente. No añade nada a los prompts ni a los resultados de herramientas y nunca llama al modelo.
Los puntos a tener en cuenta son estos. El mod se engancha a cada tool.call y agent.spawn sin matcher, así que ve los nombres y entradas de las herramientas de los subagentes, como un comando de Bash o una ruta de archivo, y guarda en memoria una etiqueta corta de la última. No los guarda ni los envía. En el panel, abrir un agente lee sus mensajes recientes mediante $.session.messages y los muestra en local, recortados a 400 caracteres cada uno. Por último, claude plugin validate no informó de errores ni de advertencias, pero señaló que los hooks agent.spawn y tool.call no tienen .catch. Ambos hooks pasan el evento con next(e), así que el riesgo práctico es un error lanzado desde una actualización de estado, no un bloqueo. Las 2 pruebas del autor pasaron en Claude Code 2.1.291.
- Intercepta llamadas a herramientas
- Ve cada llamada a herramienta que hace Claude (tool.call / tool.check) y podría bloquearla o modificarla.
- Lee tus prompts
- Puede ver lo que escribes y la transcripción de la conversación (prompt.* / session.append / session.messages).
- Modifica la interfaz
- Dibuja en la interfaz de Claude Code: bandas, paneles, texto de estado, avisos (ui.render / $.ui.*).
- Añade comandos/herramientas
- Registra nuevos comandos de barra o herramientas invocables por ti o por Claude ($.command.register / $.tool.register).
Compatibilidad y solución de problemas
Comprobado con Claude Code 2.1.291 en macOS (validate y pruebas). Si la banda no aparece:
- Un subagente tiene que iniciarse en la sesión actual; la banda solo lista los agentes cuyo inicio ha visto. Ejecuta
/radarpara incorporar los que empezaron antes. - Hay una encuesta abierta sobre el prompt; la banda vuelve cuando se cierra.
- Otro plugin ya es dueño de
/radar. Claude Code rechaza el nombre y el mod sigue adelante sin el comando. - Lo instalaste en una sesión abierta: ejecuta
/reload-plugins.
El pie «Agent view» de Claude Code es independiente de este mod y muestra su propia lista de agentes bajo el prompt.
Preguntas frecuentes
- ¿Agent Radar hace solicitudes de red o llama al modelo?
- No. El módulo de hooks no usa API de red, shell, archivos ni variables de entorno. Solo escucha los eventos propios de Claude Code y dibuja lo que informan. El único texto que lee son los mensajes del subagente, y solo cuando abres un agente en el panel /radar.
- ¿Qué muestra la línea sobre el prompt?
- Un punto de estado (amarillo mientras corre, una marca verde al terminar, una cruz roja si hay error o se aborta), la descripción del agente, su tiempo transcurrido y su número de herramientas y, para un agente en ejecución, una etiqueta corta de su última llamada a una herramienta, como 'reading demo-app/README.md' o 'searching src/**/*'. Se muestran como máximo cuatro líneas, y luego '+N more · /radar'.
- ¿Cuánto tiempo permanece un agente terminado en la banda?
- 30 segundos. Después la línea desaparece, pero el agente sigue en el panel /radar, que guarda los 30 agentes más recientes, hasta que pulses «Clear finished».
- ¿Puede ralentizar o bloquear mis llamadas a herramientas?
- No las bloquea. Se engancha a cada llamada a una herramienta de un subagente, incrementa un contador y deja pasar la llamada sin cambios. El hook no tiene .catch, así que un fallo al actualizar el estado aparecería como un error en esa llamada; claude plugin validate lo lista como una nota, no como una advertencia.
- ¿Y si /radar choca con otro comando?
- Claude Code rechaza un nombre que ya tiene. El mod ignora ese rechazo y arranca igualmente, así que la banda sigue funcionando, pero en ese caso no existe el comando de panel /radar.
# Mods relacionados
DestacadoContador de llamadas a herramientas
Cuenta las llamadas a herramientas por turno y sesión, muestra el total junto al spinner y añade /tally con un desglose.
- spinner
- transcripción
- estado
- Intercepta llamadas a herramientas
- Modifica la interfaz
- Añade comandos/herramientas
probado con v2.1.310
DestacadoAviso de finalización
Un toast «Done in 2m 14s» y un sonido al terminar un turno largo de Claude, más un aviso de escritorio opcional.
- aviso
- Ejecuta comandos
- Modifica la interfaz
- Reproduce sonido
probado con v2.1.310
Más en Paneles y dashboards, Temporizadores, tareas y standups.