Hendril Lara
Todos os projetos

Produto independente

ANANSI

Um mensageiro privado que guarda suas conversas nos seus aparelhos

ANANSI é um mensageiro privado que estou construindo para conversas do dia a dia que não precisam passar pela nuvem de ninguém. A ideia é que mensagens, arquivos e histórico fiquem só nos celulares e computadores de quem participa da conversa, criptografados, e circulem por uma rede que esconde de onde cada pessoa se conecta. O projeto não está pronto, e nada nesta página é garantia de segurança.

Minha parte
Definição do produto, requisitos de segurança, direção de design e de engenharia, com agentes de IA escrevendo o código
Status
Em desenvolvimento, ainda não publicado
Stack
Rust, Tauri, React, TypeScript
Desde
2026
A janela do ANANSI no computador, em tema claro: cinco conversas à esquerda e, aberta, a conversa com Tomás Reis, com mensagens entregues, um PDF recebido, um arquivo zip sendo transferido e uma mensagem marcada como na fila deste aparelho.
Uma conversa na interface real, preenchida com contatos e mensagens de exemplo. A rede privada e o armazenamento criptografado não estavam rodando, então nada foi enviado; o rodapé avisa que a rede está indisponível (interface em inglês).

Quem guarda as suas conversas?

A maioria dos mensageiros criptografa o que você escreve, mas a sua conta continua nos servidores de uma empresa: um número de telefone, uma agenda enviada para cruzar contatos e, muitas vezes, um backup do histórico na nuvem de alguém. Quando você apaga alguma coisa, raramente sabe onde mais ela continua existindo.

ANANSI começa pelo outro lado. Você cria uma identidade no próprio aparelho, com um nome e uma frase secreta, sem número de telefone e sem enviar a agenda. Mensagens, arquivos, áudios e histórico devem ficar nos aparelhos de quem conversa, guardados de forma criptografada, e em nenhum outro lugar.

A tela de criação em tema escuro: o título A space for your conversations, um formulário com nome, nome do aparelho, frase secreta e confirmação, e um rodapé que diz No phone number. No address book upload.
Criar uma identidade pede um nome, o nome do aparelho e uma frase secreta, sem número de telefone. A tela real de criação, com dados de exemplo e sem o app nativo por trás (interface em inglês).
Configurações em tema escuro: perfil, tema e idioma e, em Conversation privacy, o prazo padrão de 7 dias, confirmação de leitura e indicador de digitação desligados, e um aviso de que mensagens temporárias não impedem quem recebe de guardar uma cópia.
Configurações de privacidade: prazo padrão de sete dias, confirmação de leitura e indicador de digitação desligados e um lembrete direto do que mensagens temporárias não conseguem fazer. Interface real, perfil de exemplo (interface em inglês).

As regras vieram primeiro

Defini os limites antes de qualquer linha de código. Nenhuma cópia de mensagens, arquivos ou histórico na nuvem. O seu endereço de rede precisa ficar escondido das pessoas com quem você fala, sem conexão direta como plano B. Nada de blockchain. E nenhuma tela pode afirmar mais do que o app consegue mostrar: “entregue” só depois que o outro aparelho confirma, “conectado” só quando a conexão é real.

A interface nasce disso. A conversa vem primeiro, e os detalhes de segurança aparecem quando ajudam você a decidir alguma coisa. Confirmação de leitura e indicador de digitação começam desligados. O que ainda não está pronto avisa, em vez de fingir que funciona.

Como deve funcionar

Não existe um servidor guardando uma caixa de correio para você. Quando você envia uma mensagem, o seu aparelho a criptografa para o contato e a mantém numa fila local. Ela viaja pelos serviços onion do Tor, uma rede de retransmissores voluntários que repassam o tráfego criptografado sem conseguir lê-lo, e assim nenhum dos lados descobre de onde o outro se conecta.

A mensagem só aparece como entregue quando o aparelho do contato confirma o recebimento. É uma escolha consciente, e tem um custo: sem caixa de correio, os dois aparelhos precisam estar alcançáveis ao mesmo tempo, e um celular que o sistema colocou em modo de espera pode atrasar a entrega. Arquivos e áudios fazem o mesmo caminho, em partes criptografadas que são conferidas antes de contarem como recebidas.

