site/hermes/index.html
Local Dev 3e87ab3f81 site audit: home, Ariadne page, Hermes downloads, releases/dl consolidation
Home: Prometheus and Hermes are live, not "designed"; new Ariadne and
Pithos cards; VPN, Bergamot and Mirrors linked; the page no longer claims
to run on nginx or to list "seven pieces".

/ariadne: new Silent Mode-headered page for the resolver family — Android
browser (APK, hash, signing key), standalone Windows resolver, how a lookup
resolves — linking out to the sovereign ariadne.x. "Ariadne" tab added to
every page's top nav; VPN and Bergamot navs normalised to the site-root
scheme while there.

Hermes: Download section (Windows installer + MSI, Android APK with hashes
from the manifest, web messenger), mobile and Windows marked live, hero
image path fixed; the brand-kit page's links were relative to a URL that
no longer has a trailing slash and the folder had never been deployed.

Releases/dl: the live dl manifest had been overwritten from a stale base
and was serving 0.3.106 to updaters while 0.3.110 was on the host; merged
(union) and reshipped. Manifest gains hermes-android/hermes-desktop; keep
policy aligned between the page (releases-page.mjs) and the VPS
(dl-vps-archive.sh, new, all products) so the page never links a build the
host no longer has. dl.silentmode.st/ now serves a generated index with
absolute links; dl-latest.sh tracked in-repo and extended with Hermes rows.
scripts/site-linkcheck.mjs resolves links the way the slash-less URLs do.
2026-10-24 03:35:20 +03:00

