Nós
O Nós é um mensageiro sem servidores, para Android e iPhone. Conversas, grupos, fotos, mensagens de voz, arquivos e chamadas têm criptografia de ponta a ponta e passam por caixas postais em nós que qualquer pessoa pode rodar, inclusive no seu próprio computador. Não há número de telefone, nem conta, nem empresa no meio. O nome diz as duas coisas: “nós”, as pessoas, e os nós da rede que elas formam.

Primeiros passos
A primeira tela oferece Criar conta, Importar conta e Explorar sem conta.
- Criar conta: um nome, um nome de usuário e uma foto opcionais, e uma cor de destaque. “A sua identidade são as suas chaves. Sem número de telefone.” Nada é registrado em lugar nenhum: o perfil só viaja dentro do seu cartão, até os seus contatos.
- Guarde a sua frase de recuperação: doze palavras que são a sua conta. Toque em Mostrar as palavras, anote-as e depois toque em Já anotei. Dá para escolher Depois; um aviso em Conversas lembra você até que confirme.
- Explorar sem conta abre o app com pessoas, grupos e mensagens de exemplo, guardados na memória e enviados a lugar nenhum. As chamadas, a leitura de códigos e a rede ficam desligadas ali. O aviso “Você está explorando conversas de exemplo” sai e volta para a primeira tela.
As abas embaixo são Conversas, Chamadas, Contatos e Ajustes.
Adicionar pessoas
Ninguém consegue encontrar você pelo número de telefone nem pelo nome. As pessoas chegam até você pelo seu cartão, e você escolhe a quem dá-lo.
- Meu cartão (Contatos › o ícone de QR, ou Descobrir › Compartilhar o seu cartão) mostra um código QR e Compartilhar link. Quem lê o código ou abre o link pode dizer oi uma vez. Os links de convite valem por 30 dias; Privacidade › Links de convite cancela todos.
- Ler código QR lê o cartão de outra pessoa, um nó para adicionar, um aparelho para vincular ou um número de segurança. Digitar um link aceita as mesmas coisas coladas.
- Abrir um link de convite mostra a pessoa e Adicionar contato. Adicionar troca os seus cartões e selos, para que só vocês dois possam escrever nas caixas postais um do outro. O outro lado recebe você como contato na hora (“entrou pelo seu convite”).
- Buscar na rede (Descobrir) encontra alguém pela chave (64 caracteres), por um endereço como
[email protected](quando o domínio da pessoa responde em/.well-known/nos/<name>) ou abre um link de convite. Só encontra quem ligou Encontrável pela chave; a pessoa recebe um pedido. - Apresentar a alguém (nos detalhes de um contato) manda a cada um de dois contatos o cartão do outro. Cada um vê “Apresentado por …” em Pedidos e adiciona o outro com Dizer oi.
Pedidos
As pessoas que encontraram você pela chave, ou que foram apresentadas, aparecem em Pedidos (um aviso em Conversas e em Contatos). Elas não podem escrever para você até que você toque em Aceitar. Ignorar esquece a pessoa; Bloquear também a barra nas suas caixas postais.
Conversas
A lista mostra cada conversa com a última mensagem, a hora dela, os sinais de entrega, quem está digitando, os rascunhos e quantas mensagens não foram lidas. Todas, Não lidas, Grupos e Arquivo filtram a lista; o campo de busca filtra por nome e por texto. Mantenha uma conversa pressionada (ou clique com o botão direito) para Fixar, Silenciar, Marcar como lida, Arquivar ou Apagar conversa. O + abre Adicionar um contato, Escrever a um contato, Novo grupo e Notas para mim (sincronizadas com os seus outros aparelhos).

