Nós
Nós es un mensajero sin servidores, para Android y iPhone. Los chats, los grupos, las fotos, los mensajes de voz, los archivos y las llamadas tienen cifrado de extremo a extremo y viajan por buzones en nodos que cualquiera puede ejecutar, incluso tu propia computadora. No hay número de teléfono, ni cuenta, ni empresa en el medio. “Nós” significa “nosotros” y “nodos” en portugués: las personas y la red que forman.

Primeros pasos
La primera pantalla ofrece Crear cuenta, Importar cuenta y Explorar sin cuenta.
- Crear cuenta: un nombre, un nombre de usuario y una foto opcionales, y un color de acento. “Tu identidad son tus claves. No necesitas número de teléfono.” No se registra nada en ningún lado: el perfil viaja solo dentro de tu tarjeta, hacia tus contactos.
- Guarda tu frase de recuperación: doce palabras que son tu cuenta. Toca Mostrar las palabras, anótalas y luego toca Ya las anoté. Se permite Más tarde; un aviso en Chats te lo recuerda hasta que lo confirmes.
- Explorar sin cuenta abre la app con personas, grupos y mensajes de muestra, guardados en la memoria y enviados a ningún lado. Ahí las llamadas, el escaneo y la red están desactivados. El aviso “Estás explorando chats de muestra” permite salir y volver a la primera pantalla.
Las pestañas de abajo son Chats, Llamadas, Contactos y Configuración.
Agregar personas
Nadie puede buscarte por número de teléfono ni por nombre. Las personas te encuentran con tu tarjeta, y tú eliges a quién se la das.
- Mi tarjeta (Contactos › el ícono del código QR, o Descubrir › Comparte tu tarjeta) muestra un código QR y Compartir enlace. Quien lo escanea o abre el enlace puede saludarte una vez. Los enlaces de invitación funcionan durante 30 días; Privacidad › Enlaces de invitación los cancela todos.
- Escanear código QR lee la tarjeta de otra persona, un nodo para agregar, un dispositivo para vincular o un número de seguridad. Ingresar un enlace acepta lo mismo, pegado.
- Al abrir un enlace de invitación se muestra la persona y Agregar contacto. Al agregarla, intercambian sus tarjetas y sus sellos, de modo que solo ustedes dos pueden escribir en los buzones del otro. La otra persona te recibe como contacto de inmediato (“se unió con tu invitación”).
- Buscar en la red (Descubrir) encuentra a alguien por su clave (64 caracteres), por una dirección como
[email protected](cuando su dominio responde en/.well-known/nos/<name>), o abre un enlace de invitación. Solo encuentra a las personas que activaron Visible por clave; ellas reciben una solicitud. - Presentar a alguien (en los detalles de un contacto) le envía a cada uno de dos contactos la tarjeta del otro. Cada uno ve “Te lo presentó …” en Solicitudes y agrega al otro con Saludar.
Solicitudes
Las personas que te encontraron por tu clave, o que te presentaron, aparecen en Solicitudes (un aviso en Chats y Contactos). No pueden escribirte hasta que toques Aceptar. Ignorar las olvida; Bloquear además las detiene en tus buzones.
Chats
La lista muestra cada chat con el último mensaje, su hora, las marcas de entrega, si alguien está escribiendo, los borradores y la cantidad de mensajes no leídos. Todos, No leídos, Grupos y Archivados la filtran; el campo de búsqueda filtra por nombre y por texto. Mantén presionado un chat (o haz clic derecho) para Fijar, Silenciar, Marcar como leído, Archivar o Eliminar chat. + abre Agregar un contacto, Escribir a un contacto, Nuevo grupo y Notas para mí (sincronizadas con tus otros dispositivos).

