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/omatty
Ler o código

v0.6.0, pré-1.0, para macOS e Linux.

Uma sessão real do omatty
 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Por quê, recurso por recurso

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.

QuemO que falta ao omatty
ccmanager, claude‑squadMais agentes. O omatty roda o Claude Code hoje; um segundo agente, o Codex, está em andamento.
ccmanagerWindows. O omatty é compilado apenas para macOS e Linux.
claude‑squadUm 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.
OrcaHistórico do terminal depois de reanexar. O omatty redesenha o painel, e o que veio antes se perde.
lazygit, delta, difftasticExibiçã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.

A comparação completa, com as fontes

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
Abrir uma issue