you@mercury:~$
[ ok ] keys ............ sealed in os keychain — never exported
[ ok ] relay ........... opaque ciphertext only — no decrypt path
[ ok ] phone number .... not required. not wanted.

Don't trust.
Verify.

Mercury is an end-to-end encrypted messenger. Your keys are generated on your machine and never leave it. The relay shovels encrypted bytes it cannot read. Every artifact ships with a SHA-256 so you can check us — which beats believing us.

v0.1.43 · windows: authenticode-signed · windows.sha256 · linux: unsigned, verify · linux.sha256

NO PHONE NUMBER ★ NO KEY ESCROW ★ NO PLAINTEXT ON THE SERVER ★ NO HIDDEN AI ★ VERIFY EVERYTHING ★  NO PHONE NUMBER ★ NO KEY ESCROW ★ NO PLAINTEXT ON THE SERVER ★ NO HIDDEN AI ★ VERIFY EVERYTHING ★ 

cat WHY.md

privacy as a property of the construction — not a paragraph in a policy.

The server cannot read your messages. Not "will not." Cannot.

[01] KEYS

Keys stay home

Identity and message keys are sealed in your OS keychain. Never uploaded, never escrowed, never rendered in the clear — there is nothing server-side to leak.

[02] RELAY

The relay is a blind pipe

Ciphertext in, ciphertext out, zero key material. Don't like ours? Self-host the relay with one Docker command and point Mercury at it.

[03] IDENTITY

You are not a phone number

Identity is a cryptographic account id, shared by pairing code, username, or invite link — and confirmed human-to-human with safety numbers.

[04] CRYPTO

Real crypto, no improv

MLS (RFC 9420) group messaging over verified 1:1 channels; post-quantum hybrid 1:1 sessions; audited libraries for the primitives. Read the security model →

[05] AI

AI can't lurk

An AI may only ever join as a visible, invited, end-to-end encrypted guest with scoped permissions. Block it and it's gone. No hidden plaintext path — ever.

[06] PROOF

Claims you can check

Signed Windows installer, published SHA-256 for every artifact, and updates that always ask before installing. Verification over vibes.

ls release/v0.1.43

two artifacts, two checksums. verify before you run — it takes ten seconds. recent additions: mls group chat, read receipts (with a privacy toggle), pinned conversations, message search, encrypted attachments to 4 MiB.

Mercury-Setup-Windows-x64.exe win 10/11 · authenticode-signed + timestamped · prompted auto-update · sha256
get ↓
Mercury-Linux-amd64.deb debian/ubuntu · unsigned — verify the checksum · manual update · sha256
get ↓
// verify before you run
# the moment of truth:
$ 
Mercury-Linux-amd64.deb: OK
# windows: Get-FileHash, then check the Authenticode signature in Properties. details: /security

mercury --status --no-marketing

early software, built for small circles first. a security tool that overstates itself isn't one — so here is exactly where mercury stands.

[ OK ]

windows 10/11 + linux (.deb) shipping. windows signed + timestamped; in-app update prompts — never silent. linux updates by re-download; an appimage ships once a large-file host is set up.

[ OK ]

e2e by default. pq-hybrid 1:1 sessions, mls (rfc 9420) groups, encrypted local store, encrypted attachments to 4 MiB.

[ OK ]

connect without a phone number. pairing codes, usernames, invite links, or a raw account id — then confirm with safety numbers.

[WARN]

delivery requires a running process — window open or minimized to tray ("start at login" recommended). fully quit, messages queue encrypted at the relay until next launch. no OS push yet.

[WARN]

macos + mobile: not yet. macos awaits an apple signing certificate; ios/android are on the roadmap.

[WARN]

no third-party audit yet — so the word "audited" does not appear on this site. security decisions are mirrored into a deterministic validator layer (helix, open source) and cross-checked in ci.

man mercury-quickstart

three steps to a conversation nobody else can read.

[1]

install

Run the signed Windows installer or the Linux .deb. Keys generate locally and seal into your keychain.

[2]

connect

Share a pairing code, username, invite link, or account id. No address book upload. No discovery profiling.

[3]

verify

Compare safety numbers over a channel you already trust. A match rules out a man-in-the-middle — mathematically.