Mensagens
- Digite e envie; nos celulares, Enter adiciona uma linha, a não ser que Ajustes › Conversas › Enter envia esteja ligado.
- O + do campo de mensagem envia uma Foto ou vídeo, uma foto da Câmera, um Arquivo (até 100 MB) ou Minha localização (abre no OpenStreetMap).
- O microfone grava uma mensagem de voz: toque para começar e depois envie ou descarte. As mensagens de voz tocam com a forma de onda delas.
- Mantenha uma mensagem pressionada (ou clique com o botão direito) para as reações rápidas e Responder, Encaminhar, Salvar ou compartilhar, Editar (o seu próprio texto, em até 48 horas), Informações e Apagar (para você, ou para todos em até 48 horas). Um clique duplo reage com um coração.
- As fotos mostram uma pequena prévia na hora e são baixadas dos nós; toque para abrir em tela cheia. Os arquivos são baixados quando você toca neles.
Estados de entrega
| Sinal | Significa |
|---|---|
| Relógio | Esperando neste celular (sem conexão, ou nenhuma caixa postal respondeu). Sai sozinha. |
| Um tique | Numa caixa postal da outra pessoa. Espera ali até o celular dela buscar. |
| Dois tiques | O aparelho dela recebeu e decifrou. |
| Dois tiques azuis | A pessoa leu (se as duas tiverem a confirmação de leitura ligada). |
| Alerta | Não entregue (bloqueada, ou sem como chegar à pessoa). Informações › Enviar de novo tenta outra vez. |
Informações numa mensagem diz quando ela foi escrita, enviada à caixa postal, entregue e lida; nos grupos, quem recebeu e quem leu.
Mensagens temporárias
Nos detalhes de uma conversa, Mensagens temporárias (1 hora, 24 horas, 7 dias, 90 dias ou Desligado) faz as mensagens novas sumirem dos dois celulares depois desse tempo. Privacidade › Mensagens temporárias define o tempo para as conversas novas.
Grupos
Novo grupo pede um nome, uma foto opcional e os contatos a adicionar (até 64 membros). Nenhum servidor guarda o grupo: cada membro guarda a lista de membros, assinada pelos administradores, e cada mensagem é cifrada uma vez com a chave de quem a envia e postada nas caixas postais de todos os membros.

- As abas do grupo, no alto: Conversa, Mídia, Arquivos, Membros.
- Os administradores podem Adicionar membros, Remover do grupo, Tornar administrador, renomear o grupo e trocar a foto dele. Sair do grupo sai; a conversa fica no aparelho.
- Os membros que não são seus contatos ainda chegam até você, e você até eles, só para o grupo: cada membro dá selos às próprias caixas postais para o grupo.
- Quando alguém entra ou sai, quem envia passa a usar chaves novas, então quem saiu não consegue ler o que vem depois.
Chamadas
Os botões de telefone e de câmera na conversa com um contato começam uma chamada de voz ou de vídeo. As chamadas vão direto entre os dois aparelhos (WebRTC), cifradas; a sinalização viaja em pequenos envelopes que expiram em um minuto. Durante uma chamada: Silenciar, Câmera (liga ou desliga o vídeo), Virar e Encerrar. Uma chamada recebida mostra Atender e Recusar.
Não há retransmissão para as chamadas: quando as duas redes não permitem um caminho direto, a chamada não se conecta, e o app diz “Não foi possível conectar diretamente”. A aba Chamadas lista as suas chamadas; toque no telefone para ligar de volta.
Contatos
A lista mostra os seus contatos com o nome de usuário, On-line (quando eles compartilham isso) e os seus grupos. Os detalhes de um contato têm Mensagem, Ligar, Vídeo, Verificar número de segurança, Apelido (só você vê), mídia, mensagens temporárias, Silenciar, Apresentar a alguém, os Aparelhos dele, Bloquear, Limpar conversa e Remover contato.
Números de segurança
Cada par de contatos compartilha um número de segurança de 60 dígitos. Compare pessoalmente ou numa chamada, ou leia o código no celular da outra pessoa com Ler o código dela: se bater, marque como Verificado (um selo ao lado do nome).
Bloquear
Bloquear cancela o selo que você deu àquela pessoa em todas as suas caixas postais: os nós param de aceitar os envelopes dela. Ela não é avisada. Ajustes › Privacidade › Bloqueados lista e desbloqueia.
Notificações
Ajustes › Notificações tem dois modos:
- Instantâneas: as suas caixas postais acordam este aparelho com um push vazio, pelo serviço de push do navegador. Ele sabe quando acordar o aparelho, nunca o que foi enviado nem por quem. A notificação diz “Nova mensagem”; a mensagem é buscada e decifrada quando você abre o app.
- Puras: nenhum push. Você vê as mensagens novas quando abre o app.
No iPhone, as notificações precisam do app na Tela de Início (Safari › Compartilhar › Adicionar à Tela de Início) e depois de Ativar notificações. O app de Android procura mensagens enquanto está aberto. Com o app aberto, um aviso mostra as mensagens novas de outras conversas.
Aparelhos
Ajustes › Aparelhos lista os seus aparelhos. Para adicionar um, abra o Nós no aparelho novo, escolha Importar conta › Vincular ao meu celular, dê um nome a ele e, no seu celular, toque em Vincular um aparelho e leia o código que ele mostra (ou abra o link dele ali). O aparelho novo recebe os seus contatos e grupos e passa a receber todas as mensagens dali em diante; as mensagens anteriores ficam onde estavam. A frase de recuperação fica no aparelho principal, que é também o que remove aparelhos.
Rede

