Nós
Nós est une messagerie sans serveur, pour Android et iPhone. Conversations, groupes, photos, messages vocaux, fichiers et appels sont chiffrés de bout en bout et transitent par des boîtes aux lettres hébergées sur des nœuds que n’importe qui peut faire tourner, y compris votre propre ordinateur. Pas de numéro de téléphone, pas de compte, pas d’entreprise au milieu. « Nós » veut dire « nous » et « nœuds » en portugais : les gens, et le réseau qu’ils forment.

Premiers pas
Le premier écran propose Create account (créer un compte), Import account (importer un compte) et Explore without account (explorer sans compte).
- Create account : un nom, un nom d’utilisateur et une photo facultatifs, et une couleur d’accent. « Your identity is your keys. No phone number required. » (votre identité, ce sont vos clés ; aucun numéro de téléphone n’est nécessaire). Rien n’est enregistré nulle part : le profil ne voyage qu’à l’intérieur de votre carte, jusqu’à vos contacts.
- Save your recovery phrase : douze mots qui sont votre compte. Touchez Show the words, notez-les, puis I wrote it down. Later (plus tard) est possible ; un bandeau dans Chats vous le rappelle jusqu’à ce que vous confirmiez.
- Explore without account ouvre l’app avec des personnes, des groupes et des messages d’exemple, gardés en mémoire et envoyés nulle part. Les appels, la lecture de codes et le réseau y sont désactivés. Le bandeau « You’re exploring sample chats » permet d’en sortir et de revenir au premier écran.
Les onglets en bas de l’écran sont Chats (conversations), Calls (appels), Contacts et Settings (réglages).
Ajouter des personnes
Personne ne peut vous trouver par votre numéro de téléphone ni par votre nom. On vous joint grâce à votre carte, et c’est vous qui choisissez à qui la donner.
- My card (Contacts › l’icône QR, ou Discover › Share your card) affiche un code QR et Share link (partager le lien). La personne qui le scanne ou ouvre le lien peut vous saluer une fois. Les liens d’invitation sont valables 30 jours ; Privacy › Invite links les annule tous.
- Scan QR code lit la carte de quelqu’un d’autre, un nœud à ajouter, un appareil à associer ou un numéro de sécurité. Enter a link instead accepte les mêmes éléments, collés.
- Ouvrir un lien d’invitation affiche la personne et Add contact. L’ajout échange vos cartes et vos tampons, si bien que vous seuls pouvez écrire dans la boîte aux lettres de l’autre. L’autre personne vous reçoit aussitôt comme contact (« joined from your invite »).
- Search in network (Discover) trouve quelqu’un par sa clé (64 caractères), par une adresse comme
[email protected](quand son domaine répond sur/.well-known/nos/<name>), ou ouvre un lien d’invitation. On ne trouve ainsi que les personnes qui ont activé Discoverable by key (repérable par la clé) ; elles reçoivent une demande. - Introduce to someone (dans les détails d’un contact) envoie à deux de vos contacts la carte de l’autre. Chacun voit « Introduced by … » dans Requests et ajoute l’autre avec Say hello.
Demandes
Les personnes qui vous ont trouvé par votre clé, ou qui vous ont été présentées, apparaissent dans Requests (un bandeau dans Chats et Contacts). Elles ne peuvent pas vous écrire tant que vous n’avez pas touché Accept. Ignore les oublie ; Block les arrête en plus à vos boîtes aux lettres.
Conversations
La liste affiche chaque conversation avec le dernier message, son heure, les coches de distribution, la saisie en cours, les brouillons et le nombre de messages non lus. All, Unread, Groups et Archive la filtrent ; le champ de recherche filtre par nom et par texte. Maintenez le doigt sur une conversation (ou cliquez avec le bouton droit) pour Pin (épingler), Mute (rendre muette), Mark as read (marquer comme lue), Archive (archiver) ou Delete chat (supprimer). + ouvre Add a contact, Message a contact, New group et Notes to self (des notes pour vous-même, synchronisées avec vos autres appareils).

