Nagbox recreates Google Inbox's triage model for tasks. Everything lands in one stream and nags by presence; you organize it with labels and lenses, and snoozed items come back on top until done. Push that reaches your phone, hosted for you in minutes.
Hosted beta open now at nagbox.io. Open source and AGPL, self-hosting coming, your data always exportable.
The missing half
Google killed Inbox in 2019. Half of it stayed dead.
Everyone who rebuilt Inbox rebuilt the email half. Nobody rebuilt the other half: the reminders that lived in the same stream as everything else, snoozed with one tap, and came back exactly when you told them to. That was the part that made Inbox feel like it was working for you.
Nagbox is that half. Not an email client, not a project tracker, not a kanban board. Just the tickler file Google built, then shot.
For the other 90% of life: the 30-second obligations that just need to come back at the right moment and refuse to be forgotten.
What it does
DoneSnoozePinSweep
Triage with four verbs
Everything lands in one stream. You clear it with Done, Snooze, Pin, or Sweep, by keyboard or by swipe. Done archives, never deletes. Sweep bulk-clears a whole section in one motion and skips anything pinned, with one undo for the whole batch. Clearing a section earns you a sunrise. That is the entire interaction model, and it is enough.
Reminders that actually reach your phone
Every self-hosted task app fails at the same point: getting a notification to your phone without a vendor cloud. Vikunja's web push is an open PR. Donetick's self-hosted push is broken. tududi has none. Nagbox ships first-party Web Push out of the box: keys generate themselves at first boot, and notifications reach desktop browsers, Android, and iOS home-screen PWAs. No Firebase, no CalDAV server, no companion app, no account with anyone. UnifiedPush endpoints too, for the fully degoogled. Never email, on purpose: a reminder that arrives as one more unread message is a reminder that gets buried.
Snooze that comes back swinging
Snoozed items do not vanish into a list you will never reopen. When a snooze fires, the item resurfaces at the top of your stream, pre-pinned, with a chip explaining why it is back. It sits there and nags by presence until you deal with it. A missed notification loses nothing, because the stream is the system of record and the push was only ever a tap on the shoulder.
Organize
One calm stream. Everything still reachable.
Everything lands in the same stream and nags by presence. You keep it calm without filing anything away and losing it.
Tag with labels
Add labels to an item as you capture it or later. Suggestions surface your most-used tags, so labeling is a tap, not a decision. Search matches your labels, not just the words in the title, so a tag is a real handle you can pull.
Build lenses
A lens is a saved view built from labels: an include set, an exclude set, a name. Pin the lenses you actually use to a bar across the top. Your Inbox is itself a lens, so tuning what it shows is the same move as making any other view.
Hide or protect, never delete
A lens can hide a whole category from the daily Inbox while the items stay live under their own lens. It can also protect a keep-around lens like Someday or Gift Ideas from Sweep. Calm inbox, nothing lost, everything one pill away.
InboxErrandsFollow-upSomeday
Renew the car tagserrands
Text Sam back about the quotefollow-up
Order more coffee filterserrands
Pin a lens. Filter the stream. Search your tags.
Timing
Remind is when it nags. Due is the deadline.
RemindDueRepeatsOverdue
Capture keeps two clocks apart. Remind is when the item comes back to nag you, set from the same presets as Snooze: later today, this evening, tomorrow, this weekend, or a date and time you pick. Due is a real deadline, an optional date with an optional time, and it stands even while the item is snoozed.
Repeats handles the standing obligations: none, daily, weekdays, weekly, or monthly. Complete one and the next instance is waiting. Anything past its deadline is flagged overdue in red, so a slipped deadline is loud, not silent.
Details
The small stuff, done right
Drag to reorderGrab an item's grip and set your own order. The manual order sticks; resurfacing and fresh captures still jump to the top.
Sub-stepsA checklist lives inside an item. Tick the steps off without leaving the stream, and the item shows how many are left.
Emoji pickerDrop a native emoji into a title from a curated picker, so a glance down the stream tells you what each thing is.
Add to home screenInstall it as a PWA and it opens like an app, runs full screen, and receives push even with the browser closed.
Built-in feedbackSend an idea, a bug, or a note from inside the app. It goes straight to the maintainer, no tracker account required.
Nags, with consent
It gets to know you. It tells no one.
Nagbox can ask you optional getting-to-know-you questions and deal you the occasional daily card. Answer them or ignore them. What you answer builds an interest profile that makes its nags smarter over time.
That profile lives in one place: your own instance's database, the same SQLite file as everything else, hosted for you or on your own hardware once self-hosting lands. It is not synced anywhere, sold to anyone, or used to train anything. It exists so your reminder app can be less dumb about you, and for no other reason. Turn the whole thing off with one setting if you would rather stay strangers.
Built for agents
Nagbox speaks MCP, so Claude or any agent can run your reminders.
Nagbox ships a Model Context Protocol server. Point Claude Desktop, Claude Code, or any MCP-capable agent at it and your assistant can capture obligations, triage the stream, and work your nags for you. It acts as you, over an access token you mint in the app, and never sees your password or session cookie.
Capturenagbox_capture creates a task or reminder, and can snooze it on the spot.
Triage with the four verbsnagbox_done, nagbox_snooze, nagbox_pin, and nagbox_back, one call each. nagbox_sweep clears a whole time window at once.
List, search, and labelnagbox_list reads the stream, snoozed queue, or done archive; nagbox_search matches your labels as well as the text; nagbox_labels lists your tags with counts. Capture and nagbox_edit apply labels too.
Work the nagsnagbox_next_nag pulls the top unanswered nag, nagbox_answer_nag replies, nagbox_more_nags asks for more.
One line to install
npx -y @nagbox/mcp
It speaks MCP over stdio, so your agent launches it. No global install, no daemon to run.
Mint the token in Settings > Access tokens. It is shown once at creation, and revocable from the same screen. When self-hosting lands, point NAGBOX_URL at your own origin and mint the token there instead.
Watch an agent work it
A real exchange, honest to the tool names and the text they return.
A public demo instance is planned. Until it is live, start with the hosted beta.
Hosted
Use it today, hosted for you
The way to run Nagbox right now is the hosted beta at nagbox.io. The full app, on our hardware instead of yours, ready in minutes. It sells convenience, never features: nothing is held back from self-hosters, and nothing ever will be. Export your complete SQLite database anytime, one click, because leaving has to be easy for staying to mean anything.
The beta has limited slots. If it is full you go on the list and get in as room opens.
Self-host Coming
Self-hosting is on the way
Running your own instance is coming, and here is the promise it ships under. One container, one binary inside it, one SQLite file for all your data. No Postgres to babysit, no env vars required, no config file to write. Open your browser, create the admin account, and back up by copying a directory. This is what the one line will look like:
docker run -d -p 8080:8080 -v ./data:/data ghcr.io/heretikio/nagbox
Bare binaries for Linux and macOS are planned too, and migrations will run themselves on upgrade. When it lands it will be complete and free under AGPL, with nothing held back from self-hosters, ever.
These are commitments, stated plainly so you can quote them back at us later.
AGPL-3.0, DCO, no CLA, ever.
Self-hosting ships complete and free, forever.
SSO never paywalled.
Hosted tenants export their SQLite anytime.
Pinned. Sweep skips these.
The license does the enforcing. Under AGPL with DCO sign-offs and no CLA, every contributor keeps their copyright. Relicensing would need consent from all of them, which means it cannot quietly happen. We built the rug so it does not pull.
FAQ
Questions you were about to ask
Can I self-host it right now?
Not yet. The way to use Nagbox today is the hosted beta at nagbox.io. Self-hosting is coming, and the commitment is firm: when it ships it will be complete and free under AGPL, with nothing held back from self-hosters, and your data will export as one SQLite file you can copy and carry. The whole codebase is already public if you want to read ahead.
Why SQLite?
Because one database engine halves the support surface and your entire life fits in one file. SQLite in WAL mode handles a household's reminders without breaking a sweat, backup is a file copy, and restore is a file copy back. A Postgres option is on the roadmap for when someone actually needs it, which is later than you think.
How does push work without a vendor cloud?
Web Push is an open standard (RFC 8030) that browsers already implement. Nagbox generates its own VAPID keys for your instance and talks directly to your browser's push service. No Firebase console, no Apple developer account, no relay service, no telemetry. It works on desktop browsers, Android with the browser closed, and iOS 16.4+ once you add Nagbox to your home screen. UnifiedPush endpoints are supported for the fully degoogled. Onboarding ends with a test push to your phone so you know it works before you trust it.
Why not Vikunja or Donetick?
Use them if they fit. Vikunja and tududi are project organizers; Donetick manages recurring household chores. Nagbox is for everything that is not a project: the 30-second obligations that need to resurface at the right moment. And the deciding detail is delivery. As of August 2026, Vikunja's web push is an open PR, Donetick's self-hosted push is broken, and tududi has none. A reminder app that cannot reach your phone is a list app.
Is it really free?
Yes, structurally. Self-hosting will be AGPL-3.0 and feature-complete forever, SSO included, once it ships. Today the hosted beta at nagbox.io runs it for you and charges for the servers, never for features. And because contributors keep their copyright under DCO with no CLA, nobody, including us, has the legal power to take the code proprietary later.
What about email? Inbox was an email app.
Not in v1, on purpose. Nagbox borrows Inbox's interaction model, not its mail. The data model quietly reserves the door, so email ingestion can arrive someday without a rewrite, but it is explicitly unpromised. And email is never a notification channel: your reminders reach you by push, not as one more unread message to bury. Account email stays recovery-only. An honest small scope now beats an abandoned large one later.
Who builds this?
A pseudonymous maintainer, under the Heretikio org. If that gives you pause, good, you are the right kind of paranoid, and the license is your answer. The code is fully open for audit, AGPL means any fork keeps every freedom you have today, and DCO with no CLA means the maintainer holds no special legal power over the project's future. You are trusting the code and the license, not a name. That is more than most apps with a founder photo can offer.