mono.mail v0.9.0-beta / private
build · passing → join waitlist
// fileREADME.md
// status● coming soon
// etaQ3 · 2026
// platformsmacOS · Linux · Win

monomail_

The inbox command line for your email. An opinionated, keyboard-first, local-first client built for people who live in their terminal and want the rest of their life to feel the same.

// positioning Zed for email. Neovim for your inbox. Brutalist on purpose. No AI summaries you didn't ask for. No read receipts. No spring-loaded animations begging for your attention. Just mail, the way it was supposed to be — fast, tactile, and yours.

/01the waiting list

invite-only · ships in waves
~/mono.mail/join.sh
$whoami
>not yet a user.   drop your email to change that.
$./join --early-access --honest
@
// what do you use today?

We send two emails, max: one to confirm, one when your wave opens. No drip campaigns. No "we miss you." No analytics pixels (we literally haven't written the code).

// on the list
12,847
// your position
—
submit to get in line
// queue · wave 1 opens Q2 · 2026
shipped · 312 you · — in queue · 12,847
// skip the line
Every 3 referrals moves you up one wave. Top 100 get a lifetime license, a manpage printed on risograph, and a t-shirt.

/02nine things we believe

opinions · not preferences
01 / keyboard

The mouse is a productivity tool a tax.

Every action must have a keybind. The ones you'll use are two keystrokes or fewer. Vim, Emacs, Helix, or a custom map — pick your religion.

jknext / prev · rreply · earchive
02 / plain text

HTML email is a feature disease.

We render plain text by default. Images are blocked. Remote pixels are stripped. You'll see the actual message someone wrote, not the tracking beacon wrapped around it.

⇧Hrender html · opt-in
03 / local-first

Your inbox lives on a server your disk.

Every message indexed, offline-searchable, SQLite-queryable. Sync is a background job, not the critical path. Works in airplane mode.

/search — <50ms on 400k messages
04 / no ai slop

We will write emails for you stop.

No summaries you didn't ask for. No auto-reply suggestions. No "unread, but important" rankings. You are not the output of a language model; neither are your friends.

⌘/ask an llm · explicitly · bring-your-own-key
05 / tabular

The inbox is a stream table.

Columns, sortable, filterable, pipeable. Everything is a thread, threads live in folders, folders live in accounts. No nested-reply UIs. No "smart" views that move your mail behind your back.

⌘Kcommand palette
06 / no dark patterns

No unsubscribe friction. Ever.

One keystroke unsubscribes via RFC 8058. No "are you sure?" No "we'll miss you." No 12-step form. One. Keystroke. We also auto-detect and nuke tracking pixels on open.

⇧Uunsub + move to trash
07 / composable

Rules are a GUI code.

Filter rules are tiny JS functions. Test them on any folder. Version them in git. Share them as gists. Your inbox becomes a programmable surface, not a wizard.

rules.js · scheme or lua coming
08 / quiet

Your inbox is not real-time.

No desktop notifications. No unread badges in your dock. No red dots. We fetch on your schedule. Inbox Zero is a state you choose; not a treadmill you're strapped to.

⌘⇧Ffetch now · otherwise: silent
09 / yours

Self-host, or we don't ship.

Open-core. Licensed per-seat, not per-feature. Runs on your laptop, your homelab, or our cloud — same binary. If we ever get acquired, the core stays open. Written down. Notarized.

source · available Q3 · 2026

/03commands, not features

sample · not exhaustive
m inbox --unread
Triage inbox
Open today's unreads in a single pane. Reply, archive, or snooze without leaving the keyboard. Mutation is atomic; sync is eventual.
gi
m grep "contract"
Ripgrep your inbox
Full-text search across every account, attachment body included. Sub-50ms on 400k messages. Regex, fuzzy, or exact — no SaaS relay.
/
m send < draft.md
Compose in Markdown
Write in your editor of choice. Pipe to mono.mail. Rendered as HTML + plaintext multipart. Attachments by path. Done.
c
m snooze +2d
Snooze with honesty
Hides the thread. Doesn't ping you at 8:47am with a forced re-surfacing. Returns exactly when you said. No "morning / afternoon" fuzz.
z
m rule --test
Filters as code
JS functions, version-controlled, dry-runnable on any folder. See exactly which 2,300 newsletters would be touched before you touch them.
.r
m unsub
One-keystroke unsubscribe
RFC 8058 one-click, falls back to headers, falls back to parsed unsubscribe link. Pixels stripped on open, senders scored, junk auto-routed.
⇧U
m export mbox
Leave whenever you want
Every byte is yours. Export to mbox, maildir, or a raw SQLite file. We don't hostage your archive.
:wq

/04what it looks like

live · click around
~/work/mono.mail/app — inbox · 42 threads · synced 2s ago v0.9.0-beta

/05how we compare

honest · not flattering
//
gmail web
superhuman
mono.mail
Keyboard-first
◐ partial · bolted-on
● yes · proprietary
● yes · vim / emacs / custom
Works offline
◐ read only, janky
○ no
● full · local sqlite
Blocks tracking pixels
○ proxied, still leaks
◐ opt-in
● on by default · stripped
Unprompted AI
● everywhere
● yes
● never · opt-in, BYOK
Price / month
"free" (you are the product)
$30
$8 · or self-host · free
Source-available
○ no
○ no
● core · MIT

/06frequently asked

actual questions · from actual beta users
When does it ship?
Private beta is ongoing — wave 01 opened in February 2026 with ~300 seats. Wave 02 opens Q2, wave 03 mid-summer. General availability: Q3 · 2026. Join the list and we'll send exactly one email when your wave is next.
Which accounts does it support?
At launch: Gmail / Google Workspace, Fastmail, and any server that speaks IMAP + SMTP (Proton Bridge, Migadu, self-hosted Dovecot, iCloud, etc.). Exchange / Outlook 365 lands in the second post-GA minor. JMAP is a first-class citizen.
Is there a mobile app?
Not at launch, and not soon. Building a great keyboard-first desktop client is a three-year problem; building a great mobile client is a different three-year problem. We'd rather do one well. A read-only companion for iOS / Android ships after desktop hits 1.0.
Do you store my mail?
No. mono.mail is a client — it talks directly from your device to your provider. We see nothing. We have no servers that could hold your email even if we wanted to. Optional encrypted device-to-device sync is opt-in and uses your keys; we hold ciphertext only.
Why "brutalist"?
Because the honest thing to do with a tool you spend 4 hours a day in is to make it behave like a tool, not an advertisement. Dense type, visible structure, no decorative motion, no beg-buttons. The visual language is the philosophy.
What about encryption, PGP, S/MIME?
PGP via gpg-agent at launch, with inline & MIME support. S/MIME in the first minor after GA. Keybase-style identity is not on the roadmap — we think the PGP workflow, while old, is the right one.
Who's building this?
Four people who've spent a cumulative 40+ years shipping devtools — two ex-Chromium, one from Tailscale, one from the Rust compiler team. Funded by revenue and a single seed check from a fund we chose because they don't require growth at any cost. No growth team. No marketing team. No plans for either.