335 lines
18 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Hermes — messaging by on-chain name — Silent Mode</title>
<meta name="description" content="Hermes: end-to-end encrypted messaging where your on-chain registered name is your identity. Live in Theseus desktop and at hermes.x/messenger. NIP-17 sealed DMs over Nostr, no email, no phone number, no company account.">
<meta property="og:type" content="website">
<meta property="og:site_name" content="Silent Mode">
<meta property="og:title" content="Hermes — messaging by name — Silent Mode">
<meta property="og:description" content="Hermes: end-to-end encrypted messaging where your on-chain registered name is your identity. Live in Theseus desktop and at hermes.x/messenger. NIP-17 sealed DMs over Nostr, no email, no phone number, no company account.">
<meta property="og:url" content="https://silentmode.st/hermes">
<meta property="og:image" content="https://silentmode.st/brand/og.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:card" content="summary_large_image">
<link rel="stylesheet" href="shared.css?v=20260910">
<link rel="icon" type="image/svg+xml" href="favicon.svg">
</head>
<body>
<nav class="topnav">
<a class="brand" href="./"><svg class="logo" viewBox="0 0 32 20" aria-hidden="true"><rect class="l1" x="1.5" y="3.5" width="17" height="13" rx="6.5" ry="6.5" fill="none" stroke-width="2.6"/><rect class="l2" x="13.5" y="3.5" width="17" height="13" rx="6.5" ry="6.5" fill="none" stroke-width="2.6"/></svg>Silent <span class="g">Mode</span></a>
<a href="theseus">Theseus</a>
<a href="ariadne">Ariadne</a>
<a href="prometheus">Prometheus</a>
<a href="sirius">Sirius</a>
<a href="hephaestus">Hephaestus</a>
<a href="helios">Helios</a>
<a href="hermes" class="here">Hermes</a>
<a href="tools">Tools</a>
</nav>
<header class="hero">
<div class="mark" style="line-height:0; display:inline-flex">
<img src="hermes/branding/mark.webp" alt="Hermes" width="120" height="120" style="display:block">
</div>
<h1>Hermes <span class="pill p-shipped" style="vertical-align:middle;font-size:12px;margin-left:.6rem;background:rgba(79,209,165,.12);color:#4fd1a5;padding:2px 10px;border-radius:999px">live · desktop, web, Android</span></h1>
<p class="tag">End-to-end encrypted DMs over Nostr, addressed by your
on-chain registered name instead of a public-key string. Same wallet
is your identity — no email, no phone number, no company, no server that can delete
your account.</p>
<p class="tag" style="font-size:.95rem;margin-top:.8rem">
Lives inside <a href="theseus"><b>Theseus</b></a> (Hermes icon in the left sidebar, or <kbd style="background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:4px;padding:1px 6px;font-family:ui-monospace,monospace;font-size:12px">Ctrl</kbd>+<kbd style="background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:4px;padding:1px 6px;font-family:ui-monospace,monospace;font-size:12px">Shift</kbd>+<kbd style="background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:4px;padding:1px 6px;font-family:ui-monospace,monospace;font-size:12px">E</kbd>
E as in <i>Ermis</i>) and in any browser at <a href="https://navigate.st/bns/hermes.x/messenger/"><b>hermes.x/messenger</b></a>. Brand kit at
<a href="hermes/branding"><code class="inline">/hermes/branding</code></a>.
</p>
<p style="margin:1.4rem 0 0;color:var(--dim);font-size:13px">
<b style="color:var(--mut)">Hermes.X</b> is the messenger's sovereign site, served from its own on-chain name.
Mirror: <a href="/hermes-x/">silentmode.st/hermes-x/</a> ·
gateway: <a href="https://navigate.st/bns/hermes.x/">navigate.st/bns/hermes.x/</a> ·
native with a resolver: <a href="https://hermes.x/"><code class="inline">https://hermes.x/</code></a>
</p>
</header>
<div class="wrap narrow">
<!-- ============ WHAT SHIPS TODAY ============ -->
<section class="plain">
<h2>What ships today</h2>
<p class="lede">Hermes is live inside the Theseus desktop browser and as a web messenger at
<a href="https://navigate.st/bns/hermes.x/messenger/">hermes.x/messenger</a>. Core messaging,
sign-in, profiles and the address book work end to end. Mobile and Tor transport follow.</p>
<div class="grid">
<div class="card">
<span class="pill p-live">live</span>
<h3>Threaded chat</h3>
<p>Contact list on the left with search and unread badges, the selected conversation on the
right with bubbles and inline reply. Enter to send, Shift-Enter for a new line.</p>
</div>
<div class="card">
<span class="pill p-live">live</span>
<h3>Send and receive by name</h3>
<p>Type <code class="inline">alice.x</code>. The client resolves the name on-chain, wraps the
message NIP-17 to the recipient's Nostr key and publishes to their declared relays.
Sealed-sender: the relay never sees who sent what to whom.</p>
</div>
<div class="card">
<span class="pill p-live">live</span>
<h3>Three ways to sign in</h3>
<p>Open with <b>Theseus ID</b> (the browser's own identity), a <b>name and password</b>,
or a <b>seed phrase</b> (12 or 24 words, or an nsec). You stay signed in on the device;
a new device needs the seed phrase.</p>
</div>
<div class="card">
<span class="pill p-live">live</span>
<h3>Handles the way you like them</h3>
<p>One identity, three spellings: <code class="inline">hermes:alice</code>,
<code class="inline">alice.x</code>, or the email form. Paste any of them; pick which
one the client shows in Settings.</p>
</div>
<div class="card">
<span class="pill p-live">live</span>
<h3>Profiles</h3>
<p>Display name, picture and a short bio as a standard Nostr profile, so other clients see
them too. Non-unique and display-only; the name is the identity.</p>
</div>
<div class="card">
<span class="pill p-live">live</span>
<h3>Address book and vCard import</h3>
<p>Named contacts stored locally, with optional vCard import from an existing address book.
You preview who gets added; nothing is uploaded.</p>
</div>
<div class="card">
<span class="pill p-live">live · opt-in</span>
<h3>Phone discovery</h3>
<p>Link a phone number and let contacts who know it find you. Off unless you turn it on;
lookups work the other way too, by number.</p>
</div>
<div class="card">
<span class="pill p-live">live</span>
<h3>History on your device</h3>
<p>Messages persist to disk per identity. Close and reopen the panel and your threads are
still there, unread marks included. Seed backup lives behind your password.</p>
</div>
<div class="card">
<span class="pill p-live">live</span>
<h3>Hermes for Windows</h3>
<p>The messenger as a stand-alone desktop app, installer or MSI, for machines without
Theseus. Byte-equal with the Theseus panel; sign in with the same recovery phrase.</p>
</div>
<div class="card">
<span class="pill p-alpha">preview</span>
<h3>Web messenger</h3>
<p>The same panel wrapped as a stand-alone web app at hermes.x/messenger, for anyone without
the desktop browser. Same crypto, same identity, signs in with an nsec or a mnemonic.</p>
</div>
<div class="card">
<span class="pill p-live">live</span>
<h3>Hermes for Android</h3>
<p>A native app (Kotlin, Jetpack Compose) with the same identity and wire format as the
desktop and web clients: one inbox on every surface. Background delivery, in-app
auto-update verified against the release manifest, find people by phone number.</p>
</div>
<div class="card">
<span class="pill p-upcoming">planned</span>
<h3>Tor transport</h3>
<p>Relay traffic over the Tor client Theseus already runs, so even your connection IP leaves
the relay. The UI will say when it is on.</p>
</div>
</div>
</section>
<!-- ============ DOWNLOAD ============ -->
<section id="download">
<h2>Download</h2>
<p class="lede">Alpha software on a test network. Check the SHA-256 before you install; that check
is the real one. Every hash and every older build is on the <a href="releases">releases page</a>.</p>
<div class="grid">
<div class="card">
<span class="pill p-live">Android 8.0+</span>
<h3>Hermes for Android <span style="color:var(--acid)">0.3.0</span></h3>
<p style="margin-bottom:.7rem">Self-signed release key, in-app auto-update.</p>
<p><a class="btn acid" href="https://dl.silentmode.st/latest/hermes.apk">Download APK</a></p>
<p style="margin-top:.8rem;font-size:11.5px;color:var(--dim)">SHA-256 <code class="inline" style="word-break:break-all">77d16184ba2c26fb81b79d9e4c5f98f8bfb434690c1e6acd9b7fd5f16651a6cb</code></p>
<p style="margin-top:.4rem;font-size:11.5px;color:var(--dim)">Signing key <code class="inline" style="word-break:break-all">b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7</code></p>
</div>
<div class="card">
<span class="pill p-live">Windows 64-bit</span>
<h3>Hermes for Windows <span style="color:var(--acid)">0.1.0</span></h3>
<p style="margin-bottom:.7rem">Unsigned build; Windows will warn about an unrecognized app.</p>
<p><a class="btn acid" href="https://dl.silentmode.st/latest/Hermes-Setup.exe">Installer</a>
<a class="btn ghost" href="https://dl.silentmode.st/latest/Hermes.msi">MSI</a></p>
<p style="margin-top:.5rem;font-size:11.5px;color:var(--dim)">Hermes-0.1.0-setup.exe <code class="inline" style="word-break:break-all">0adc742d54daaee2b62e7fdcbff2f0203bd50f995444487ff93233ccc6328552</code></p>
<p style="margin-top:.5rem;font-size:11.5px;color:var(--dim)">Hermes-0.1.0.msi <code class="inline" style="word-break:break-all">fa81948bba8c3d6e9306a5aa218424fd2a4bc692891f3d2543c2782207f86b3f</code></p>
</div>
<div class="card">
<span class="pill p-live">no install</span>
<h3>In Theseus, or in any browser</h3>
<p>Theseus ships Hermes as a bundled add-on: open the Hermes icon in the left sidebar or
press Ctrl+Shift+E. Without Theseus, the web messenger at
<a href="https://navigate.st/bns/hermes.x/messenger/">hermes.x/messenger</a> runs in
any browser; sign in with a recovery phrase.</p>
</div>
</div>
</section>
<!-- ============ THE IDEA ============ -->
<section class="plain">
<h2>The one idea that makes this different</h2>
<p class="lede">Every existing Nostr client has the same wart: identity is
<code class="inline">npub1q8s7f3k…</code> gibberish. The human-name fix, NIP-05, resolves
<code class="inline">alice@example.com</code> through a DNS domain and a web server. That is
exactly the ICANN-plus-server chain Silent Mode exists to escape: decentralized messaging
bolted onto centralized identity.</p>
<div class="note"><b>The Hermes pitch.</b><br>
<code class="inline">alice.x</code> publishes her Nostr pubkey as an on-chain record. Her name
certificate is her verified, seizure-resistant identity. Message anyone by their on-chain
registered name, with no phone number, no email, no ICANN, no company, and no server that can
delete your account.</div>
</section>
<!-- ============ HOW IT WORKS ============ -->
<section>
<h2>How it works</h2>
<ol class="steps">
<li><b>Your name owns your key.</b>
<span>Register any name on the chain, or reuse one you already own, and publish your Nostr
pubkey to it as an <code class="inline">np</code> record. The key is derived from the same
wallet seed as the name, so one seed backs both.</span></li>
<li><b>Find people by name.</b>
<span>Type <code class="inline">bob.x</code>. The client resolves it against the chain,
pulls <code class="inline">np</code> (Nostr pubkey) and <code class="inline">nr</code>
(preferred relays). No directory server involved.</span></li>
<li><b>Send the message sealed.</b>
<span>NIP-17 gift-wrapped DMs: the relay sees neither sender nor content, only that a wrap
addressed to some pubkey exists. Route over Tor to also hide your IP.</span></li>
<li><b>The name shows, not the pubkey.</b>
<span>Incoming messages reverse-resolve pubkey to name where possible, so your chat list
looks like a normal chat list rather than a wall of hex.</span></li>
</ol>
</section>
<!-- ============ NAMES ============ -->
<section>
<h2>Getting a name</h2>
<p class="lede">Today a Hermes identity is any on-chain registered name, such as one under
<code class="inline">.x</code> from <a href="sirius">Sirius</a>. Two more paths are designed
and wait for the mainnet launch, when the Hermes top-level domains get minted.</p>
<div class="grid">
<div class="card">
<span class="pill p-live">today</span>
<h3>Your own on-chain name</h3>
<p>Register <code class="inline">alice.x</code> at Sirius, publish the Nostr pubkey to it,
sign in to Hermes with the same seed. One transaction, yours for good.</p>
</div>
<div class="card">
<span class="pill p-designed">designed</span>
<h3>Free sub-identity</h3>
<p>A name under the Hermes parent, issued through its signed-records manifest on Sia with
no chain fee, for people who have no Bitcoin Cash on hand. Promote it to a sovereign name
later from Settings in one transaction; the chain wins once both exist.</p>
</div>
<div class="card">
<span class="pill p-designed">designed</span>
<h3>Hermes TLDs</h3>
<p>A short Hermes TLD for the dotted form and a second one for the email form, both minted on
mainnet rather than the test network. The client already parses all three spellings, so
the switch is a configuration change.</p>
</div>
</div>
</section>
<!-- ============ WHERE IT LIVES ============ -->
<section>
<h2>Where it lives</h2>
<div class="grid">
<div class="card">
<span class="pill p-live">live</span>
<h3>In Theseus desktop</h3>
<p>A Messages panel in the left sidebar of the browser you already have. Reuses the
built-in wallet's seed as the messaging identity.</p>
</div>
<div class="card">
<span class="pill p-alpha">preview</span>
<h3>In any browser</h3>
<p>hermes.x/messenger, served from the name itself over Sia. Sign in with a seed phrase;
history stays in that browser's storage.</p>
</div>
<div class="card">
<span class="pill p-live">live</span>
<h3>On Android and Windows</h3>
<p>Native apps with the same seed and the same identity, so you can message from any
device. Ariadne for Android also opens hermes.x from its menu.</p>
</div>
</div>
</section>
<!-- ============ HISTORY ============ -->
<section>
<h2>Where your history lives</h2>
<p class="lede">Three modes, one toggle. The default assumes no cloud at all; every later option
is opt-in, and none of them let anyone but you read your messages.</p>
<div class="grid">
<div class="card">
<span class="pill p-live">default</span>
<h3>Local only</h3>
<p>The client keeps your message history on the device. Nothing else knows it exists. The
same seed on two devices gives two-device redundancy; lose both and history is gone.
Signal's model, on purpose.</p>
</div>
<div class="card">
<span class="pill p-designed">designed</span>
<h3>Silent Mode cloud backup</h3>
<p>Toggle on and the client encrypts your history with a key derived from your wallet seed,
then backs it up to the Sia network. Only you can read it. Text only, no media.</p>
</div>
<div class="card">
<span class="pill p-designed">designed</span>
<h3>Your own Sia account</h3>
<p>Prefer to own the storage? Hermes sets up your own Sia account and routes backups there
instead. Same encryption, and media backup becomes possible.</p>
</div>
</div>
</section>
<!-- ============ BOUNDARIES ============ -->
<section>
<h2>Honest boundaries</h2>
<div class="grid">
<div class="card">
<h3>Messaging, not email</h3>
<p>No Gmail interop, by design. A separate anonymous-mailbox product covers signing up on
services without leaking a real address.</p>
</div>
<div class="card">
<h3>Metadata resistance is good, not perfect</h3>
<p>NIP-17 hides sender and content from relays. Relays still see the recipient pubkey, timing,
and your connection IP until Tor transport lands.</p>
</div>
<div class="card">
<h3>Relays are Nostr's soft spot</h3>
<p>A message lives only while some relay keeps it. Silent Mode runs one relay and writes to a
few public relays for reach and redundancy.</p>
</div>
</div>
</section>
<div class="note"><b>Design documents.</b> The protocol design is in
<a href="https://code.silentmode.st/silentmode/silentmode/src/branch/master/Hermes/DESIGN-hermes.md">Hermes/DESIGN-hermes.md</a>,
the Android plan in <code class="inline">DESIGN-mobile-hermes.md</code>, and the free
sub-identity scheme in <code class="inline">DESIGN-sub-identity-manifest.md</code>, all in the
same folder. The desktop client ships as a bundled Theseus add-on and updates on its own channel,
independent of browser releases.</div>
</div>
<footer>
<div>Silent Mode — a Deviant project.</div>
<div class="fine">Named for the messenger of the gods; Ermis in modern Greek. Alpha software on
a test network. Nothing here is a service, product guarantee, or investment.</div>
</footer>
</body>
</html>