Mission Control: acompanhe ao vivo os subagentes do Claude Code e as ferramentas
Painel ao vivo do agente principal, dos subagentes e das ferramentas do Claude Code, mais um mapa dos arquivos.
Permissões
- Lê arquivosPode ler arquivos e listar diretórios na sua máquina ($.fs.read / list / stat / exists).
- Grava arquivosPode criar ou sobrescrever arquivos na sua máquina ($.fs.write).
- Executa comandosPode executar programas de shell na sua máquina ($.process.run / spawn). Confira no código-fonte exatamente quais.
- Chama o modelo (usa sua cota)Pode enviar suas próprias requisições ao Claude, que contam no uso do seu plano ($.model.* / $.agent.spawn).
- Intercepta chamadas de ferramentasVê cada chamada de ferramenta que o Claude faz (tool.call / tool.check) e pode bloqueá-la ou alterá-la.
- 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.296
- último teste
- requer
- Claude Code ≥ 2.1.287
- superfícies
- painel, acima do prompt
- código-fonte
- Hamza Zafar (hamzafer) (MIT)
Instale dentro do Claude Code:
/plugin install mission-control --marketplace hamzafer/claude-code-modsO que este mod faz?
O Mission Control é um mod da comunidade criado por Hamza Zafar (hamzafer), parte da coleção claude-code-mods dele. Ele mostra em um só lugar o que o Claude Code está fazendo: o agente principal, os subagentes do Claude Code e cada chamada de ferramenta que eles fazem. Execute /mission e um painel se abre ao lado do chat com uma árvore. O loop principal fica no topo, cada subagente fica pendurado abaixo dele e as chamadas de ferramenta ficam sob o agente que as fez. Sequências da mesma ferramenta são agrupadas em uma linha, como read: README.md → src/login.js ×2, e cada linha mostra a sua duração.
Enquanto o Claude trabalha, e por 30 segundos depois, uma única linha acima do prompt resume tudo: ◈ mission: 2 tools, com a contagem de agentes e de arquivos alterados quando houver. Uma segunda visualização, /mission code, desenha um mapa dos arquivos que o Claude leu ou editou, com setas para os imports relativos entre eles, um brilho no arquivo que está sendo tocado no momento e uma nota de uma linha sobre cada alteração. O README do autor exige o Claude Code 2.1.287 ou mais recente para a coleção; nós testamos no 2.1.296.
Demonstração
A gravação inicia o Claude Code com o mod carregado no pequeno projeto de demonstração e pede ao Claude que leia o README.md e o src/login.js e diga em uma frase o que eles fazem. O Claude lê os dois arquivos e, enquanto trabalha, a linha da faixa acima do prompt conta as ferramentas. Depois da resposta, o clipe digita /mission. O painel se abre acima do prompt com os botões Who, Code e Close, o resumo 0 agents (0 running) · 2 tool calls, a linha principal verde com o texto do prompt e, abaixo dela, a linha agrupada read: demo-app/README.md → src/login.js ×2. O mapa de código não aparece no clipe.
Instalação
Use qualquer um dos métodos do bloco de instalação; eles instalam direto do marketplace do próprio autor. Depois execute /mission em uma sessão. Se você instalar em uma sessão que já está aberta, execute /reload-plugins primeiro.
$ install mission-control
Requer Claude Code ≥ 2.1.287
Instala a partir do marketplace do autor: hamzafer/claude-code-mods
1.Uma linha, dentro do Claude Code
/plugin install mission-control --marketplace hamzafer/claude-code-modsCole em uma sessão em andamento (v2.1.275+). O Claude Code pede primeiro para adicionar o marketplace.
2.Pelo seu shell
claude plugin marketplace add hamzafer/claude-code-mods claude plugin install mission-control@claude-code-modsDepois execute /reload-plugins em qualquer sessão que já esteja aberta.
3.Experimente sem instalar
git clone https://github.com/hamzafer/claude-code-mods claude --plugin-dir ./claude-code-mods/mods/mission-controlCarrega o mod só para uma sessão. Nada é adicionado às suas configurações.
Como funciona
O mod guarda a árvore, a lista de arquivos e a visualização em átomos $.state mantidos pelo host, então um hot reload preserva a imagem. Cada chamada de ferramenta é envolvida em um hook tool.call que adiciona um nó, deixa a chamada rodar e depois a marca como concluída ou com falha. 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 adiciona subagentes, turn.start reinicia a árvore e turn.complete fecha o que ainda estiver marcado como em execução. Chamadas a Agent e às ferramentas internas do próprio Claude Code (ToolSearch, TaskCreate e similares) ficam de fora. Um relógio de um segundo só atualiza a tela enquanto algo está rodando; a árvore tem limite de 300 nós. Para o mapa de código, hooks/map.ts monta um SVG: ele lê cada arquivo-fonte tocado via $.fs.read, encontra os imports relativos com uma regex e organiza os arquivos em colunas pela profundidade de import. O Chrome headless transforma o SVG em um PNG, que é exibido com o elemento Image do painel.
Personalize
Não há opções no /config. Os únicos controles são /mission, /mission who e /mission code, e as teclas do painel w, c e q. Para mudar o comportamento, edite as constantes no início do register.tsx: MAX_NODES (tamanho da árvore), MAX_FILES (arquivos no mapa), BAND_AFTER_MS (quanto tempo a faixa fica visível), INTERNAL (ferramentas que ficam fora da árvore) e CODE_FILE (tipos de arquivo que aparecem no mapa).
Permissões e segurança
Lemos todos os arquivos que o plugin pode executar antes de rodá-lo: .claude-plugin/plugin.json, hooks/hooks.json, hooks/register.tsx, hooks/map.ts, hooks/tree.ts, as declarações de tipos e os testes. Não há package.json, script de instalação, binário nem código empacotado, e não encontramos Unicode oculto, eval nem código remoto.
- Rede: nenhuma própria. Sem
fetch, sockets ou hosts. - Chamada ao modelo:
explain()noregister.tsxchama$.model.completecommodel: 'haiku'depois de um turno principal que editou ou gravou arquivos. O prompt contém até 300 caracteres de cadaold_stringenew_string(400 de um arquivo gravado), e a resposta vira uma nota de no máximo 80 caracteres no mapa. A resposta é interpretada como JSON, cortada e escapada antes de entrar no SVG. Ela usa a cota da sua sessão. - Processos: um script
sh -cvia$.process.runque inicia o Chrome headless com um perfil descartável, espera a captura de tela e depois encerra esse Chrome. Nomes de arquivos e pastas são passados como argumentos, não inseridos na string do shell. O Chrome só é iniciado enquanto o painel está aberto na visualização de código. - Gravação de arquivos: apenas
$TMPDIR/mission-control/:map.svg, dois arquivosmap-N.pnge uma pasta de perfil do Chrome. Nada em~/.claude, configurações, arquivos de shell ou LaunchAgents. O mod lê os arquivos que o Claude toca, para encontrar imports, e mantém trechos das edições na memória. - Daemons: nenhum. O relógio de um segundo para junto com a sessão, e o Chrome é encerrado depois de cada captura.
- Segredos e ambiente: ele lê apenas
TMPDIR. - Telemetria: nenhuma.
- Influência no prompt: ele não adiciona
additionalContexte não reescreve prompts nem resultados de ferramentas. - Hooks de controle:
tool.calleagent.spawnsão envolvidos, e oclaude plugin validateos lista como hooks de controle sem.catch. Eles só observam;tool.calldevolve o resultado da ferramenta sem alterações e não muda os argumentos. - Requisito externo: o mapa de código precisa do Google Chrome em
/Applications/Google Chrome.app(caminho do macOS); a visualização Who não. - Licença: MIT, com um arquivo LICENSE.
O claude plugin validate não relatou erros nem avisos, e os 7 testes do autor passaram no Claude Code 2.1.296.
- Lê arquivos
- Pode ler arquivos e listar diretórios na sua máquina ($.fs.read / list / stat / exists).
- Grava arquivos
- Pode criar ou sobrescrever arquivos na sua máquina ($.fs.write).
- Executa comandos
- Pode executar programas de shell na sua máquina ($.process.run / spawn). Confira no código-fonte exatamente quais.
- Chama o modelo (usa sua cota)
- Pode enviar suas próprias requisições ao Claude, que contam no uso do seu plano ($.model.* / $.agent.spawn).
- Intercepta chamadas de ferramentas
- Vê cada chamada de ferramenta que o Claude faz (tool.call / tool.check) e pode bloqueá-la ou alterá-la.
- 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.296 no macOS (validate, testes e a gravação). Se algo estiver errado:
/missioné um comando desconhecido. Confira no/pluginse o plugin está carregado e execute/reload-pluginsdepois de uma instalação nova.- O mapa de código diz que precisa do Google Chrome. Instale o Chrome em
/Applications/Google Chrome.app. O mod procura apenas nesse caminho. - "Nothing yet". A árvore se preenche enquanto um turno roda. Comece uma tarefa e as linhas aparecem.
- Sem mapa fora do terminal. Em outras superfícies, o painel avisa que o mapa de código é desenhado no terminal.
- Linha da faixa faltando. Ela só aparece enquanto o Claude trabalha e por 30 segundos depois, e não enquanto uma pesquisa estiver aberta.
Perguntas frequentes
- O Mission Control altera ou bloqueia as minhas chamadas de ferramenta?
- Não. O hook tool.call dele registra a chamada, deixa ela rodar com next(e) e devolve o resultado sem alterações. Ele nunca nega, reescreve nem atrasa uma chamada além do registro.
- Ele chama o modelo ou a rede?
- Ele não faz nenhuma requisição de rede própria. Depois de um turno que editou arquivos, ele pede ao Claude Code que rode uma pequena completion com haiku que escreve uma nota de uma linha para cada arquivo alterado. O prompt contém até algumas centenas de caracteres de cada edição, então esse texto vai para o provedor de modelos que você já usa.
- Preciso do Google Chrome?
- Só para o mapa de código. A árvore Who não precisa de nada extra. O mapa de código renderiza um SVG com o Chrome headless em /Applications/Google Chrome.app e mostra uma mensagem se o Chrome não estiver lá.
- Como abro e fecho o painel?
- Execute /mission, ou /mission code para o mapa de código. Dentro do painel, w mostra a árvore, c o mapa de código e q fecha.
- Qual a diferença para o Agent Radar?
- O Agent Radar é outro mod da comunidade para acompanhar agentes. O Mission Control também lista cada chamada de ferramenta sob o agente dela, agrupa sequências da mesma ferramenta e desenha um mapa dos arquivos tocados com os imports entre eles.
# Mods relacionados
DestaqueAgent Radar
Uma linha ao vivo acima do prompt por subagente em execução: tempo, ferramentas e ação atual, mais um painel /radar.
- acima do prompt
- painel
- notificação
- Intercepta chamadas de ferramentas
- Lê seus prompts
- Altera a interface
- Adiciona comandos/ferramentas
testado com v2.1.291
DestaqueContador 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