Rode agentes em paralelo. Saiba quais acertaram.
Um ADE de terminal para sessões paralelas do Claude Code, em todos os repositórios em que você trabalha.
O omatty roda a linha de verificação do próprio projeto dentro da worktree de cada sessão e coloca o veredito no card da sessão.
brew install WilsonSousajr/ tap/ omattyv0.6.0, pré-1.0, para macOS e Linux.
projects · 2 │ parser ▎ quoted fields · quoted-fields · ✓ done <1m │ gate · 1 failing · 2 passed · 3/3
───────────────────────────┼────────────────────────────────────────────────────────┼─ gate ───────────────────────────×
ledger │stand-in agent, scripted for this demo │ ✓ fmt 0.0s $ test -z "$(gofm
✓ round to cents <1m │ │ ✓ vet 0.1s $ go vet ./...
round-to-cents +11 −2 │task: a comma inside double quotes belongs to the field │ ✗ test 0.3s $ go test ./...
✓✓✓ READY │tracking whether the scanner is inside quotes │ --- FAIL:
parser │adding a test for a,"b,c",d │ TestFieldsQuotedComma (0.00s)
▎✓ quoted fields <1m │ wrote fields_test.go fields.go │ fields_test.go:18: Fields
▎ quoted-fields +21 −4 │ │ = ["a" "\"b,c\"" "d"], want
▎ ✓✓✗ test │ │ ["a" "b,c" "d"]
│ │ FAIL
│ │ FAIL example.com/parser
│ │ 0.182s
│ │ FAIL
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
j/k move enter output S send r rerun / search esc back ctrl+o ? keys 2 sessions
O omatty v0.6.0 de verdade, rodando um gate de verdade em dois repositórios Go: os testes de uma sessão falham, a falha volta para ela e a correção fica verde. O agente de cada sessão é um substituto roteirizado, para a gravação ser sempre igual.
Abrir três sessões é fácil. Saber em qual confiar, não.
Três sessões em três worktrees são três terminais, três diffs e três rodadas de testes, cada uma disparada à mão depois de lembrar em que diretório você está.
O lento não são os agentes. É descobrir se o que voltou presta, e a maioria das ferramentas para rodar agentes em paralelo foi feita para colocar mais trabalho em andamento, não para ajudar você a julgá-lo.
O que acontece quando um turno termina
O Claude trabalha na própria worktree
Cada sessão é o binário claude de verdade, num painel em que você digita, num diretório só dela. Sessões de vários repositórios ficam lado a lado numa janela, e toda tecla vai para o Claude, menos o líder ctrl+o.
O seu gate roda ali
A linha de fmt, vet, lint, testes e cobertura que o seu projeto já usa, rodando na worktree daquela sessão: com uma tecla, ou sozinha quando um turno termina, se você ligar isso. O omatty propõe a linha a partir do seu repositório, e nada roda antes de você confirmar.
O veredito aparece no card
Uma marca por etapa, e o nome da primeira que não passou. Uma etapa passa quando o processo sai com 0; o omatty nunca lê a saída para decidir.
A falha volta com uma tecla
S envia a saída da falha para a sessão que a causou. Leia o diff, comente as linhas de que discorda e mande todos os comentários de volta numa mensagem só. Os comentários se prendem ao conteúdo da linha, não ao número, e ficam no lugar enquanto o Claude edita o arquivo.
O resto, pela tecla que você aperta
Toda tecla vai para o Claude, menos ctrl+o. Estas são as teclas e os comandos que fazem o resto.
ctrl+o g- Abre o painel do gate e roda o gate da sessão em que você está.
ctrl+o d- Tudo o que a sessão mudou, com destaque de sintaxe, e as linhas adicionadas que nenhum teste cobre marcadas.
ctrl+o u- Volta a worktree da sessão para onde o último turno começou.
ctrl+o p- Faz push e abre o pull request, ou faz o merge quando o seu gate e as verificações da forja já estão verdes.
omatty discover- Escolha entre os repositórios em que o Claude Code já sabe que você trabalha.
omatty adopt- Traga as sessões do Claude que você já tem num repositório.
ssh -t box omatty- É um programa de terminal, então funciona por SSH numa máquina sem tela. Com o dtach instalado, sair desanexa em vez de encerrar as suas sessões.
omatty gate- Mostra o gate de um projeto, ou propõe um a partir do repositório e não roda nada antes de você confirmar. Também informa o tempo até o merge e com que frequência o gate passa de primeira, e esses números nunca saem da sua máquina.
Ele nunca escreve no seu ~/.claude/settings.json. Os hooks são passados a cada sessão que ele inicia, e o estado vem desses hooks e das transcrições do Claude, nunca da leitura da tela.
O que ele não vai fazer
O omatty não delega, não planeja, não agenda e não decide por você. Não há coordenador, nem mensagens entre agentes, nem fila sem supervisão, nem nuvem. Você continua sendo a parte do ciclo que pega os problemas; o trabalho do omatty é levar você até lá mais cedo.
Onde ele está
Tudo o que o omatty faz além do gate, alguém também faz. Veja onde os outros estão à frente.
| Quem | O que falta ao omatty |
|---|---|
| ccmanager, claude‑squad | Mais agentes. O omatty roda o Claude Code hoje; um segundo agente, o Codex, está em andamento. |
| ccmanager | Windows. O omatty é compilado apenas para macOS e Linux. |
| claude‑squad | Um instalador de uma linha. O omatty tem Homebrew, arquivos de release e go install, mas nenhum script de instalação e nenhum pacote apt, AUR ou nix. |
| Orca | Histórico do terminal depois de reanexar. O omatty redesenha o painel, e o que veio antes se perde. |
| lazygit, delta, difftastic | Exibição de diffs. Eles fazem isso melhor, e com folga. |
O claude agents, do próprio Claude Code, dá uma tela para as suas sessões em segundo plano, de graça e já incluído. Se o que você quer é uma lista de sessões, use-o. Venha para o omatty por painéis interativos, vários repositórios, um ciclo de revisão e um gate no diretório de cada sessão.
Para uma sessão num repositório, o Claude num painel e o lazygit no outro resolvem quase tudo. O caso do omatty são várias sessões em vários repositórios.
Antes de instalar
- Pré-1.0: teclas, configuração e o arquivo de estado ainda podem mudar entre versões menores.
- Apenas macOS e Linux. Sem Windows.
- Só o Claude Code, por enquanto. Um segundo agente, o Codex, está em andamento.
- Precisa de git e claude. dtach e gh são opcionais: sem o dtach, sair encerra as suas sessões, e sem o gh as telas de pull requests e issues ficam desligadas.
Perguntas
O que é um ADE de terminal?
Um ambiente de desenvolvimento de agentes que vive no seu terminal: os agentes rodam em painéis, e as ferramentas para julgar o trabalho deles (o diff, a revisão, o gate) ficam em volta. O omatty roda o binário claude de verdade; ele não reimplementa a interface do Claude.
Qual a diferença para o claude agents?
O claude agents lista as suas sessões em segundo plano, cada uma numa worktree, e é de graça e já vem incluído. Os painéis do omatty são interativos, abrangem vários repositórios e acrescentam um ciclo de revisão e um gate que roda no diretório de cada sessão.
Ele envia alguma coisa para algum lugar?
Não. O omatty conversa com o git, com o claude e, se você o instalar, com o gh. Os dois números que ele guarda sobre si mesmo ficam em ~/.omatty.
Quanto custa?
Nada. O omatty é gratuito e tem licença MIT. O Claude Code é cobrado pela Anthropic, como sempre.
Ele muda a minha configuração do Claude Code?
Não. Ele nunca escreve no ~/.claude/settings.json. Os hooks são entregues a cada sessão que ele inicia, na linha de comando dessa sessão, então usar o omatty não deixa rastro na sua configuração do Claude.
E se o meu projeto ainda não tiver um gate?
omatty gate <projeto> lê o repositório e propõe a linha que ele já usa: gofmt, go vet e go test; cargo fmt, clippy e test; ruff e pytest; ou os scripts lint e test do package.json. Nada é gravado nem executado antes de você confirmar.
Como instalo sem o Homebrew?
Baixe um arquivo de release para macOS ou Linux (amd64 ou arm64) e confira com o checksums.txt, ou compile com go install github.com/WilsonSousajr/omatty/cmd/omatty@latest.
Rode, e conte o que quebrou.
O omatty é novo, e o jeito mais rápido de ele melhorar é alguém além do autor usá-lo. Instale, aponte para um repositório em que você trabalha e abra uma issue para qualquer coisa que tenha surpreendido você.
brew install WilsonSousajr/ tap/ omatty