Superhuman is a fast front end for a mailbox you already have, which makes a personal copy plausible: a local cache of your Gmail, a split inbox, snooze, send later, undo send and a command palette fit in a weekend. The time goes on trust rather than features: incremental sync that never loses or duplicates a message, drafts that survive a crash, sending from aliases, and Google's OAuth rules, since a project left in Testing status gets refresh tokens that die after 7 days. The phone apps, shared team inboxes and tuned AI triage stay behind.
Before you buildSuperhuman has no free Mail tier, but Gmail's own shortcuts, snooze and schedule send cost nothing; try them first.
Build me a keyboard-first Gmail client for one account to replace Superhuman. Requirements: - Node.js 22 + TypeScript: a Fastify server and a React front end built with Vite, with `cmdk` for the command palette. `npm start` serves http://localhost:4900. - Storage: better-sqlite3 in ./data/mail.db with threads, messages, labels and an FTS5 index over subject, sender and body, so search answers from the local copy. - Sync: the Gmail API through `googleapis`. First sync pulls the last 90 days; afterwards use history.list from the stored historyId, and fall back to a full resync if Google answers 404. OAuth client id and secret in .env; the refresh token is kept in ./data/token.json (mode 600). - Inbox: j/k to move, Enter to open, e archive, # trash, s star, r reply, a reply all, f forward, c compose, / search, g then i / s / d to jump to Inbox / Starred / Drafts, Cmd+K palette. - Split inbox: tabs defined by rules (sender, domain, Gmail label or category), edited in a settings page and stored in SQLite; mail matches the first rule that fits. - Time tools: snooze (h) removes a thread from the inbox until a chosen time; send later schedules a message; undo send keeps it for 10 seconds. A worker checks every 30 seconds and the server must be running for snooze and send later to fire. - Reading: sanitize HTML with DOMPurify and render it in a sandboxed iframe; remote images stay blocked until I allow them for that sender. - Drafts: autosave to Gmail drafts every 3 seconds. Optional "Draft reply" button: send the thread to an OpenAI-compatible endpoint (LLM_BASE_URL, LLM_MODEL, LLM_API_KEY; local Ollama works) and insert the answer into the editor. Nothing is ever sent without my pressing send. - Single user. No accounts, no telemetry, local-first. Outbound calls: Gmail and the LLM endpoint. - Out of scope: Outlook, IMAP, mobile apps, read receipts, team features. - README: the Google Cloud console steps (budget 30 minutes), a warning that an OAuth app in Testing status issues refresh tokens that expire after 7 days (set the status to In production), and how to revoke access.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Superhuman.
Add follow-up reminders to the mail client in this folder. Requirements: - When I send a message, offer "remind me in" with 2, 5 or 7 days or a date; store it per thread. - If a reply arrives first, drop the reminder; otherwise put the thread back at the top of the inbox with a "No reply yet" label at the chosen time. - A Reminders tab lists all pending ones, each with a button to snooze or clear it. - A keyboard shortcut (shift+h) sets a reminder on an open thread. - Update the README.
Add AI triage to the mail client in this folder. Requirements: - For each new inbox thread, send sender, subject and the first 1,500 characters to the configured LLM endpoint and ask for one label from: needs-reply, fyi, newsletter, receipt, calendar. Store the label locally and as a Gmail label prefixed "Triage/". - Add a split-inbox rule type "triage label" so each label can be its own tab. - Keep a log of the last 200 decisions with a one-key way to correct one; corrected examples are added to the prompt as few-shot hints. - Skip threads from my own address. Update the README with the privacy note that mail excerpts leave the machine unless the endpoint is local.
Add snippets to the mail client in this folder. Requirements:
- A Snippets page to create, edit and delete named text blocks with {first_name},
{sender_name} and {today} placeholders.
- In the compose window, Cmd+K then "snippet" lists them with fuzzy search; Enter inserts the
snippet at the cursor with placeholders filled from the thread.
- Store snippets in SQLite and export them as a single Markdown file.
- Update the README.Add availability sharing to the mail client in this folder. Requirements: - Read busy times from Google Calendar with the existing OAuth login (add the read-only calendar scope) for the next 14 days. - A compose shortcut inserts up to 5 free 30-minute slots in my time zone, working hours taken from .env, written out in my time zone with the zone name. - Never write to the calendar. Update the README with the extra scope and re-consent step.
Every action is a keystroke, the inbox opens instantly, and the apps behave the same on desktop and phone, which turns clearing email into a habit. Community threads we read split along that line: one subscriber says it's the first time email has been enjoyable, another is leaving after a price rise because they mostly use the split inbox.
Estimate · Gmail API calls at one mailbox's volume are free. Drafts through a hosted model cost cents a day, and a local model costs nothing. The build is token usage on your agent plan.
Checked 2026-10-14 against Superhuman's docs: 1, 2, 3, 4, 5, 6
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Starter | $30 | $25 | Mail with Superhuman AI, team collaboration, calendar and scheduling, unified admin and billing. |
| Business | $40 | $33 | Everything in Starter plus the most advanced AI, Auto Drafts, Ask AI, the Mail MCP, custom auto labels and CRM integrations. |
| Enterprise | custom | — | Admin security and controls, single sign-on, a customer success manager, team analytics and priority support. |
None for Mail. The wider Superhuman suite has a free tier, but it covers Grammarly, Docs and Go, not Mail.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: The iPhone and Android apps, Microsoft 365 and Outlook accounts, and several accounts side by side.
About $30 a month on the Starter (Mail) plan per seat, $360 a year (checked 2026-10-14).
The iPhone and Android apps; Microsoft 365 and Outlook accounts, and several accounts side by side; Shared conversations and team comments; Auto Drafts, Ask AI and auto labels tuned over a whole mailbox; Calendar scheduling and Share Availability links. If any of those matter to you, keep paying.
Yes: Zero (open source), Mailspring (open source), Flectar Mail (open source).