open source runs on your Mac

The gatekeeper for your inbox.

An open-source agent that scores every email as it arrives: needs a reply, urgent, or just noise. It runs on your Mac, with your own LLM key, and sorts everything with Gmail labels. Nothing is hosted, ever.

v0.9.3 · macOS 13+ · Apple Silicon · Signed & notarized · Free

You got 127 emails today. Six deserved you.

The other 121 still demanded a glance, a judgment, a decision, one by one. That's the job InboxMinder takes.

How it works

Watch. Judge. Label. Repeat.

A tiny pipeline that runs every 45 seconds, forever.

It watches

A small background agent polls your Gmail every 45 seconds with a durable queue: a crash, rate limit, or outage can never lose an email.

It judges

Each new email gets exactly one classifier call to your LLM. The verdict carries reply-worthiness, category, and importance together. Garbage output fails open to "needs you".

It labels

The verdict becomes a pre-colored Gmail label, on web and mobile, searchable and pinnable. Every decision is visible and one click to undo.

Setup

Five minutes, once.

1

Install

Download the Mac app, or npm i -g inboxminder. No account to create.

2

Pick your LLM

inboxminder init walks you through it. Anthropic, OpenAI, Google, or Ollama for fully local. Your key goes straight into the macOS Keychain.

3

Create your own Gmail app

A guided one-time trip to Google Cloud Console: enable the Gmail API, create an OAuth client, paste two values. This is the five minutes, and it's why no middleman ever sees your mail. Full walkthrough.

4

Go live

inboxminder up opens a browser consent, installs the background agent, and that's it. Labels start appearing on the next email.

Anatomy of a decision

One email, one verdict.

Each email gets exactly one classifier call. The verdict carries reply-worthiness, category, and importance together, and if the model ever returns garbage, the email is marked as needing you. Errors can never archive or mis-file mail.

Before a Cold Outreach label sticks, the guard checks the sender against everyone you have ever written to.

What it does

Every email, read and sorted.

All of it in the free gatekeeper. Every behavior below is a config knob or a Preferences toggle.

Five triage categories

Newsletter, Notification, Marketing, Cold Outreach, FYI: applied as pre-colored Gmail labels.

Important tier

Urgent, blocking mail gets an Important label and a quiet notification. Subjects only, never contents.

Pending and Resolved

Reply-worthy threads carry Pending; the moment your reply goes out, they flip to Resolved.

Opt-in archiving

Junk tiers can skip the inbox; the label always stays as an audit trail. Nothing is ever deleted.

Cold-outreach guard

Anyone you have ever written to can never be labeled cold. Teach it what a warm intro means to you.

Per-sender rules

"Always important." "Never worth a reply." Matched on the address; display names are spoofable and never match.

Every label is yours

Rename or recolor any label from config or Preferences. Labels are write-only; hand-edit them freely.

One call per email

One LLM call per email on your own key, typically a few cents a day. Zero with a local model.

Why not just…

An honest comparison.

Gmail filters

Free and instant, but they match strings, not meaning. You write the rules, they break silently, and no rule can judge whether an email deserves you.

Hosted AI email tools

Genuinely smart, and easier to set up. The trade: a company's servers read all of your mail, and the judgment lives in their cloud, on their subscription, until it doesn't.

InboxMinder

Real judgment, run locally. Open source, your own key, five guided setup minutes as the price of nobody else ever touching your mail.

Privacy, plainly

Honesty over marketing.

The email being classified (sender, subject, the first part of the body) goes to the LLM provider you configure. That is the one external data flow, and you choose who it is. Point it at Ollama and mail never leaves your machine at all.

Everything else stays on your Mac: OAuth tokens and API keys in the macOS Keychain, state in local SQLite, logs that carry subjects and senders, never bodies.

Don't trust the paragraph on the left: read the code. It's small on purpose.
Every decision is a visible Gmail label: reversible in one click, hand-editable, never hidden state.
No code path can send, delete, or mark spam. Worst-case failure: a wrong label you remove in one click.

The menu-bar app

A quiet native companion.

Status at a glance, pause and resume, a feed of what got triaged, and a Preferences window for every setting, so you never have to touch a config file. Optional: the gatekeeper runs fine without it.

Built in the open

Watch it grow.

Development happens on GitHub: issues, releases, and the changelog are public. Star the repo to follow along.

Inbox reordering

PLANNED

A browser extension that sorts Gmail by importance score in place: the one thing the API can't do.

Daily digest

PLANNED

A morning summary of what was triaged while you slept.

More providers

PLANNED

IMAP and Outlook support, so any mailbox gets a gatekeeper.

The v2 assistant

V2

Replies drafted in your voice, grounded in your docs: the assistant our own inbox already runs on.

Why we built it

Scratching our own inbox.

We're a small team at Kelviq, and Gmail is our customer support desk. We built InboxMinder to make that job easier, and it now runs our inbox end to end.

The full version does virtually everything a support person would: it drafts replies exactly the way we'd write them, categorizes every email, scores urgency and notifies us when something can't wait, and reminds us when a thread needs a follow-up.

That version is still tightly coupled to our internal workflow, so we're opening it up in stages. The gatekeeper you can download today is the first cut, and it stays free forever. The assistant is what's coming next.

Built in the open by Kelviq

Free forever. v2 is coming.

Features never move from free to paid. That is the promise.

The Gatekeeper

Free forever · open source

The full triage agent. Every email read locally, judged once, and sorted with Gmail labels.

  • Five triage categories, pre-colored labels
  • Important tier with quiet notifications
  • Opt-in archiving with audit trail
  • Cold-outreach guard and per-sender rules
  • Menu-bar app with full Preferences
  • Signed, notarized, auto-updating
Download for Mac
COMING

InboxMinder v2

The assistant tier

Everything our internal version already does for our own support inbox. Still local. Still yours.

  • Reply drafts written in your voice
  • Answers grounded in your docs and past mail
  • Integrations: Notion, Linear, and Slack
  • Follow-up reminders when a thread goes quiet
  • Learns your voice from every edit you make
  • Everything in the free Gatekeeper
Get notified at launch

FAQ

Fair questions.

Does it ever send or delete anything?

No, structurally: there is no code path that sends, deletes, or marks spam. It writes labels and, only if you opt in per category, moves junk out of the inbox with the label kept as the audit trail.

What does it cost to run?

One LLM call per email on your own key, typically a few cents a day at founder-inbox volume. With a local model via Ollama: nothing.

Which LLMs work?

Anthropic, OpenAI, Google, or any OpenAI-compatible endpoint, including Ollama and LM Studio for a fully-local setup.

Why do I need my own Google OAuth client?

Because a shared one would mean a middleman with access to your mail. Gmail restricts these scopes heavily; bring-your-own-client is what every self-hosted Gmail tool does. It takes about five guided minutes, once. Here's the full walkthrough.

How do updates work?

The Mac app updates itself: signed builds, consent-based, never silent. The CLI updates through npm and only ever notifies you when a new version exists.

Can I fork it?

Yes, the AGPL-3.0 license guarantees it. Just rename your fork (the InboxMinder name and logo stay with the project) and keep it open source.

Give your inbox a minder.

Free and open source · Signed and notarized · Apple Silicon