Version 1.0

Unsubscribe from everything.

Nevermore finds every newsletter in your mailbox, groups them by sender, and lets you unsubscribe from — and delete — whole senders in a few keystrokes. It runs entirely on your Mac.

Free. macOS 14 or later, Apple Silicon and Intel. Signed and notarized; updates arrive in the app. Coming to the Mac App Store.

Thirty seconds, start to finish: find the newsletters, unsubscribe, keep what you want, and catch the senders who carry on regardless. Recordings use the built-in demo mailbox — the senders are invented, which is why the app shows its demo banner.

Not another inbox service

Most unsubscribe tools are web services. You hand them OAuth access to your mailbox and they read it on their servers. Unroll.me famously sold the results. Nevermore is the opposite shape.

No server, no account

Everything runs on your Mac. There is nothing to sign up for, no telemetry, and no way for the developer to see your mail — there is no server to send it to.

Headers, never bodies

It reads From, Subject, Date, and the unsubscribe headers. It never downloads a message body, and reading doesn't mark your mail as read.

Honest about outcomes

Unsubscribing can't be verified in general, so Nevermore says requested rather than claiming success — and tells you when a sender ignores you.

Nothing is destroyed

Deleting moves mail to your provider's Trash, where you can restore it. The app never issues an IMAP EXPUNGE. Small batches undo with ⌘Z.

Built for the keyboard

Nevermore is meant to be held down until the mailbox is clean. Every action moves you to the next sender, so a thousand newsletters is a few minutes of triage rather than an afternoon of clicking.

Moving down the sender list with j, then pressing u to unsubscribe. A confirmation appears, then a result saying the request was sent.
One keystroke sends the request the sender published — then the app tells you what it did, and what it can't promise.
Ignoring a sender so it disappears from the list, then trashing every message from another sender.
Keep the ones you actually read. Everything else goes, along with the mail it already sent.

It catches the ones that come back

This is the part a web service can't do for you. An unsubscribe request is accepted, not honoured — plenty of senders confirm it and keep mailing. Every sender that mails you again after you unsubscribed shows up in Reappeared, with a count of what has arrived since. From there you can finish the job by hand in the built-in browser, or trash and ignore them for good.

The Reappeared collection listing two senders with counts of new messages received since the unsubscribe.
Two senders who carried on regardless — one of which had confirmed the unsubscribe. Catching that is what the app is named for.

Try it before you trust it

The first screen offers a demo: a full sample mailbox, no credentials, with every button live. It runs on a backend containing no network code at all, so nothing in demo mode can reach a server. Look around, then decide whether to hand the app a password.

The How Nevermore Works sheet, explaining the four steps and what each unsubscribe-method icon means.
The app explains itself while the first sync runs — including an honest list of what it can't find.

What it won't find

Nevermore locates newsletters by the standard List-Unsubscribe header. Nearly all legitimate bulk mail carries one — Gmail and Yahoo have required it from bulk senders since 2024 — but a sender who buries their unsubscribe link in the message body is invisible to it. Finding those would mean reading your mail, which is exactly what this app doesn't do.

Flagged and starred messages are skipped on purpose, so your important mail is never in scope.

How it works

You sign in with an app-specific password over plain IMAP — no OAuth, no Google Cloud project, no consent screen. The password goes straight into the macOS Keychain, stored so it can't ride a backup to another machine. Nevermore then syncs message headers into a local SQLite file, groups senders by registrable domain, and sends unsubscribe requests directly to the endpoint each sender published.

Because those endpoints are written by strangers, every URL is checked before it's contacted: requests to private, loopback, and link-local addresses are refused, and redirects are re-validated at every hop.