Messages
- Tapez et envoyez ; sur téléphone, Entrée ajoute une ligne, sauf si Settings › Chats › Enter sends est activé.
- Le + de la zone de saisie envoie une Photo or video, une prise de vue Camera, un File (fichier, jusqu’à 100 Mo) ou My location (votre position, qui s’ouvre dans OpenStreetMap).
- Le micro enregistre un message vocal : touchez pour commencer, puis envoyez ou abandonnez. Les messages vocaux sont lus avec leur forme d’onde.
- Maintenez le doigt sur un message (ou cliquez avec le bouton droit) pour les réactions rapides et Reply (répondre), Forward (transférer), Save or share (enregistrer ou partager), Edit (modifier votre propre texte, dans les 48 heures), Info et Delete (supprimer pour vous, ou pour tout le monde dans les 48 heures). Un double-clic réagit avec un cœur.
- Les photos affichent tout de suite un petit aperçu et se téléchargent depuis les nœuds ; touchez-les pour les ouvrir en plein écran. Les fichiers se téléchargent quand vous les touchez.
États de distribution
| Marque | Signification |
|---|---|
| Horloge | En attente sur ce téléphone (pas de connexion, ou aucune boîte aux lettres n’a répondu). Le message part de lui-même. |
| Une coche | Dans une boîte aux lettres du destinataire. Il y attend que son téléphone vienne le chercher. |
| Deux coches | Son appareil l’a reçu et déchiffré. |
| Deux coches bleues | Il l’a lu (si les deux ont activé les confirmations de lecture). |
| Avertissement | Non distribué (blocage, ou aucun moyen de joindre la personne). Info › Send again réessaie. |
Info sur un message indique quand il a été écrit, envoyé à la boîte aux lettres, distribué et lu ; dans les groupes, qui l’a reçu et lu.
Messages éphémères
Dans les détails d’une conversation, Disappearing messages (1 heure, 24 heures, 7 jours, 90 jours ou Off) fait disparaître les nouveaux messages des deux téléphones au bout de ce délai. Privacy › Disappearing messages règle le délai des nouvelles conversations.
Groupes
New group demande un nom, une photo facultative et les contacts à ajouter (jusqu’à 64 membres). Aucun serveur ne conserve le groupe : chaque membre garde la liste des membres, signée par les administrateurs, et chaque message est chiffré une seule fois avec la clé de son expéditeur, puis déposé dans les boîtes aux lettres de chaque membre.

