★ private beta · invite-only★ keyboard-first★ local-first★ no trackers · ever★ vim & emacs keymaps★ built by people who hate email★ plain-text rendering by default★ gmail · fastmail · imap★ 0.0 MB in marketing pixels★ private beta · invite-only★ keyboard-first★ local-first★ no trackers · ever★ vim & emacs keymaps★ built by people who hate email★ plain-text rendering by default★ gmail · fastmail · imap★ 0.0 MB in marketing pixels
// 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
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 · 312you · —in queue · 12,847
// skip the line
mono.mail/r/________
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.
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.