leonardoaguiar.com Nós

Nós

Nós is a messenger without servers, for Android and iPhone. Chats, groups, photos, voice messages, files and calls are end-to-end encrypted and travel through mailboxes on nodes that anyone can run, including your own computer. There is no phone number, no account and no company in the middle. "Nós" means "us" and "nodes" in Portuguese: the people, and the network they make.

The Chats tab

Getting started

The first screen offers Create account, Import account and Explore without account.

The tabs at the bottom are Chats, Calls, Contacts and Settings.

Adding people

Nobody can look you up by phone number or by name. People reach you with your card, which you choose who to give.

Requests

People who found you by key, or were introduced, appear in Requests (a banner on Chats and Contacts). They can't write to you until you Accept. Ignore forgets them; Block also stops them at your mailboxes.

Chats

The list shows each chat with the last message, its time, delivery ticks, typing, drafts and the unread count. All, Unread, Groups and Archive filter it; the search field filters by name and text. Hold a chat (or right-click) to Pin, Mute, Mark as read, Archive or Delete chat. + opens Add a contact, Message a contact, New group and Notes to self (synced with your other devices).

A conversation

Messages

Delivery states

MarkMeans
ClockWaiting on this phone (no connection, or no mailbox answered). It goes out by itself.
One checkIn a mailbox of the other person. It waits there until their phone picks it up.
Two checksTheir device received and decrypted it.
Two blue checksThey read it (if both have read receipts on).
WarningNot delivered (blocked, or no way to reach them). Info › Send again retries.

Info on a message tells when it was written, sent to the mailbox, delivered and read; in groups, who received and read it.

Disappearing messages

In a chat's details, Disappearing messages (1 hour, 24 hours, 7 days, 90 days or Off) makes new messages disappear from both phones after that time. Privacy › Disappearing messages sets the timer for new chats.

Groups

New group takes a name, an optional picture and the contacts to add (up to 64 members). No server keeps the group: every member keeps the list of members, signed by the admins, and each message is encrypted once with its sender's key and posted to every member's mailboxes.

A group

Calls

The phone and camera buttons on a contact's chat start a voice or video call. Calls go straight between the two devices (WebRTC), encrypted; the signalling travels as small envelopes that expire in a minute. During a call: Mute, Camera (turn video on or off), Flip and End. An incoming call shows Accept and Decline.

There is no relay for calls: when the two networks don't allow a direct path, the call can't connect, and the app says "Couldn't connect directly". The Calls tab lists your calls; tap the phone to call back.

Contacts

The list shows your contacts with their username, Online (when they share it), and your groups. A contact's details have Message, Call, Video, Verify safety number, Nickname (only you see it), media, disappearing messages, Mute, Introduce to someone, their Devices, Block, Clear chat and Remove contact.

Safety numbers

Each pair of contacts shares a 60-digit safety number. Compare it in person or on a call, or scan the code on their phone with Scan their code: if it matches, mark them Verified (a badge next to the name).

Blocking

Block cancels the stamp you gave that person on all your mailboxes: the nodes stop taking their envelopes. They aren't told. Settings › Privacy › Blocked lists and unblocks.

Notifications

Settings › Notifications has two modes:

On the iPhone, notifications need the app on the Home Screen (Safari › Share › Add to Home Screen), then Turn on notifications. The Android app checks for messages while it is open. While the app is open, a banner shows new messages from other chats.

Devices

Settings › Devices lists your devices. To add one, open Nós on the new device, choose Import account › Link to my phone, name it, and on your phone tap Link a device and scan the code it shows (or open its link there). The new device gets your contacts and groups and receives every message from then on; earlier messages stay where they were. The recovery phrase stays on the main device, which also removes devices.

Network

Network

A node keeps mailboxes: encrypted envelopes, until the phone picks them up (30 days at most). It can't read them or see who sent them. Each person has up to three mailboxes on different nodes, listed in their card; a message goes to all of them and the first pickup clears it.

Run your own node

nos-node runs on macOS and Linux (arm64 and x86_64):

curl -fsSL https://leonardoaguiar.com/apps/nos/install.sh | sh
nos-node run
nos-node address

nos-node address prints a link and a QR code; open it in Settings › Network › Add node to adopt the node. Behind a home router, run it with --attach wss://leonardoaguiar.com/_/nos#f4eea0585b7f4cc4ecfab6a76082a724ee42c7b57d462377f6cf8344c785d00a: it keeps one connection to the public node, which relays apps to it without seeing anything but encrypted bytes. On a server, put it behind TLS (nginx or Caddy) and pass its public address with --url wss://…. --public also hosts strangers (with proof of work and small quotas); --stun 0.0.0.0:3478 answers STUN for direct calls. The node keeps its key, settings and data in ~/Library/Application Support/Nos Node (macOS) or ~/.local/share/nos-node (Linux). Running the install command again updates it.

Backup and recovery

Backup and recovery

Guardians

Choose guardians splits your phrase among 2 to 7 contacts, so that a number you choose of them together can bring it back; fewer reveal nothing. Each part goes to them encrypted. On a new phone, Import account › Ask my guardians shows a code and a link to send them; each guardian opens it in Nós, checks it is really you, and sends their part. When enough parts arrive, the account comes back. People you protect lists those who chose you.

Reset account erases this device. Without the phrase or guardians, the account can't come back: nobody else has it.

Settings

PageWhat it has
ProfilePicture, display name, username, about, accent color, My card. Changes reach your contacts right away.
PrivacyIntroductions (Contacts or Nobody), Discoverable by key, Contacts can share your card, Invite links, Read receipts, Typing indicators, Online status, Disappearing messages for new chats, Blocked.
NotificationsInstant or Pure, Show sender and text, Banners while open.
ChatsTheme (System, Light, Dark), Text size, Enter sends, Archive all chats, Clear all chats.
Storage and dataSpace used by photos, videos, voice messages and files on this device, Manage storage; auto-download of photos, videos and files (Always, Wi-Fi only, Never) and high-quality photos.
DevicesYour devices, Link a device, Remove.
Backup and recoveryPhrase, backups, guardians, People you protect, Reset account.
NetworkConnection, your nodes, Add a node.
AdvancedYour key (as text and QR code), this device's key, Publish my card again, Send waiting messages now.

There is no "last seen": no node keeps it. Typing and online status are tiny envelopes that expire in seconds, sent only to your contacts, and both can be turned off.

Protocol

Install and updates

Privacy

Nós has no server of its own and no account. What leaves your device:

There are no usage statistics, no contact upload, no directory and no "last seen".

Acknowledgements