- Les onglets du groupe, en haut : Chat, Media, Files, Members.
- Les administrateurs peuvent ajouter des membres (Add members), les retirer (Remove from group), nommer un administrateur (Make admin), renommer le groupe et changer sa photo. Leave group quitte le groupe ; la conversation reste sur l’appareil.
- Les membres qui ne font pas partie de vos contacts peuvent quand même vous joindre, et vous les joindre, mais seulement pour le groupe : chaque membre délivre des tampons sur ses boîtes aux lettres pour le groupe.
- Quand quelqu’un rejoint le groupe ou le quitte, les expéditeurs passent à de nouvelles clés : ceux qui sont partis ne peuvent pas lire ce qui suit.
Appels
Les boutons téléphone et caméra de la conversation d’un contact lancent un appel vocal ou vidéo. Les appels passent directement d’un appareil à l’autre (WebRTC), chiffrés ; la signalisation voyage dans de petites enveloppes qui expirent au bout d’une minute. Pendant un appel : Mute (couper le micro), Camera (activer ou désactiver la vidéo), Flip (changer de caméra) et End (raccrocher). Un appel entrant affiche Accept et Decline.
Il n’y a pas de relais pour les appels : quand les deux réseaux ne permettent pas de liaison directe, l’appel ne peut pas s’établir et l’app affiche « Couldn’t connect directly ». L’onglet Calls liste vos appels ; touchez le téléphone pour rappeler.
Contacts
La liste affiche vos contacts avec leur nom d’utilisateur, Online (quand ils le partagent), et vos groupes. Les détails d’un contact proposent Message, Call, Video, Verify safety number (vérifier le numéro de sécurité), Nickname (un surnom que vous seul voyez), les médias, les messages éphémères, Mute, Introduce to someone, ses Devices (appareils), Block, Clear chat (vider la conversation) et Remove contact.
Numéros de sécurité
Chaque paire de contacts partage un numéro de sécurité de 60 chiffres. Comparez-le en personne ou pendant un appel, ou scannez le code sur son téléphone avec Scan their code : s’il correspond, marquez le contact comme Verified (un badge à côté du nom).
Blocage
Block annule le tampon que vous aviez donné à cette personne sur toutes vos boîtes aux lettres : les nœuds n’acceptent plus ses enveloppes. Elle n’en est pas avertie. Settings › Privacy › Blocked liste les personnes bloquées et permet de les débloquer.
Notifications
Settings › Notifications propose deux modes :
- Instant : vos boîtes aux lettres réveillent cet appareil avec une notification push vide, par le service push du navigateur. Ce service apprend quand réveiller l’appareil, jamais ce qui a été envoyé ni par qui. La notification indique « New message » ; le message est récupéré et déchiffré quand vous ouvrez l’app.
- Pure : aucune notification push. Vous voyez les nouveaux messages en ouvrant l’app.
Sur l’iPhone, les notifications nécessitent que l’app soit sur l’écran d’accueil (Safari › Partager › Sur l’écran d’accueil), puis Turn on notifications. L’app Android vérifie les messages tant qu’elle est ouverte. Quand l’app est ouverte, un bandeau affiche les nouveaux messages des autres conversations.
Appareils
Settings › Devices liste vos appareils. Pour en ajouter un, ouvrez Nós sur le nouvel appareil, choisissez Import account › Link to my phone, donnez-lui un nom, puis, sur votre téléphone, touchez Link a device et scannez le code qu’il affiche (ou ouvrez-y son lien). Le nouvel appareil reçoit vos contacts et vos groupes, ainsi que tous les messages à partir de ce moment ; les messages antérieurs restent là où ils étaient. La phrase de récupération reste sur l’appareil principal, qui est aussi celui qui retire des appareils.
Réseau

Un nœud garde des boîtes aux lettres : des enveloppes chiffrées, jusqu’à ce que le téléphone vienne les chercher (30 jours au maximum). Il ne peut ni les lire ni voir qui les a envoyées. Chaque personne a jusqu’à trois boîtes aux lettres sur des nœuds différents, indiquées dans sa carte ; un message part vers toutes, et le premier retrait l’efface.
- Your nodes affiche chaque nœud, s’il est connecté, et vos boîtes aux lettres qu’il héberge.
- Connection : Automatic utilise vos nœuds, et le nœud public quand vous n’en avez aucun ; Manual n’utilise que les nœuds que vous avez ajoutés.
- Add a node scanne ou colle le lien qu’affiche un nœud. Si le nœud n’a pas encore été adopté, Adopt this node le fait vôtre : il vous héberge, vous et vos contacts, avec des quotas plus larges (500 Mo de messages et 2 Go de médias par personne, 30 jours) au lieu des quotas publics (50 Mo et 200 Mo, 7 jours pour les médias).
- Si vous n’avez aucun nœud à vous, l’app utilise le nœud public de leonardoaguiar.com.
Faire tourner votre propre nœud
nos-node fonctionne sous macOS et Linux (arm64 et x86_64) :
curl -fsSL https://leonardoaguiar.com/apps/nos/install.sh | sh
nos-node run
nos-node address
nos-node address affiche un lien et un code QR ; ouvrez-le dans Settings › Network › Add node pour adopter le nœud. Derrière une box Internet, lancez-le avec --attach wss://leonardoaguiar.com/_/nos#f4eea0585b7f4cc4ecfab6a76082a724ee42c7b57d462377f6cf8344c785d00a : il garde une connexion ouverte avec le nœud public, qui lui relaie les apps sans voir autre chose que des octets chiffrés. Sur un serveur, placez-le derrière TLS (nginx ou Caddy) et indiquez son adresse publique avec --url wss://…. --public héberge aussi des inconnus (avec preuve de travail et petits quotas) ; --stun 0.0.0.0:3478 répond aux requêtes STUN pour les appels directs. Le nœud conserve sa clé, ses réglages et ses données dans ~/Library/Application Support/Nos Node (macOS) ou ~/.local/share/nos-node (Linux). Relancer la commande d’installation le met à jour.
Sauvegarde et récupération