Um nó guarda caixas postais: envelopes cifrados, até o celular buscá-los (30 dias, no máximo). Ele não consegue lê-los nem ver quem os enviou. Cada pessoa tem até três caixas postais em nós diferentes, listadas no cartão dela; uma mensagem vai para todas, e a primeira busca a apaga.
- Seus nós mostra cada nó, se ele está conectado e as suas caixas postais nele.
- Conexão: Automática usa os seus nós e o público quando você não tem nenhum; Manual usa só os nós que você adicionou.
- Adicionar um nó lê ou cola o link que um nó imprime. Se o nó ainda não foi adotado, Adotar este nó faz dele seu: ele hospeda você e os seus contatos com cotas maiores (500 MB de mensagens e 2 GB de mídia por pessoa, 30 dias) em vez das públicas (50 MB e 200 MB, 7 dias para a mídia).
- Sem nenhum nó seu, o app usa o nó público de leonardoaguiar.com.
Rodar o seu próprio nó
O nos-node roda no macOS e no Linux (arm64 e x86_64):
curl -fsSL https://leonardoaguiar.com/apps/nos/install.sh | sh
nos-node run
nos-node address
O nos-node address imprime um link e um código QR; abra-o em Ajustes › Rede › Adicionar nó para adotar o nó. Atrás de um roteador doméstico, rode com --attach wss://leonardoaguiar.com/_/nos#f4eea0585b7f4cc4ecfab6a76082a724ee42c7b57d462377f6cf8344c785d00a: ele mantém uma conexão com o nó público, que repassa os apps para ele sem ver nada além de bytes cifrados. Num servidor, coloque-o atrás de TLS (nginx ou Caddy) e passe o endereço público dele com --url wss://…. --public hospeda também desconhecidos (com prova de trabalho e cotas pequenas); --stun 0.0.0.0:3478 responde a STUN para chamadas diretas. O nó guarda a chave, os ajustes e os dados dele em ~/Library/Application Support/Nos Node (macOS) ou ~/.local/share/nos-node (Linux). Rodar o comando de instalação de novo o atualiza.
Backup e recuperação

