Clean a decade of inbox in minutes.
mailctl groups thousands of messages by sender, list-id, size and age — so you can review and bulk-delete with a few keystrokes.
j k to navigate · x select · ⇧X select group · d delete
$ mailctl login ✓ signed in as [email protected] $ mailctl connect gmail ✓ connected · scope = metadata + modify $ mailctl group --by=sender --limit=10 list-id sender count size ────────────────────────────────────────────── github notifications@github 9,402 412 MB linkedin invites@linkedin 1,284 96 MB medium [email protected] 612 38 MB $ mailctl delete --sender=notifications@github ⚠ about to delete 9,402 messages · undo window = 7 days ✓ done in 12.3s
The web UI does the same thing — j/k to move, ⇧X to select a group, d to delete.
One-message-at-a-time is broken.
mailctl treats your inbox like a database — groupable, filterable, and bulk-actionable.
Bulk actions, not one-by-one triage
Select 10,000 messages from one sender. Delete, archive, or label them all. Undo within 7 days.
Transparent grouping
Every group shows the exact match: sender, List-Id header, size range, age window. No black-box AI.
Narrowest OAuth scopes that exist
gmail.metadata + gmail.modify. Mail.ReadBasic + Mail.ReadWrite. We never request body access.
Keyboard-first
Built like a terminal. j/k to move, x to select, ⇧X selects the whole group, d to delete.
Unsubscribe that actually works
Prefers RFC 8058 List-Unsubscribe headers. Falls back to URL + auto-archive.
Rules engine
Turn any one-time cleanup into a rule. Match by sender, list, subject regex, size, or age.
We don’t read your email.
Others do.
| Capability | mailctl | Typical AI inbox tools |
|---|---|---|
| Reads message bodies | ✓ Never | Required |
| OAuth scope | ✓ metadata only | full read |
| Bulk delete > 1k | ✓ Yes, batched | Often capped |
| Undo window | ✓ 7 days | Usually none |
| Transparent grouping | ✓ Yes | Black-box AI |
| Pricing | ✓ Free / $5 | $10–30+ /mo |
From OAuth to first bulk action in 90 seconds.
- 01Connect
Sign in to mailctl, then connect Gmail or Outlook. We store an encrypted refresh token — nothing else from your provider account.
- 02Sync
An Inngest worker streams message metadata in the background. The dashboard becomes usable after the first 5,000 messages.
- 03Cleanup
Open a group, hit ⇧X to select all of it, d to delete. mailctl batches the calls to your provider — 50k messages in under 5 min.
Questions people actually ask.
Can you read my email?+
No. Gmail's metadata scope physically cannot return message bodies. Outlook's Mail.ReadBasic excludes bodies and attachments by design. The OAuth provider — not us — enforces this.
What if I delete something by accident?+
Every bulk action gets a 7-day undo token. One click restores the messages, even if they were deleted from Trash.
How fast is it on a 100,000-message inbox?+
Background sync completes in ~10 minutes. The dashboard is usable after the first 5,000 messages are indexed. Bulk-deleting 10,000 messages takes about 15 seconds.
Do you support IMAP / Yahoo / iCloud?+
Not yet. v1 is Gmail + Outlook only. IMAP support (Yahoo, AOL, Zoho, iCloud) is planned for v2.
Is mailctl open about its limits?+
Yes — read /privacy for the exact OAuth scopes and stored columns. If we ever need to widen scope, that page changes first.
An inbox you can actually use.
Not just “features.” The concrete outcomes you keep after twenty minutes with mailctl.
Hours back, every week
Stop reading the same newsletter you ignore every Monday. Delete it once, set a rule, never see that sender again.
A mailbox that fits
Free Gmail quotas creep close to full. Bulk-deleting receipts, notifications, and old newsletters frees gigabytes — without paying Google for storage.
Inbox anxiety
The 27,000-unread counter is finally tractable. Group, glance, delete in chunks of thousands. The dread of opening Gmail goes away.
Important emails surface
Once the noise is gone, the messages that actually matter — from people, not platforms — stop getting buried.
Mistakes are reversible
Every bulk action has a 7-day undo. You can experiment aggressively without fear of losing something important.
Privacy you can verify
We use the narrowest OAuth scopes that exist — physically incapable of returning message bodies. Read the privacy page; the constraint is in the OAuth provider, not a promise.
Stay clean automatically
Every cleanup becomes a rule. Future messages from blocked senders auto-archive on arrival. You clean once; it stays clean.
Faster than your mouse
Keyboard-first design means you can triage hundreds of senders per minute. j/k to navigate, ⇧X to select a group, d to delete.
Honest pricing
Free tier is the whole product for one mailbox. Pro is $5/month for multiple inboxes and rules. No AI upsell. No annual-only games.
Get an email when we ship something.
Roughly one short note a month — never more. Unsubscribe in one click (we’d know if it didn’t work).
No tracking pixels. No third-party analytics on this list.
Your inbox isn’t going to clean itself.
Free while in beta. Sign in, connect a mailbox, and reclaim a weekend.
v2 will add IMAP for Yahoo / AOL / Zoho / iCloud.