Caixa de entrada
O que chegou enquanto você não estava olhando: relatos e escalações.
esvazia quando abrir a conversa já é ler
Grátis no lançamento · 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.
macOS com Apple Silicon · assinado pela Apple · Claude Code instalado
Grátis para sempre para quem baixar agora — sem cartão e sem prazo. Deixe o e-mail e o link chega em seguida. Depois do lançamento passa a custar US$ 9 por mês, e quem já baixou continua sem pagar.
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.
Visão geral
Um território por cliente, e dentro dele a cadeia: Gerente → projeto → orquestrador → worker, mais os raios que servem o cliente inteiro — Escriba, Analista, Infra, DevOps. As arestas não são desenhadas, são derivadas do papel e do cliente de cada agente — por isso não existe uma entre dois clientes.
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.
A fila
A sequência em que a sprint vai ser atacada, à vista e reordenável. O Gerente pode propor outra ordem — e escreve o porquê junto, porque sequência sem argumento só dá para obedecer ou ignorar.
O Escriba
O terceiro papel. O Gerente pede, ele escreve: fecha card, abre outro a partir de uma pendência achada no código, comenta, marca versão. É do cliente inteiro e não de um projeto — escriturar vale para todos eles.
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.
Um sistema que trabalha sozinho precisa dizer, sem ambiguidade, quando não está trabalhando sozinho. São três filas, e são diferentes de propósito: juntá-las faria cada contador significar duas coisas, e um contador que significa duas coisas para de significar qualquer uma.
O que chegou enquanto você não estava olhando: relatos e escalações.
esvazia quando abrir a conversa já é ler
Uma ação irreversível proposta, e ainda não feita.
esvazia quando você diz sim ou não
Um agente falou com você e parou. Ler o que ele disse não o destrava.
esvazia quando você responder
Ler não é responder, e é por isso que as duas primeiras não bastam. A terceira não guarda estado nenhum: ela sai da mesma listagem de agentes que a tela já carrega, e se apaga no instante em que a última fala deixa de ser dele.
proposto, esperando aprovação humana — isto ainda não aconteceu. Não relate como feito
A ação proposta vira registro, não efeito, e é essa frase que o agente recebe de volta. Ela existe porque um Escriba já relatou “card fechado” para um card que continuava aberto. Quem executa, depois do seu sim, é o núcleo — não há caminho em que o processo do agente chegue perto da credencial.
Dentro do app
Um chat na coluna da direita que fala sobre o app, e não sobre o seu trabalho: ele ajuda a entender o que está configurado e a mudar o que precisa mudar.
Cadastro, guardas, agentes e métricas atravessam a fronteira entre clientes; descrição de card e prompt de sistema, não. A linha cai aí porque cadastro e número são coisas que este app guarda porque alguém as digitou nele — e descrição de card é texto escrito por gente de fora, que é justamente o que não pode chegar de um cliente ao lado do outro.
Configuração de projeto, guardas e as tabelas de preço, janela e teto de saída de um modelo viram pendência, com o registro inteiro e o antes → depois à vista. O resumo diz de onde veio o número — da listagem do provedor, com data, ou digitado por quem pediu —, porque um preço mil vezes menor faz o freio nunca agir e nada na tela denuncia.
Nasce com o núcleo, em endereço fixo, como o humano: ninguém o cria, ele não pertence a cliente nem a projeto e não aparece em “novo agente”, na barra ou na topologia. A primeira versão o fez cadastrável, e estava errada.
E por igualdade, não por lista de proibições: o risco aqui é a capacidade que chega sem ninguém decidir, e uma lista de proibições não cobre o que ainda não existe. Na primeira execução, o teste achou uma operação que ninguém tinha negado.
A resposta dele não entra na sua caixa de entrada; a escalação dele, sim. O filtro é por tipo e não por remetente — filtrar tudo o que vem dele engoliria justamente a mensagem que ele manda quando precisa de você.
Cada item aqui existe porque a falta dele custou alguma coisa.
Por provedor e modelo, nos Ajustes: a linha é da instalação e não do agente — dez agentes no mesmo modelo usam a mesma linha do mesmo jeito que usam a mesma chave. Com a chave guardada, o campo de modelo passa a sugerir os do provedor e traz janela e preço no mesmo corpo, para gravar com a origem e a data ao lado; não conseguir listar não trava nada, e o campo continua aceitando o que você digitar. Cada ausência tem a consequência escrita ao lado, e elas são diferentes: sem preço o custo fica desconhecido, sem teto de saída não há estimativa antes da chamada — logo não há freio.
Um adaptador por HTTP fala com a API da Anthropic e com provedores compatíveis com a da OpenAI, cada um com a chave no seu cofre e URL própria por agente. Os dois caminhos não entregam o mesmo agente, e o app diz qual é qual: na API da Anthropic ele mantém as ferramentas do barramento e não ganha as do disco — não há máquina do outro lado; no formato OpenAI não vai ferramenta nenhuma, então ele conversa e relata. Por isso os papéis que só existem para chamar ferramenta — orquestrador, Escriba, DevOps, Infra — são recusados ali, em vez de salvos e respondendo texto como se tivessem trabalhado.
Turno sem preço conhecido aparece como custo desconhecido, e não como US$ 0,0000. O total ganha um + e diz quantos turnos faltam: piso comparado com teto freia tarde, nunca cedo, e uma planilha que soma pisos rateia errado com cara de exato. A coluna vai no CSV também.
Antes ele custava “o preço do Sonnet” — chute que errava por cinco vezes para baixo num modelo caro, e um freio que conta menos do que se gasta é um freio que não age. Com teto configurado, agora o turno é recusado dizendo qual preço falta cadastrar.
Um bloco do meio sai, o começo da conversa e a parte recente ficam, e o agente é avisado do que perdeu — quem esquece sem saber afirma lembrar. O que fica gravado continua sendo a conversa inteira; só o corpo da chamada encolhe. A janela de cada modelo vem de cadastro, porque chutá-la para mais mata o turno.
A confirmação nomeia quem dependia do card removido. E a linha de quem ficou destravado passa a dizer que ele sai sem esperar, em âmbar: nomear uma espera que não existe mais lê como restrição respeitada, e é o oposto.
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.
Um papel só de leitura, para diagnosticar por que um card não anda ou por que um agente parou. Ele lê metadados, nunca corpo: nenhuma descrição de card, nenhum comentário, nenhuma mensagem entra na resposta dele.
Para o momento em que algo inesperado acontece e seis botões não bastam. É PTY de verdade — htop cabe, less pagina, vim abre. E não é uma operação da API do núcleo: um shell ali seria execução arbitrária ao alcance de qualquer agente com o token.
O serviço no seu servidor sobe, atualiza e é conferido daqui — com backup do banco antes, e recusando atualizar com turno rodando. Antes era um roteiro para lembrar a cada versão.
CPU e memória do núcleo, migração aplicada, permissões, turnos abertos e o estado da unidade — na tela, sem abrir SSH. Um daemon com login pendente sobe normalmente e falha em todos os turnos.
Cada operação de git é um comando de argumentos fixos: o modelo escolhe qual e informa nomes de ramo — nunca compõe uma linha de comando. Sem sh -c, sem encadeamento, sem argumento livre. O merge confere o pipeline antes e recusa vermelho, correndo, ou falha ao consultar: não saber se passou não é o mesmo que ter passado.
O dólar da visão geral é preço equivalente de API — numa assinatura ele não sai de lugar nenhum. O que interrompe o trabalho às três da tarde é a janela de cinco horas fechando, e é isso que a barra do rodapé mostra.
Sem agente no meio. O caminho antes era pedir ao Gerente e esperar dois turnos pagos para executar uma decisão que já estava tomada. Os destinos vêm do workflow do cliente, não de uma lista nossa.
Dez cards barrados pela mesma regra são um problema de configuração. Antes essas falhas eram gravadas e ninguém as via, e o card aparecia parado, com cara de trabalho pendente.
Só neste sentido. Voltar para simulação reduz o que o app pode fazer e acontece direto; ligar amplia, e o que está do outro lado é visível para o time do cliente.
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. O app não tem conta nem login: ele nunca fala com um servidor nosso. O e-mail que você deixa aqui fica neste site, e não dentro do produto.
O app não manda nada para lugar nenhum. Não há “lugar nenhum”. Este site conta visitas de página e pedidos de link — no nosso próprio domínio, sem cookie e sem perfil, e nada é guardado no seu aparelho. O seu endereço não entra nessa conta.
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.
Onde o app roda hoje. O núcleo já roda em Linux como serviço, numa máquina sua.
O instalador está sendo preparado. Enquanto isso, a instalação é combinada direto.
O Trama não substitui o Claude Code — ele orquestra o que você já paga. O custo dos turnos continua indo direto para a Anthropic, e o app existe em boa parte para que esse número fique à vista.
Oferta de lançamento
Grátis
no lançamento · para sempre, para quem baixar agora
Quem instalar o Trama durante o lançamento não paga nunca. Não é teste de trinta dias nem versão reduzida: é o app inteiro, e continua seu quando o preço entrar.
Agora — grátis, para sempre
Depois — US$ 9 por mês
Isto não inclui o que os turnos custam à Anthropic. Esse número é seu e continua seu — e boa parte deste app existe para que ele não te surpreenda.
9b1ba194