Mission Control: sigue en vivo los subagentes de Claude Code y sus herramientas
Panel en vivo del agente principal, los subagentes y las herramientas de Claude Code, más un mapa de archivos.
Permisos
- Lee archivosPuede leer archivos y listar directorios en tu equipo ($.fs.read / list / stat / exists).
- Escribe archivosPuede crear o sobrescribir archivos en tu equipo ($.fs.write).
- Ejecuta comandosPuede ejecutar programas de shell en tu equipo ($.process.run / spawn). Revisa el código fuente para ver exactamente cuáles.
- Llama al modelo (usa tu cuota)Puede enviar sus propias peticiones a Claude, que cuentan para el uso de tu plan ($.model.* / $.agent.spawn).
- Intercepta llamadas a herramientasVe cada llamada a herramienta que hace Claude (tool.call / tool.check) y podría bloquearla o modificarla.
- 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.296
- última prueba
- requiere
- Claude Code ≥ 2.1.287
- superficies
- panel, sobre el prompt
- código fuente
- Hamza Zafar (hamzafer) (MIT)
Instalar dentro de Claude Code:
/plugin install mission-control --marketplace hamzafer/claude-code-mods¿Qué hace este mod?
Mission Control es un mod de la comunidad creado por Hamza Zafar (hamzafer), parte de su colección claude-code-mods. Muestra en un solo lugar lo que está haciendo Claude Code: el agente principal, los subagentes de Claude Code y cada llamada a herramienta que hacen. Ejecuta /mission y se abre un panel junto al chat con un árbol. El bucle principal está arriba, cada subagente cuelga debajo y las llamadas a herramientas quedan bajo el agente que las hizo. Las series de la misma herramienta se agrupan en una línea, como read: README.md → src/login.js ×2, y cada línea muestra su duración.
Mientras Claude trabaja, y durante 30 segundos después, una sola línea sobre el prompt lo resume: ◈ mission: 2 tools, con el número de agentes y de archivos cambiados cuando los hay. Una segunda vista, /mission code, dibuja un mapa de los archivos que Claude leyó o editó, con flechas para los imports relativos entre ellos, un brillo en el archivo que se está tocando en ese momento y una nota de una línea sobre cada cambio. El README del autor pide Claude Code 2.1.287 o posterior para la colección; lo probamos en 2.1.296.
Demo
La grabación inicia Claude Code con el mod cargado en el pequeño proyecto de demostración y pide a Claude que lea README.md y src/login.js y diga en una frase qué hacen. Claude lee los dos archivos y, mientras trabaja, la línea de la franja sobre el prompt cuenta las herramientas. Después de la respuesta, el clip escribe /mission. El panel se abre sobre el prompt con los botones Who, Code y Close, el resumen 0 agents (0 running) · 2 tool calls, la línea principal verde con el texto del prompt y, debajo, la línea agrupada read: demo-app/README.md → src/login.js ×2. El mapa de código no aparece en el clip.
Instalación
Usa cualquiera de los métodos del bloque de instalación; instalan directamente desde el marketplace del propio autor. Luego ejecuta /mission en una sesión. Si lo instalas en una sesión que ya está abierta, ejecuta primero /reload-plugins.
$ install mission-control
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 mission-control --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 mission-control@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/mission-controlCarga el mod solo para una sesión. No se añade nada a tu configuración.
Cómo funciona
El mod guarda su árbol, la lista de archivos y la vista en átomos de $.state que mantiene el host, de modo que una recarga en caliente conserva la imagen. Cada llamada a herramienta se envuelve en un hook tool.call que añade un nodo, deja que la llamada se ejecute y luego la marca como terminada o fallida. De hooks/register.tsx:
let failed = true
let r: Awaited<ReturnType<typeof next>>
try {
r = await next(e)
failed = r.deny !== undefined || r.isError === true
} finally {
await update($, nodes, list => list.map(n => (n.id === id ? { ...n, status: failed ? 'failed' : 'done', end: Date.now() } : n)))
}agent.spawn añade subagentes, turn.start reinicia el árbol y turn.complete cierra lo que siga marcado como en ejecución. Las llamadas a Agent y a las herramientas internas de Claude Code (ToolSearch, TaskCreate y similares) quedan fuera. Un reloj de un segundo solo actualiza la pantalla mientras algo se está ejecutando; el árbol tiene un límite de 300 nodos. Para el mapa de código, hooks/map.ts construye un SVG: lee cada archivo fuente tocado mediante $.fs.read, encuentra los imports relativos con una regex y coloca los archivos en columnas según la profundidad de import. Chrome headless convierte el SVG en un PNG, que se muestra con el elemento Image del panel.
Personalízalo
No hay opciones en /config. Los únicos controles son /mission, /mission who y /mission code, y las teclas del panel w, c y q. Para cambiar el comportamiento, edita las constantes al principio de register.tsx: MAX_NODES (tamaño del árbol), MAX_FILES (archivos en el mapa), BAND_AFTER_MS (cuánto tiempo se mantiene la franja), INTERNAL (herramientas que quedan fuera del árbol) y CODE_FILE (tipos de archivo que aparecen en el mapa).
Permisos y seguridad
Leemos todos los archivos que el plugin puede ejecutar antes de ponerlo en marcha: .claude-plugin/plugin.json, hooks/hooks.json, hooks/register.tsx, hooks/map.ts, hooks/tree.ts, las declaraciones de tipos y los tests. No hay package.json, script de instalación, binario ni código empaquetado, y no encontramos Unicode oculto, eval ni código remoto.
- Red: ninguna propia. Sin
fetch, sockets ni hosts. - Llamada al modelo:
explain()enregister.tsxllama a$.model.completeconmodel: 'haiku'después de un turno principal que editó o escribió archivos. El prompt contiene hasta 300 caracteres de cadaold_stringynew_string(400 de un archivo escrito), y la respuesta se convierte en una nota de 80 caracteres como máximo en el mapa. La respuesta se analiza como JSON, se recorta y se escapa antes de entrar en el SVG. Usa la cuota de tu sesión. - Procesos: un script
sh -cmediante$.process.runque inicia Chrome headless con un perfil desechable, espera la captura y luego cierra ese Chrome. Los nombres de archivos y carpetas se pasan como argumentos, no se insertan en la cadena de shell. Chrome solo se inicia mientras el panel está abierto en la vista de código. - Escritura de archivos: solo
$TMPDIR/mission-control/:map.svg, dos archivosmap-N.pngy una carpeta de perfil de Chrome. Nada en~/.claude, la configuración, archivos de shell ni LaunchAgents. El mod lee los archivos que toca Claude, para encontrar imports, y guarda fragmentos de las ediciones en memoria. - Daemons: ninguno. El reloj de un segundo se detiene con la sesión, y Chrome se cierra después de cada captura.
- Secretos y entorno: solo lee
TMPDIR. - Telemetría: ninguna.
- Influencia en el prompt: no añade
additionalContextni reescribe prompts ni resultados de herramientas. - Hooks de control:
tool.callyagent.spawnestán envueltos, yclaude plugin validatelos lista como hooks de control sin.catch. Solo observan;tool.calldevuelve el resultado de la herramienta sin cambios y no modifica los argumentos. - Requisito externo: el mapa de código necesita Google Chrome en
/Applications/Google Chrome.app(ruta de macOS); la vista Who no. - Licencia: MIT, con un archivo LICENSE.
claude plugin validate no informó de errores ni avisos, y los 7 tests del autor pasaron en Claude Code 2.1.296.
- Lee archivos
- Puede leer archivos y listar directorios en tu equipo ($.fs.read / list / stat / exists).
- Escribe archivos
- Puede crear o sobrescribir archivos en tu equipo ($.fs.write).
- Ejecuta comandos
- Puede ejecutar programas de shell en tu equipo ($.process.run / spawn). Revisa el código fuente para ver exactamente cuáles.
- Llama al modelo (usa tu cuota)
- Puede enviar sus propias peticiones a Claude, que cuentan para el uso de tu plan ($.model.* / $.agent.spawn).
- Intercepta llamadas a herramientas
- Ve cada llamada a herramienta que hace Claude (tool.call / tool.check) y podría bloquearla o modificarla.
- 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.296 en macOS (validate, tests y la grabación). Si algo no va bien:
/missiones un comando desconocido. Comprueba en/pluginque el plugin está cargado y ejecuta/reload-pluginsdespués de una instalación nueva.- El mapa de código dice que necesita Google Chrome. Instala Chrome en
/Applications/Google Chrome.app. El mod solo busca en esa ruta. - "Nothing yet". El árbol se llena mientras se ejecuta un turno. Empieza una tarea y aparecerán las líneas.
- No hay mapa fuera de la terminal. En otras superficies, el panel indica que el mapa de código se dibuja en la terminal.
- Falta la línea de la franja. Solo aparece mientras Claude trabaja y durante 30 segundos después, y no mientras hay una encuesta abierta.
Preguntas frecuentes
- ¿Mission Control cambia o bloquea mis llamadas a herramientas?
- No. Su hook tool.call registra la llamada, la deja ejecutarse con next(e) y devuelve el resultado sin cambios. Nunca deniega, reescribe ni retrasa una llamada más allá del registro.
- ¿Llama al modelo o a la red?
- No hace ninguna petición de red propia. Después de un turno que editó archivos, pide a Claude Code que ejecute una pequeña completion con haiku que escribe una nota de una línea por cada archivo cambiado. El prompt contiene hasta unos cientos de caracteres de cada edición, así que ese texto va al proveedor de modelos que ya usas.
- ¿Necesito Google Chrome?
- Solo para el mapa de código. El árbol Who no necesita nada más. El mapa de código renderiza un SVG con Chrome headless en /Applications/Google Chrome.app y muestra un mensaje si Chrome no está ahí.
- ¿Cómo lo abro y lo cierro?
- Ejecuta /mission, o /mission code para el mapa de código. Dentro del panel, w muestra el árbol, c el mapa de código y q lo cierra.
- ¿En qué se diferencia de Agent Radar?
- Agent Radar es otro mod de la comunidad para observar agentes. Mission Control además lista cada llamada a herramienta bajo su agente, agrupa las series de la misma herramienta y dibuja un mapa de los archivos tocados con los imports entre ellos.
# Mods relacionados
DestacadoAgent Radar
Una línea en vivo sobre el prompt por subagente en ejecución: tiempo, herramientas y acción actual, más un panel /radar.
- sobre el prompt
- panel
- aviso
- Intercepta llamadas a herramientas
- Lee tus prompts
- Modifica la interfaz
- Añade comandos/herramientas
probado con v2.1.291
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
Más en Paneles y dashboards, Temporizadores, tareas y standups.