Mensajes
- Escribe y envía; en los celulares, Enter agrega una línea, a menos que Configuración › Chats › Enter envía esté activado.
- + en el campo de redacción envía una Foto o video, una toma de la Cámara, un Archivo (hasta 100 MB) o Mi ubicación (se abre en OpenStreetMap).
- El micrófono graba un mensaje de voz: tócalo para empezar y luego envía o descarta. Los mensajes de voz se reproducen con su forma de onda.
- Mantén presionado un mensaje (o haz clic derecho) para ver las reacciones rápidas y Responder, Reenviar, Guardar o compartir, Editar (tu propio texto, dentro de las 48 horas), Info y Eliminar (para ti, o para todos dentro de las 48 horas). Un doble clic reacciona con un corazón.
- Las fotos muestran una pequeña vista previa al instante y se descargan de los nodos; tócalas para abrirlas en pantalla completa. Los archivos se descargan al tocarlos.
Estados de entrega
| Marca | Significado |
|---|---|
| Reloj | Esperando en este celular (sin conexión, o ningún buzón respondió). Sale solo. |
| Una marca | En un buzón de la otra persona. Espera ahí hasta que su celular lo recoja. |
| Dos marcas | Su dispositivo lo recibió y lo descifró. |
| Dos marcas azules | Lo leyó (si los dos tienen activadas las confirmaciones de lectura). |
| Advertencia | No se entregó (bloqueado, o no hay forma de llegar a esa persona). Info › Enviar de nuevo lo vuelve a intentar. |
Info en un mensaje indica cuándo se escribió, cuándo se envió al buzón, cuándo se entregó y cuándo se leyó; en los grupos, quién lo recibió y quién lo leyó.
Mensajes temporales
En los detalles de un chat, Mensajes temporales (1 hora, 24 horas, 7 días, 90 días o No) hace que los mensajes nuevos desaparezcan de los dos celulares después de ese tiempo. Privacidad › Mensajes temporales define el temporizador para los chats nuevos.
Grupos
Nuevo grupo pide un nombre, una foto opcional y los contactos que quieres agregar (hasta 64 miembros). Ningún servidor guarda el grupo: cada miembro guarda la lista de miembros, firmada por los administradores, y cada mensaje se cifra una sola vez con la clave de quien lo envía y se deja en los buzones de cada miembro.

- Las pestañas del grupo, arriba: Chat, Multimedia, Archivos, Miembros.
- Los administradores pueden Agregar miembros, Quitar del grupo, Hacer administrador, cambiar el nombre del grupo y cambiar su foto. Salir del grupo te saca de él; el chat se queda en el dispositivo.
- Los miembros que no son tus contactos igual pueden llegar a ti, y tú a ellos, solo para el grupo: cada miembro sella sus buzones para el grupo.
- Cuando alguien entra o sale, quienes envían empiezan claves nuevas, así que las personas que salieron no pueden leer lo que viene después.
Llamadas
Los botones de teléfono y de cámara en el chat de un contacto inician una llamada de voz o de video. Las llamadas van directo entre los dos dispositivos (WebRTC), cifradas; la señalización viaja en pequeños sobres que vencen en un minuto. Durante una llamada: Silenciar, Cámara (activar o desactivar el video), Girar y Finalizar. Una llamada entrante muestra Aceptar y Rechazar.
No hay retransmisor para las llamadas: cuando las dos redes no permiten un camino directo, la llamada no puede conectarse, y la app dice “No se pudo conectar directamente”. La pestaña Llamadas lista tus llamadas; toca el teléfono para devolver la llamada.
Contactos
La lista muestra tus contactos con su nombre de usuario, En línea (cuando lo comparten) y tus grupos. Los detalles de un contacto tienen Mensaje, Llamar, Video, Verificar número de seguridad, Apodo (solo lo ves tú), multimedia, mensajes temporales, Silenciar, Presentar a alguien, sus Dispositivos, Bloquear, Vaciar chat y Eliminar contacto.
Números de seguridad
Cada par de contactos comparte un número de seguridad de 60 dígitos. Compáralo en persona o en una llamada, o escanea el código en su celular con Escanear su código: si coincide, márcalo como Verificado (una insignia junto al nombre).
Bloquear
Bloquear cancela el sello que le diste a esa persona en todos tus buzones: los nodos dejan de aceptar sus sobres. No se le avisa. Configuración › Privacidad › Bloqueados los lista y permite desbloquearlos.
Notificaciones
Configuración › Notificaciones tiene dos modos:
- Instantáneas: tus buzones despiertan este dispositivo con una notificación push vacía, a través del servicio push del navegador. Ese servicio sabe cuándo despertar el dispositivo, nunca qué se envió ni quién lo envió. La notificación dice “Mensaje nuevo”; el mensaje se recoge y se descifra cuando abres la app.
- Puras: sin ninguna notificación push. Ves los mensajes nuevos cuando abres la app.
En el iPhone, las notificaciones necesitan la app en la pantalla de inicio (Safari › Compartir › Agregar a pantalla de inicio) y luego Activar notificaciones. La app de Android busca mensajes mientras está abierta. Mientras la app está abierta, un aviso muestra los mensajes nuevos de otros chats.
Dispositivos
Configuración › Dispositivos lista tus dispositivos. Para agregar uno, abre Nós en el dispositivo nuevo, elige Importar cuenta › Vincular con mi celular, ponle un nombre y, en tu celular, toca Vincular un dispositivo y escanea el código que muestra (o abre ahí su enlace). El dispositivo nuevo recibe tus contactos y tus grupos, y todos los mensajes a partir de ese momento; los mensajes anteriores se quedan donde estaban. La frase de recuperación se queda en el dispositivo principal, que también es el que elimina dispositivos.
Red