- Phrase de récupération : Show recovery phrase (assurez-vous que personne ne regarde).
- Back up now et Back up every day envoient une sauvegarde chiffrée (contacts, groupes, conversations et clés de cet appareil ; pas les médias) dans vos boîtes aux lettres, chiffrée avec une clé tirée de votre phrase. Save backup file crée un fichier
.nosbakque vous conservez vous-même. - Import account › Recovery phrase retrouve votre carte sur les nœuds, ouvre vos boîtes aux lettres et rapatrie la dernière sauvegarde. Sans sauvegarde, votre identité, votre profil et vos boîtes aux lettres reviennent, mais les contacts et les conversations repartent à zéro : ajoutez de nouveau vos contacts avec votre carte.
- Import account › Backup file ouvre un fichier
.nosbakavec sa phrase.
Gardiens
Choose guardians répartit votre phrase entre 2 et 7 contacts, de sorte qu’un nombre d’entre eux, que vous choisissez, puisse la reconstituer ensemble ; en dessous de ce nombre, ils n’apprennent rien. Chaque part leur est envoyée chiffrée. Sur un nouveau téléphone, Import account › Ask my guardians affiche un code et un lien à leur envoyer ; chaque gardien l’ouvre dans Nós, vérifie que c’est bien vous et envoie sa part. Quand assez de parts sont arrivées, le compte revient. People you protect liste les personnes qui vous ont choisi.
Reset account efface cet appareil. Sans la phrase ni les gardiens, le compte ne peut pas revenir : personne d’autre ne l’a.
Réglages
| Page | Ce qu’elle contient |
|---|---|
| Profile | Photo, nom affiché, nom d’utilisateur, présentation, couleur d’accent, My card. Les modifications parviennent aussitôt à vos contacts. |
| Privacy | Présentations (Contacts ou Nobody), Discoverable by key, Contacts can share your card, Invite links, confirmations de lecture (Read receipts), indicateurs de saisie (Typing indicators), statut en ligne (Online status), messages éphémères des nouvelles conversations, Blocked. |
| Notifications | Instant ou Pure, Show sender and text (afficher l’expéditeur et le texte), Banners while open (bandeaux quand l’app est ouverte). |
| Chats | Thème (System, Light, Dark), taille du texte, Enter sends, Archive all chats (tout archiver), Clear all chats (tout vider). |
| Storage and data | Espace occupé sur cet appareil par les photos, les vidéos, les messages vocaux et les fichiers, Manage storage ; téléchargement automatique des photos, des vidéos et des fichiers (Always, Wi-Fi only, Never) et photos en haute qualité. |
| Devices | Vos appareils, Link a device, Remove. |
| Backup and recovery | Phrase, sauvegardes, gardiens, People you protect, Reset account. |
| Network | Connexion, vos nœuds, Add a node. |
| Advanced | Votre clé (en texte et en code QR), la clé de cet appareil, Publish my card again (republier ma carte), Send waiting messages now (envoyer maintenant les messages en attente). |
Il n’y a pas de « vu à » : aucun nœud ne le conserve. La saisie en cours et le statut en ligne sont de minuscules enveloppes qui expirent en quelques secondes, envoyées uniquement à vos contacts, et les deux peuvent être désactivés.
Protocole
- Identité : les douze mots (BIP39) dérivent la clé d’identité (Ed25519, dont la moitié publique est votre clé), la clé de carte, la clé de sauvegarde, la clé de tampon et les clés de chaque boîte aux lettres. Chaque appareil a son propre compte Olm.
- Carte : un enregistrement signé contenant vos appareils, vos boîtes aux lettres et votre profil, dont l’intérieur est chiffré avec la clé de carte, que seuls vos contacts possèdent. Les nœuds la stockent sous un nom dérivé de cette clé : un inconnu qui ne connaît que votre clé ne peut donc pas la trouver.
- Sessions : les messages entre deux personnes utilisent Olm (le Double Ratchet, issu de vodozemac de Matrix), amorcé avec des clés à usage unique déposées dans vos boîtes aux lettres ; les groupes utilisent Megolm, avec une chaîne d’envoi par membre.
- Enveloppes : scellées avec la clé de la boîte aux lettres (X25519 et XChaCha20-Poly1305) et complétées jusqu’à 1, 4, 16 ou 48 Ko. Le nœud voit le nom de la boîte aux lettres, le tampon, une durée de vie et le palier de taille ; rien sur l’expéditeur.
- Tampons : des jetons signés par le propriétaire de la boîte aux lettres pour chaque contact, qui désignent une clé de porteur devant signer chaque enveloppe, avec des limites quotidiennes. Bloquer quelqu’un révoque son tampon auprès du nœud. Les inconnus paient à la place par une preuve de travail.
- Canal vers les nœuds : Noise NK sur WebSocket, avec la clé du nœud connue à l’avance, si bien que ni un relais ni le terminateur TLS placé devant un nœud ne peuvent lire ni falsifier quoi que ce soit. Les nœuds situés derrière une box se rattachent à un relais avec Noise IK.
- Médias : chaque fichier est chiffré avec sa propre clé, découpé en morceaux de 48 Ko et adressé par l’empreinte de ces morceaux.
- Réveils : Web Push (RFC 8291 et 8292) avec une clé VAPID créée par l’app, si bien que n’importe laquelle de vos boîtes aux lettres peut réveiller votre téléphone sans clé push centrale.
Installation et mises à jour
- Android : l’APK de ce site. Android 7 ou version ultérieure. L’app demande une fois par jour à ce site quelle est la dernière version et affiche Nós x is available dans Settings ; le nouvel APK s’installe par-dessus l’ancien et conserve votre compte et vos conversations.
- iPhone et iPad : l’app web, depuis Safari. Ouvrez leonardoaguiar.com/apps/nos/app/, touchez Partager › Sur l’écran d’accueil et ouvrez Nós depuis l’écran d’accueil. iOS 16.4 ou version ultérieure. Elle se met à jour toute seule.
- N’importe quel navigateur : la même adresse fonctionne dans une version récente de Chrome, Safari, Edge ou Firefox, avec le compte conservé dans ce navigateur.
- Le nœud : voir Faire tourner votre propre nœud.
Confidentialité
Nós n’a ni serveur à elle ni compte. Ce qui quitte votre appareil :
- Les enveloppes, scellées, vers les boîtes aux lettres des nœuds : le nœud voit un nom de boîte aux lettres aléatoire, le palier de taille, l’heure et l’adresse Internet qui s’est connectée.
- Votre carte, sur vos nœuds, signée et chiffrée pour vos contacts.
- Les morceaux de médias, sur votre boîte aux lettres et sur celle du destinataire, chiffrés, jusqu’à leur téléchargement (7 jours sur les nœuds publics, 30 sur les vôtres).
- Les sauvegardes chiffrées, sur vos boîtes aux lettres, quand elles sont activées.
- Des notifications push de réveil vides, par le service web push d’Apple, de Google ou de Mozilla, quand les notifications Instant sont activées.
- Les appels, directement vers l’autre appareil ; le serveur STUN de Cloudflare (
stun.cloudflare.com) indique à chaque téléphone son adresse publique. - La vérification de version de l’app Android : une requête par jour vers ce site, qui n’envoie rien sur vous.
Il n’y a ni statistiques d’utilisation, ni envoi de vos contacts, ni annuaire, ni « vu à ».