Identidade que sobrevive à sessão
O agente tem endereço, papel, caixa e histórico próprios. A sessão morre e renasce; ele continua sendo quem era.
Código aberto · MIT · macOS
Trama é um broker de mensagens entre sessões de Claude de longa duração. Identidade que sobrevive à sessão, caixa de correio durável, e um escalonador que decide quem roda, quando e com qual contexto.
Em uso diário numa operação real, com dois clientes e cinco projetos. Ainda sem build assinado — por enquanto se compila do código.
Um pedido seu, três agentes, e o rastro inteiro numa tela — com o custo correndo ao lado do teto.
Sem o Trama
Com o Trama
Uma sessão de LLM é passiva: ela só computa quando alguém a invoca. Então “o Gerente envia uma mensagem ao Orquestrador” não é comunicação entre pares — é outra coisa, e confundir as duas é construir um chat bonito que trava na primeira mensagem assíncrona.
A ilusão de dois pares conversando é, na verdade, um escalonador de turnos sobre sessões passivas. É esse primitivo que o Trama entrega.
Dinheiro
O total das últimas 24 horas fica fixo no topo da janela, com a fração do cliente mais perto do próprio teto ao lado — o teto de 24 h é por cliente, e comparar com o total daria um número tranquilizador justamente quando há muitos.
Board espelhado
Cada varredura grava o estado dos cards no seu disco. A tela abre na hora, não gasta a cota da API do cliente a cada clique, e continua respondendo com o tracker fora do ar — que é justamente quando alguém vai olhar.
Nível 3
Um orquestrador pode criar workers temporários para o trabalho técnico. Cada um nasce numa worktree git só dele, commita num ramo próprio e é aposentado ao terminar. A worktree some; o ramo fica, para você revisar.
Linha do tempo
Janela de 12 h, 24 h ou 7 dias, com o total de turnos e o gasto do período. Por padrão mostra só o notável — o que parou, o que mudou no board, o que foi delegado, o que voltou sozinho — e a rotina fica atrás de uma caixa de seleção.
Histórico
Índice de texto completo sobre toda mensagem que passou pelo barramento — instrução sua, relato de orquestrador, escalação, conversa de worker. Responde enquanto você digita.
Guardas
Dois agentes que podem se mensagear vão se mensagear para sempre. Os tetos são de custo por conversa, por cliente em 24 h e por turno — e o último é o único que age enquanto o turno roda.
Thread interrompida: limite de saltos atingido (7 > 6). Provável laço entre agentes.
E a conversa fica fechada: nenhuma mensagem nova entra nela. Uma guarda que dispara em silêncio é pior que o laço — você descobriria pelo extrato.
As ligações do grafo são derivadas do papel e do cliente de cada agente. Não existe tabela de conexões para alguém editar, e não existe instrução de prompt pedindo que o modelo se comporte. Um agente de uma empresa alcançar um de outra é impossível por construção.
Cada item aqui existe porque a falta dele custou alguma coisa.
O agente tem endereço, papel, caixa e histórico próprios. A sessão morre e renasce; ele continua sendo quem era.
Sprint aberta, filtro por label, grafo de bloqueios: roda em código, é determinístico e não custa token. O modelo só acorda quando há o que decidir.
Todo projeto nasce registrando o que teria escrito. Ligar a escrita real é uma decisão explícita, por projeto.
Queda de rede volta sozinha com espera crescente. Erro de configuração para e espera você, porque repetir não resolve.
A transição de status é o lock: nenhum trabalho começa sem ela. É o que impede duas pessoas — ou dois agentes — no mesmo card.
A orquestração continua com o notebook fechado. A janela chega nele por um túnel SSH que o próprio app levanta e reabre se cair. Um agente pode ser marcado para rodar na sua máquina, com o disco e o PATH dela.
Turno que falha, é interrompido ou estoura o tempo devolve o trabalho à caixa. Fechar o app no meio de um turno não perde nem duplica nada — e turnos órfãos voltam à fila na partida seguinte.
Um agente pode continuar de uma conversa do Claude Code que já roda há meses. Contexto que nenhum prompt de sistema recria.
Entregar numa caixa é operação válida: nada falha, a tela diz “enviado”, e a mensagem espera para sempre um agente arquivado. Uma tela lista essas, e diz o motivo de cada uma.
Cliente, projeto e agente saem da lista sem sumir do histórico, e voltam com um clique. Não há remoção permanente, de propósito: turnos, mensagens e escritas no board apontam para esses registros.
Conversa em Markdown, com custo, saltos e tokens no cabeçalho; gasto em CSV, uma linha por agente e por dia, para dividir por cliente numa planilha. O arquivo nasce na máquina da janela, não na do núcleo.
Trocáveis na hora, a interface inteira. E tema claro, escuro ou o do sistema — acompanhando o sistema inclusive quando ele vira à noite.
SQLite no disco. Sem nuvem nossa, sem conta, sem cadastro.
O app não manda nada para lugar nenhum. Não há “lugar nenhum”.
Credencial de tracker vai para o chaveiro do sistema, ou arquivo 0600 num servidor sem chaveiro.
O núcleo roda como serviço numa máquina sua, e a janela chega nele por um túnel SSH.
macOS com Apple Silicon. O núcleo também roda em Linux.
O repositório ainda é privado. Enquanto isso, o caminho de instalação é combinado direto.
Ainda não há build assinado pela Apple. Compilado por você, o app roda sem aviso; baixado pronto, o Gatekeeper reclamaria — por isso o download só entra quando a assinatura entrar.
Grátis
Licença MIT. Não há plano pago, conta, limite de uso nem versão reduzida. O custo de operação é o que você já pagaria à Anthropic pelos turnos — e o app existe em boa parte para que esse número não te surpreenda.