- Frase de recuperação: Mostrar a frase de recuperação (confira que ninguém está olhando).
- Fazer backup agora e Fazer backup todo dia mandam um backup cifrado (contatos, grupos, conversas e as chaves deste aparelho; não a mídia) para as suas caixas postais, cifrado com uma chave tirada da sua frase. Salvar arquivo de backup cria um arquivo
.nosbakque você mesmo guarda. - Importar conta › Frase de recuperação encontra o seu cartão nos nós, abre as suas caixas postais e traz de volta o backup mais recente. Sem backup, a sua identidade, o seu perfil e as suas caixas postais voltam, mas os contatos e as conversas começam vazios: adicione os seus contatos de novo com o seu cartão.
- Importar conta › Arquivo de backup abre um
.nosbakcom a frase dele.
Guardiões
Escolher guardiões divide a sua frase entre 2 e 7 contatos, de modo que uma quantidade deles, que você escolhe, consiga recuperá-la junta; menos do que isso não revela nada. Cada parte chega a eles cifrada. Num celular novo, Importar conta › Pedir aos meus guardiões mostra um código e um link para mandar a eles; cada guardião abre o link no Nós, confere que é você mesmo e manda a parte dele. Quando chegam partes suficientes, a conta volta. Pessoas que você protege lista quem escolheu você.
Redefinir conta apaga este aparelho. Sem a frase ou os guardiões, a conta não tem como voltar: ninguém mais a tem.
Ajustes
| Página | O que tem |
|---|---|
| Perfil | Foto, nome de exibição, nome de usuário, recado, cor de destaque, Meu cartão. As mudanças chegam aos seus contatos na hora. |
| Privacidade | Apresentações (Contatos ou Ninguém), Encontrável pela chave, Contatos podem compartilhar o seu cartão, Links de convite, Confirmação de leitura, Indicador de digitação, Status on-line, Mensagens temporárias para conversas novas, Bloqueados. |
| Notificações | Instantâneas ou Puras, Mostrar remetente e texto, Avisos com o app aberto. |
| Conversas | Tema (Sistema, Claro, Escuro), Tamanho do texto, Enter envia, Arquivar todas as conversas, Limpar todas as conversas. |
| Armazenamento e dados | Espaço ocupado neste aparelho por fotos, vídeos, mensagens de voz e arquivos, Gerenciar armazenamento; download automático de fotos, vídeos e arquivos (Sempre, Só no Wi-Fi, Nunca) e fotos em alta qualidade. |
| Aparelhos | Os seus aparelhos, Vincular um aparelho, Remover. |
| Backup e recuperação | Frase, backups, guardiões, Pessoas que você protege, Redefinir conta. |
| Rede | Conexão, os seus nós, Adicionar um nó. |
| Avançado | A sua chave (em texto e em código QR), a chave deste aparelho, Publicar o meu cartão de novo, Enviar agora as mensagens em espera. |
Não existe “visto por último”: nenhum nó guarda isso. Digitando e on-line são envelopes minúsculos que expiram em segundos, mandados só aos seus contatos, e os dois podem ser desligados.
Protocolo
- Identidade: as doze palavras (BIP39) derivam a chave de identidade (Ed25519; a metade pública dela é a sua chave), a chave do cartão, a chave do backup, a chave dos selos e as chaves de cada caixa postal. Cada aparelho tem a sua própria conta Olm.
- Cartão: um registro assinado com os seus aparelhos, as suas caixas postais e o seu perfil, com o conteúdo cifrado com a chave do cartão, que só os contatos têm. Os nós o guardam sob um nome derivado dessa chave, então um desconhecido que só sabe a sua chave não consegue encontrá-lo.
- Sessões: as mensagens de um para um usam Olm (o Double Ratchet, do vodozemac do Matrix), iniciado com chaves de uso único guardadas nas suas caixas postais; os grupos usam Megolm, uma cadeia de envio por membro.
- Envelopes: lacrados para a chave da caixa postal (X25519 e XChaCha20-Poly1305) e preenchidos até 1, 4, 16 ou 48 KB. O nó vê o nome da caixa postal, o selo, um tempo de vida e a faixa de tamanho; nada sobre quem enviou.
- Selos: tokens assinados pelo dono da caixa postal para cada contato, que indicam uma chave de portador que precisa assinar cada envelope, com limites diários. Bloquear revoga o selo no nó. Os desconhecidos pagam com prova de trabalho no lugar.
- Canal com os nós: Noise NK sobre WebSocket, com a chave do nó conhecida de antemão, então nem um repetidor nem o terminador TLS na frente de um nó conseguem ler ou forjar nada. Os nós atrás de roteadores se ligam a um repetidor com Noise IK.
- Mídia: cada arquivo é cifrado com a sua própria chave, cortado em pedaços de 48 KB e endereçado pelo hash dos pedaços.
- Despertar: Web Push (RFC 8291 e 8292) com uma chave VAPID criada pelo app, para que qualquer uma das suas caixas postais consiga acordar o seu celular sem uma chave de push central.
Instalação e atualizações
- Android: o APK deste site. Android 7 ou posterior. Uma vez por dia, o app pergunta a este site qual é a versão mais recente e mostra Nós x está disponível em Ajustes; o APK novo se instala por cima do antigo e mantém a sua conta e as suas conversas.
- iPhone e iPad: o app web, pelo Safari. Abra leonardoaguiar.com/apps/nos/app/, toque em Compartilhar › Adicionar à Tela de Início e abra o Nós pela Tela de Início. iOS 16.4 ou posterior. Ele se atualiza sozinho.
- Qualquer navegador: o mesmo endereço funciona num Chrome, Safari, Edge ou Firefox recente, com a conta guardada naquele navegador.
- O nó: veja Rodar o seu próprio nó.
Privacidade
O Nós não tem servidor próprio nem conta. O que sai do seu aparelho:
- Envelopes para as caixas postais nos nós, lacrados: o nó vê um nome de caixa postal aleatório, a faixa de tamanho, a hora e o endereço de internet que se conectou.
- O seu cartão nos seus nós, assinado e cifrado para os seus contatos.
- Pedaços de mídia na sua caixa postal e na de quem recebe, cifrados, até serem baixados (7 dias nos nós públicos, 30 nos seus).
- Backups cifrados nas suas caixas postais, quando ligados.
- Pushes vazios para despertar, pelo serviço de web push da Apple, do Google ou da Mozilla, quando as notificações Instantâneas estão ligadas.
- Chamadas, direto para o outro aparelho; o servidor STUN da Cloudflare (
stun.cloudflare.com) diz a cada celular o endereço público dele. - A verificação de versão do app de Android: um pedido por dia a este site, que não manda nada sobre você.
Não há estatísticas de uso, nem envio de contatos, nem diretório, nem “visto por último”.