Un nodo guarda buzones: sobres cifrados, hasta que el celular los recoge (30 días como máximo). No puede leerlos ni ver quién los envió. Cada persona tiene hasta tres buzones en nodos distintos, listados en su tarjeta; un mensaje va a todos ellos y la primera recogida lo borra.
- Tus nodos muestra cada nodo, si está conectado y tus buzones en él.
- Conexión: Automática usa tus nodos, y el público cuando no tienes ninguno; Manual usa solo los nodos que agregaste.
- Agregar un nodo escanea o pega el enlace que imprime un nodo. Si el nodo todavía no fue adoptado, Adoptar este nodo lo hace tuyo: te aloja a ti y a tus contactos con cuotas más grandes (500 MB de mensajes y 2 GB de multimedia por persona, 30 días) en lugar de las públicas (50 MB y 200 MB, 7 días para la multimedia).
- Sin ningún nodo propio, la app usa el nodo público de leonardoaguiar.com.
Ejecuta tu propio nodo
nos-node funciona en macOS y Linux (arm64 y x86_64):
curl -fsSL https://leonardoaguiar.com/apps/nos/install.sh | sh
nos-node run
nos-node address
nos-node address imprime un enlace y un código QR; ábrelo en Configuración › Red › Agregar nodo para adoptar el nodo. Detrás de un router doméstico, ejecútalo con --attach wss://leonardoaguiar.com/_/nos#f4eea0585b7f4cc4ecfab6a76082a724ee42c7b57d462377f6cf8344c785d00a: mantiene una conexión con el nodo público, que le retransmite las apps sin ver nada más que bytes cifrados. En un servidor, ponlo detrás de TLS (nginx o Caddy) y pásale su dirección pública con --url wss://…. --public también aloja a desconocidos (con prueba de trabajo y cuotas pequeñas); --stun 0.0.0.0:3478 responde STUN para las llamadas directas. El nodo guarda su clave, su configuración y sus datos en ~/Library/Application Support/Nos Node (macOS) o ~/.local/share/nos-node (Linux). Ejecutar de nuevo el comando de instalación lo actualiza.
Respaldo y recuperación