Diagrama: o seu aparelho, os retransmissores onion do Tor e o aparelho do contato, com a mensagem criptografada indo num sentido e a confirmação voltando, e notas sobre não haver cópia na nuvem e os dois aparelhos precisarem estar alcançáveis.
Diagrama feito a partir dos documentos de projeto, com o caminho que uma mensagem deve percorrer. Não é uma tela do produto, e a versão atual ainda não faz esse caminho de ponta a ponta.
A página de contatos com um convite em análise: o nome do contato, uma impressão digital longa, um aviso para compará-la por um canal confiável e quantos aparelhos a conta autoriza.
Analisando um convite: uma impressão digital para comparar por um canal confiável antes de qualquer coisa ser marcada como verificada. Interface real, convite de exemplo (interface em inglês).

Saber quem está do outro lado

Você adiciona um contato trocando convites. Cada identidade tem uma impressão digital, uma sequência curta de caracteres, e o app pede que você a compare com a do contato pessoalmente ou por um canal em que você já confia. Adicionar alguém não o marca como verificado; comparar a impressão digital, sim.

Se a identidade de um contato muda, o app trata isso como um alerta de segurança e pede que você decida, em vez de aceitar a chave nova em silêncio. Adicionar outro aparelho seu, como um celular ao lado do notebook, segue a mesma regra: você aprova pelo aparelho que já tem, depois de conferir que as impressões digitais batem nas duas telas.

Mensagens que expiram e uma limpeza que não espera

Toda conversa tem um prazo para as mensagens sumirem: sete dias por padrão, de um minuto a trinta dias, ou sem prazo, se você escolher isso de propósito. A expiração deve apagar também anexos, prévias e registros no índice de busca, não só o texto. O app também diz o que não consegue fazer: quem recebe ainda pode tirar um print ou guardar uma cópia.

Você pode apagar tudo do aparelho a qualquer momento. A limpeza foi projetada para destruir as chaves que abrem os dados locais e depois remover os arquivos do app, sem esperar pela rede. Dá para avisar os contatos de que você iniciou uma limpeza, mas o aviso diz só isso; não prova que algo foi apagado em outro lugar.

A janela Wipe this device: lista o que é removido, avisa que cópias em outros lugares não são apagadas, oferece um aviso opcional aos contatos que não prova a limpeza e pede que você digite WIPE para confirmar.
A janela de limpeza diz o que sai, o que não sai e o que o aviso aos contatos não prova. Interface real; nada foi apagado (interface em inglês).
A página de aparelhos analisando um pedido vindo de um celular: uma impressão digital para comparar, uma caixa confirmando que ela bate nos dois aparelhos, o botão Approve this device e uma seção de grupos e chamadas, ambos marcados como Not connected.
Aprovando um segundo aparelho só depois que as impressões digitais batem. Grupos e chamadas aparecem como não conectados, porque não estão. Interface real, dados de exemplo (interface em inglês).

O que já foi testado, o que ainda é plano e a minha parte

Defini o produto, os princípios e os limites, e conduzo a construção: a especificação, as decisões de design, a ordem do trabalho e a revisão do que fica pronto. O código é escrito por agentes de IA que trabalham a partir dessa especificação, e uma afirmação só vale quando aponta para um teste registrado e diz até onde esse teste vai.

ANANSI ainda não foi publicado. A versão atual está sendo refeita com base num armazenamento criptografado mais rigoroso e ainda não funciona de ponta a ponta. macOS e Android vêm primeiro; iOS, Windows e Linux fazem parte do plano. As telas aqui são a interface real com dados de exemplo, não uma conversa funcionando.

  • Testado em versões anteriores: textos, arquivos e áudios enviados entre dois aparelhos de teste pela rede Tor de verdade.
  • Apoiado em trabalho consolidado: a criptografia usa a biblioteca publicada pelo projeto Signal, não um esquema caseiro.
  • Ainda em aberto: grupos e chamadas existem só como peças experimentais. O app ainda não foi testado num celular Android físico, e não existe uma versão assinada para macOS.
  • Ainda falta: uma revisão de segurança independente. Até que exista uma, nada aqui é garantia de segurança.

Próximo projeto

Loop Um time de marketing feito de agentes de IA: eles transformam um briefing de campanha em posts para redes sociais, uma pessoa aprova cada peça antes de sair, e os resultados devem orientar a próxima campanha.

Quer algo parecido?

Vamos conversar.

Vamos conversar