Weave – Filter terminal output for coding agents
O Weave é um plugin para Claude Code, Codex CLI e Antigravity CLI, implementado em Node.js e sem dependências de runtime.
Ele reúne algumas funcionalidades que normalmente ficam espalhadas entre hooks, scripts e arquivos de regras:
Terminal output
O Weave intercepta comandos elegíveis e aplica filtros específicos por ferramenta.
git status, git diff, git log, npm, grep, rg, test runners, linters, Docker, kubectl, Terraform e outros comandos possuem perfis próprios.
Em comandos que terminam com exit 0, saídas repetitivas podem ser condensadas. Em comandos que terminam com erro, stdout, stderr, exit code e diagnósticos são preservados.
Quando alguma saída é omitida, o conteúdo capturado fica disponível para recuperação através de weave recall.
Contexto
O diretório .weave/ mantém o estado do projeto:
.weave/
├── mode
├── state.md
├── memories/
├── runs/
└── ledger.json
state.md funciona como um contrato da tarefa e memória de trabalho. Também existem snapshots nomeados através de weave memory.
Pre-read tracking
O hook hooks/preread.js registra leituras de arquivos e buscas no ledger.json.
Se um agente tentar ler novamente um arquivo que não foi alterado, ou repetir uma busca idêntica, o Weave pode sinalizar a operação em vez de deixar o mesmo trabalho acontecer silenciosamente.
Engineering policy
Os modos off, lite, full e ultra controlam as regras de execução aplicadas ao agente.
Entre elas estão reutilizar código existente antes de criar novas abstrações, preferir recursos nativos, manter mudanças dentro do escopo e verificar o resultado antes de considerar uma tarefa concluída.
Integrações
Claude Code utiliza hooks e skills.
Codex utiliza o manifest e as skills compartilhadas.
Para agentes que trabalham com AGENTS.md, GEMINI.md ou arquivos de regras, o Weave também consegue gerar a mesma política para diferentes clientes.
Existe ainda um servidor MCP implementado sobre stdio/JSON-RPC, usando os mesmos módulos do núcleo.
A estrutura principal atualmente está dividida entre:
core/
hooks/
skills/
cli/
mcp/
tests/
scripts/
O núcleo não depende de daemon, banco de dados ou pacote externo.
O projeto ainda está em desenvolvimento, principalmente nos parsers e integrações com diferentes agentes.