- Frase de recuperación: Mostrar frase de recuperación (asegúrate de que nadie esté mirando).
- Respaldar ahora y Respaldar todos los días envían un respaldo cifrado (contactos, grupos, chats y las claves de este dispositivo; no la multimedia) a tus buzones, cifrado con una clave derivada de tu frase. Guardar archivo de respaldo crea un archivo
.nosbakque guardas tú. - Importar cuenta › Frase de recuperación encuentra tu tarjeta en los nodos, abre tus buzones y trae el respaldo más reciente. Sin respaldo, vuelven tu identidad, tu perfil y tus buzones, pero los contactos y los chats empiezan vacíos: vuelve a agregar a tus contactos con tu tarjeta.
- Importar cuenta › Archivo de respaldo abre un
.nosbakcon su frase.
Guardianes
Elegir guardianes divide tu frase entre 2 y 7 contactos, de modo que una cantidad de ellos que tú eliges pueda recuperarla en conjunto; menos que eso no revela nada. Cada parte les llega cifrada. En un celular nuevo, Importar cuenta › Pedir ayuda a mis guardianes muestra un código y un enlace para enviarles; cada guardián lo abre en Nós, comprueba que de verdad eres tú y envía su parte. Cuando llegan suficientes partes, la cuenta vuelve. Personas que proteges lista a quienes te eligieron.
Restablecer cuenta borra este dispositivo. Sin la frase ni los guardianes, la cuenta no puede volver: nadie más la tiene.
Configuración
| Página | Qué tiene |
|---|---|
| Perfil | Foto, nombre visible, nombre de usuario, info, color de acento, Mi tarjeta. Los cambios llegan a tus contactos de inmediato. |
| Privacidad | Presentaciones (Contactos o Nadie), Visible por clave, Los contactos pueden compartir tu tarjeta, Enlaces de invitación, Confirmaciones de lectura, Indicador de escritura, Estado en línea, Mensajes temporales para chats nuevos, Bloqueados. |
| Notificaciones | Instantáneas o Puras, Mostrar remitente y texto, Avisos con la app abierta. |
| Chats | Tema (Sistema, Claro, Oscuro), Tamaño del texto, Enter envía, Archivar todos los chats, Vaciar todos los chats. |
| Almacenamiento y datos | Espacio que ocupan las fotos, los videos, los mensajes de voz y los archivos en este dispositivo, Administrar almacenamiento; descarga automática de fotos, videos y archivos (Siempre, Solo con Wi-Fi, Nunca) y fotos en alta calidad. |
| Dispositivos | Tus dispositivos, Vincular un dispositivo, Eliminar. |
| Respaldo y recuperación | Frase, respaldos, guardianes, Personas que proteges, Restablecer cuenta. |
| Red | Conexión, tus nodos, Agregar un nodo. |
| Avanzado | Tu clave (como texto y como código QR), la clave de este dispositivo, Volver a publicar mi tarjeta, Enviar ahora los mensajes en espera. |
No existe la “última conexión”: ningún nodo la guarda. El indicador de escritura y el estado en línea son sobres diminutos que vencen en segundos, enviados solo a tus contactos, y los dos se pueden desactivar.
Protocolo
- Identidad: de las doce palabras (BIP39) se derivan la clave de identidad (Ed25519; su mitad pública es tu clave), la clave de la tarjeta, la clave de los respaldos, la clave de los sellos y las claves de cada buzón. Cada dispositivo tiene su propia cuenta Olm.
- Tarjeta: un registro firmado con tus dispositivos, tus buzones y tu perfil, con el contenido cifrado con la clave de la tarjeta, que solo tienen tus contactos. Los nodos la guardan con un nombre derivado de esa clave, así que un desconocido que solo sabe tu clave no puede encontrarla.
- Sesiones: los mensajes entre dos personas usan Olm (el Double Ratchet, del vodozemac de Matrix), iniciado con claves de un solo uso guardadas en tus buzones; los grupos usan Megolm, con una cadena de envío por miembro.
- Sobres: sellados con la clave del buzón (X25519 y XChaCha20-Poly1305) y rellenados a 1, 4, 16 o 48 KB. El nodo ve el nombre del buzón, el sello, un tiempo de vida y el escalón de tamaño; nada sobre quién lo envía.
- Sellos: tokens firmados por el dueño del buzón para cada contacto, que nombran una clave portadora que debe firmar cada sobre, con límites diarios. Bloquear revoca el sello en el nodo. Los desconocidos pagan con prueba de trabajo.
- Canal con los nodos: Noise NK sobre WebSocket, con la clave del nodo conocida de antemano, así que ni un retransmisor ni el terminador TLS que esté delante de un nodo pueden leer ni falsificar nada. Los nodos detrás de routers se conectan a un retransmisor con Noise IK.
- Multimedia: cada archivo se cifra con su propia clave, se corta en piezas de 48 KB y se identifica por el hash de las piezas.
- Despertares: Web Push (RFC 8291 y 8292) con una clave VAPID creada por la app, así que cualquiera de tus buzones puede despertar tu celular sin una clave push central.
Instalación y actualizaciones
- Android: el APK de este sitio. Android 7 o posterior. Una vez al día, la app le pregunta a este sitio cuál es la versión más reciente y muestra Nós x está disponible en Configuración; el APK nuevo se instala sobre el anterior y conserva tu cuenta y tus chats.
- iPhone y iPad: la app web, desde Safari. Abre leonardoaguiar.com/apps/nos/app/, toca Compartir › Agregar a pantalla de inicio y abre Nós desde la pantalla de inicio. iOS 16.4 o posterior. Se actualiza sola.
- Cualquier navegador: la misma dirección funciona en una versión reciente de Chrome, Safari, Edge o Firefox, con la cuenta guardada en ese navegador.
- El nodo: consulta Ejecuta tu propio nodo.
Privacidad
Nós no tiene un servidor propio ni cuentas. Lo que sale de tu dispositivo:
- Sobres hacia buzones en nodos, sellados: el nodo ve un nombre de buzón aleatorio, el escalón de tamaño, la hora y la dirección de internet que se conectó.
- Tu tarjeta en tus nodos, firmada y cifrada para tus contactos.
- Piezas de multimedia en tu buzón y en el de quien las recibe, cifradas, hasta que se descargan (7 días en los nodos públicos, 30 en los tuyos).
- Respaldos cifrados en tus buzones, cuando están activados.
- Notificaciones push vacías para despertar el dispositivo, a través del servicio web push de Apple, Google o Mozilla, cuando las notificaciones Instantáneas están activadas.
- Llamadas, directo al otro dispositivo; el servidor STUN de Cloudflare (
stun.cloudflare.com) le dice a cada celular su dirección pública. - La búsqueda de versiones de la app de Android: una solicitud al día a este sitio, que no envía nada sobre ti.
No hay estadísticas de uso, ni subida de contactos, ni directorio, ni “última conexión”.