by floatpane · local-first · secure · no telemetry
Email for people who
live in the terminal.
Matcha is a keyboard-native email client built for the shell.
Multi-account IMAP, PGP encryption, markdown composing, and a CLI
that pipes. One static binary. No cloud. No trackers.
);
}
const FEATURES = [
{
k: "01",
title: "Keyboard-native",
body: "Read, reply, delete, archive — all from the keyboard. Navigate messages, switch accounts, and jump between folders without touching the mouse.",
mono: "j k r d a ↵ esc",
},
{
k: "02",
title: "Visual mode batch ops",
body: "Enter visual mode to select a range of messages, then delete, archive, or move them all as a single IMAP command.",
mono: "v j j j d\n→ deleted 4 messages",
},
{
k: "03",
title: "Compose in markdown",
body: "Write in the syntax you already know. Headings, lists, fenced code, and tables render cleanly on the other side.",
mono: "# subject\n- bullet\n`inline`",
},
{
k: "04",
title: "Multi-account, tabbed",
body: "IMAP, Gmail, Fastmail, Proton Bridge — all in one window. Switch between them instantly so you never reply from the wrong address.",
mono: "← me@andrinoff\n→ drew@floatpane",
},
{
k: "05",
title: "Fuzzy filter",
body: "Filter across senders, subjects, and bodies in the active view. Results stream in as you type.",
mono: "/lena → 3 hits",
},
{
k: "06",
title: "Local-first drafts",
body: "Every keystroke hits disk before it hits the wire. Close the laptop, open it anywhere, pick up mid-sentence.",
mono: "~/.cache/matcha/drafts",
},
{
k: "07",
title: "CLI that composes",
body: "Pipe errors into apologies. Send from scripts, CI, or cron. `matcha send` does one thing well.",
mono: "$ matcha send --to …",
},
{
k: "08",
title: "Inline image rendering",
body: "Images render inline via iTerm2 or kitty graphics where supported. Toggle with a key. Off by default, always.",
mono: "→ ◧ images on",
},
{
k: "09",
title: "Full-disk encryption",
body: "Encrypt all local data with a password that is never stored — not on disk, not in the keyring. Matcha shows a lock screen on startup. Forget the password and there is no reset.",
mono: "matcha is locked\n> ••••••••\nenter: unlock",
},
];
function Features() {
return (
§ features
Everything you'd expect.
And nothing you wouldn't.
Matcha is opinionated. It won't follow you around the web, won't
upsell you on credits, and won't sync your signatures to a SaaS. It
reads mail. It writes mail. It stays out of the way.