Mirage

Messages that
don't look like
messages.

A peer-to-peer messenger with end-to-end encryption. Messages and calls travel directly between devices, and the traffic itself is shaped so that from the outside it doesn't stand out from ordinary video.

Closed alpha

The client

Desktop · alpha
A Alice Warrenonline · direct tunnel · fra-1 · 34 ms
Message…
Mobile · planned
9:415G ▮
A Alice Warrenonline · direct tunnel
E2E · Ed25519 · ChaCha20-Poly1305 Are you on the phone now? Same keys, same tunnel. No relay in between? None that can read it.
Message…
Built from the Mirage design system, rendered live in the page rather than pasted in as a picture — pick a conversation on the left of the desktop window. The desktop client exists and is in closed alpha; its shipping build has a Russian interface, with English localization in progress. The phone shows where the mesh is heading: mobile devices receive sealed envelopes through desktop anchor nodes. That client is designed, not released.

What an observer sees

QUIC · UDP/443 · TLS 1.3

Packets of varying length, a steady stream. Looks like watching video.

inside

What is actually happening

keys stay on the devices
message voice video key exchange peer discovery

Signalling rides the same tunnel. There is no second channel to watch.

What it gives you

No server in the middle

Devices connect directly. The infrastructure only helps them find each other — it cannot read a conversation or reconstruct who talks to whom.

Keys never leave the device

Ed25519 for signatures, X25519 for key agreement, ChaCha20-Poly1305 and AES-GCM for content. Private keys are never transmitted anywhere.

Works when the other side is offline

An encrypted envelope waits for the recipient and is delivered once they come back online. The server holds it without being able to open it.

How it is built

Three independent modules. All cryptography and networking live in the C++ core; the interface only talks to it.

Core

C++20

A five-layer engine: encryption, QUIC transport, mesh routing. Runs entirely in memory and never writes to disk.

Relay

Go

Helps devices behind NAT find each other and queues messages for offline recipients. Keeps no state about users.

Client

Electron

Desktop application: chats, calls, history. Owns on-device storage — the core does none of it.

How the protocol works in detail → — the threat model, what the relay can and cannot see, and how the engine can be licensed into another product.

Where it stands

Text, voice and video between devices working
Offline message delivery working
Desktop build closed alpha
Group chats over MLS (RFC 9420) in progress
Mobile client planned
External security audit none yet

The source code is proprietary. Alpha builds are distributed under a separate agreement; third-party components and their licences are documented.

Get in touch

Happy to walk through a build and answer technical questions.

Email hello@miragetalk.com