Tudo começa na Fila.
Você escreve o que precisa, não para quem. Uma tarefa é uma unidade de entrega: o defeito medido, o território que pode mexer, o gate que prova e a forma do relatório.
Claude, Codex, Cursor, Cline, Antigravity — cada um no seu card, todos falando entre si pelo board. Um orquestra, outros implementam, outro revisa, e o relatório volta para quem pediu. O ciclo só fecha quando um agente que não escreveu o código julgou.
Role e o board ao lado avança. Ou clique numa nota para pular até ela. O que aparece aqui é o que o app faz — mesmos estados, mesmas cores.
Você escreve o que precisa, não para quem. Uma tarefa é uma unidade de entrega: o defeito medido, o território que pode mexer, o gate que prova e a forma do relatório.
O orquestrador lê a Fila e escreve o contrato. Ele não implementa: brifa, lê o diff, verifica e integra.
Dois agentes, dois provedores, dois arquivos. O conector ciano é o spawn: fato registrado, não desenho. Cada um nasce com allowCommit: false.
Os terminais rodam lado a lado, o diff cresce em Mudanças e o navegador do canvas mostra a tela rodando. Abrir uma URL nova passa pelo seu consentimento.
Um terceiro card, de outro provedor, lê o diff e escreve o veredito. Com review: wanted, só ele pode fechar a tarefa — nem o orquestrador.
Os relatórios voltam pelo conector apagado — a resposta ao pedido. O orquestrador verifica num worktree limpo e commita uma fatia por tarefa.
Processos vivos, páginas reais, documentos e recados dividem o mesmo plano. Um agente pode ler e escrever em quase todos — e abrir algo novo passa por você.
Terminal de agente roda com as suas permissões — sem sandbox. Quem é confinado é o gate: ele roda em bubblewrap no Linux e é recusado onde não existe, em vez de fingir que confinou.
Ao abrir, você não cai num canvas vazio: cai nas suas sessões, agrupadas por projeto, prontas para retomar.
Ver releases