Ir para o conteúdo
Trama

Código aberto · MIT · macOS

Seus agentes conversam.Você deixa de ser o cabo.

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.

A janela do Trama: à esquerda a árvore de clientes e projetos; à direita uma conversa em que o humano pede um ajuste ao Gerente, o Gerente repassa ao orquestrador, e o orquestrador relata de volta. No cabeçalho, saltos, tokens e custo acumulado da conversa contra o teto.

Um pedido seu, três agentes, e o rastro inteiro numa tela — com o custo correndo ao lado do teto.

Hoje, o barramento é você

Sem o Trama

  • Você conversa com um agente numa aba e copia o que ele produziu.
  • Cola na aba de outro agente. Espera. Copia a resposta de volta.
  • Repete por nove abas, e é você quem lembra o que cada uma estava fazendo.
  • Fechou o navegador, acabou. Não sobra registro de quem pediu o quê.

Com o Trama

  • Um agente produz uma mensagem endereçada a outro.
  • O broker guarda na caixa do destinatário e agenda o turno dele.
  • O turno roda, o resultado volta, e a próxima mensagem sai daí.
  • Tudo fica no registro: instrução, mensagem, turno, custo, escrita no board.

A percepção que organiza tudo

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.

  1. 1
    O Gerente produz uma mensagemendereçada, tipada, dentro de uma conversa.
  2. 2
    O broker persiste na caixae ela sobrevive a fechar o app, cair a rede, reiniciar a máquina.
  3. 3
    O broker agenda e executa o turnodo destinatário — com o contexto dele, não com o seu.

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 gasto à vista, e um botão que para tudo

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.

  • Um clique interrompe todos os turnos em voo e bloqueia o despacho, a varredura e o vigia.
  • Interromper sem bloquear não freia nada: a mensagem continua na caixa e o turno recomeça no instante seguinte.
  • Puxado, continua puxado depois de reiniciar o serviço — que é justamente o que se faz logo depois de puxá-lo.
A janela do Trama com o freio puxado: no topo, o gasto de 24 h em US$ 14,12 e o aviso de que o cliente está em 71% do teto; abaixo, uma faixa âmbar dizendo “Despacho pausado — nada roda, nem turno, nem varredura, nem vigia — até você soltar”.

Board espelhado

O board na sua tela, sem ir ao tracker

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.

  • Card travado aparece travado, e diz por quem.
  • O que saiu da sprint é marcado, não apagado: “para onde ele foi” é a pergunta.
  • Cada card mostra quando foi visto pela última vez — a defasagem é dita, não escondida.
A tela de um projeto no Trama, com quatro cards espelhados da sprint. Um deles está destacado em âmbar com o aviso “travado por WEB-31”.

Nível 3

O orquestrador delega, e o trabalho fica num ramo

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.

  • Worktree por worker: dois agentes nunca editam o mesmo arquivo ao mesmo tempo.
  • O ramo sobrevive ao agente — sem isso, efêmero seria sinônimo de trabalho jogado fora.
  • Vem desligado: o worker é o único papel com Bash, Write e Edit.
A tela de um orquestrador mostrando a árvore de delegação: dois workers, cada um com o seu ramo trama/…, um já entregue e outro em andamento, com turnos e custo.

Linha do tempo

O que aconteceu enquanto você dormia

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.

  • Escalação e aviso de orçamento chegam como notificação do sistema quando a janela não está na sua frente.
  • O texto do agente aparece na conversa enquanto ele escreve, com as ferramentas que usou numa linha acima.
  • Lista truncada é dita: entregar um recorte em silêncio faria a lista parecer completa na noite mais movimentada.
A linha do tempo do Trama nas últimas 24 horas: board mudou, delegação a um worker, escrita aplicada no card, worker aposentado deixando o ramo, uma tentativa repetida em âmbar e uma conversa interrompida em vermelho pelo limite de saltos.

Histórico

Procure no que já aconteceu

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

  • Prefixo enquanto se digita; frase exata entre aspas.
  • Sem acento funciona, porque é assim que se digita com pressa.
  • Cada achado diz de que conversa veio: seu chat, o board, ou uma delegação.
A busca do Trama com o termo “validação”: três mensagens encontradas, com o termo destacado e a conversa de origem indicada em cada uma.

Guardas

O freio existe porque a falta dele custa dinheiro

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.

  • Limite de saltos corta o vaivém A→B→A→B. Falar com você zera a contagem.
  • Teto diário por cliente: é o freio da madrugada.
  • Quando um teto estoura, a conversa para e você é avisado — guarda silenciosa é pior que o laço.
A tela de Guardas do Trama, com os tetos de custo por conversa e por cliente, limite de saltos, janela de deduplicação e o interruptor da delegação.

Quando um teto estoura, chega isto na sua caixa

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.

Cliente é limite, não etiqueta

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.

você Cliente A Gerente orq/site orq/app Cliente B Gerente orq/site orq/app impossível
Uma estrela por cliente. O humano é o único que atravessa — é ele quem contrata os dois.
  • A verificação vive no núcleo, antes de qualquer entrega de mensagem.
  • Conteúdo de card é dado, nunca comando.
  • Cada papel tem as ferramentas do papel — e a lista do que ele não tem é a que importa.
  • Um worker só endereça o orquestrador que o criou. Nem o Gerente, nem um irmão.

E mais

Cada item aqui existe porque a falta dele custou alguma coisa.

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.

O loop do orquestrador fora do LLM

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.

Escrita no board começa em simulação

Todo projeto nasce registrando o que teria escrito. Ligar a escrita real é uma decisão explícita, por projeto.

Falha classificada, não “deu erro”

Queda de rede volta sozinha com espera crescente. Erro de configuração para e espera você, porque repetir não resolve.

Claim atômico no tracker

A transição de status é o lock: nenhum trabalho começa sem ela. É o que impede duas pessoas — ou dois agentes — no mesmo card.

Núcleo no servidor, janela no seu Mac

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.

Só o sucesso consome a mensagem

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.

Adoção de sessão existente

Um agente pode continuar de uma conversa do Claude Code que já roda há meses. Contexto que nenhum prompt de sistema recria.

Mensagens paradas em caixa que ninguém lê

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.

Arquivar tem volta

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.

Exportar

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.

Português e inglês

Trocáveis na hora, a interface inteira. E tema claro, escuro ou o do sistema — acompanhando o sistema inclusive quando ele vira à noite.

Onde os seus dados ficam

Na sua máquina

SQLite no disco. Sem nuvem nossa, sem conta, sem cadastro.

Sem telemetria

O app não manda nada para lugar nenhum. Não há “lugar nenhum”.

Segredo fora do banco

Credencial de tracker vai para o chaveiro do sistema, ou arquivo 0600 num servidor sem chaveiro.

Servidor, se você quiser

O núcleo roda como serviço numa máquina sua, e a janela chega nele por um túnel SSH.

Instalar

macOS com Apple Silicon. O núcleo também roda em Linux.

  • Claude Code instalado e autenticado — é ele que executa cada turno.
  • Rust e Node, para compilar.

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.

Preço

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.

Pare de ser o cabo entre as suas abas.

Como instalar