One stream. Four verbs. Reminders that fire.

Nagbox recreates Google Inbox's triage model for tasks. Everything lands in one stream and nags by presence, in your Personal space and the spaces you share. You organize it with labels and lenses, and snoozed items come back on top until done. Push that reaches your phone, live now at app.nagbox.io.

Free to sign up at app.nagbox.io. Never sold, never used to train anything.

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

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. Pin surfaces as its own "Pinned" chip in the lens bar, not a separate screen. Clearing a section earns you a sunrise. That is the entire interaction model, and it is enough.

Reminders that actually reach your phone

Most task apps fail at the same point: getting a notification to your phone at all. Vikunja's web push is an open PR. Donetick's push is broken. tududi has none. Nagbox ships first-party Web Push out of the box, and notifications reach desktop browsers, Android, and iOS home-screen PWAs. No Firebase, no CalDAV server, no companion app, no account with anyone. ntfy is supported as a second channel, so you can also have every notification delivered to your own ntfy topic alongside Web Push. Never email, on purpose: a reminder that arrives as one more unread message is a reminder that gets buried. Quiet hours (10 pm to 7 am by default, yours to move in Settings) hold the push back, not the nag: the item still resurfaces in your stream on time, the notification just waits for morning.

Snooze that comes back swinging

Snoozed items do not vanish into a list you will never reopen. Edit one right from the Snoozed tab: the same short form, title, space, labels, assign, with Remind pre-filled under More options, so one Save changes the nag, the snooze, or both. 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. Tap a label on a nag to add it to the filter bar; tapping the chip in the bar flips it between include and exclude. Search finds matching lenses first, so an unpinned lens is one search away. The X clears it, and "Save as lens" turns the combination into a named lens, or updates the one you started from. On the Nagbox view, Save as lens also updates your own Nagbox lens, and any member of a shared space can update their own while creating named lenses stays admin-only. Pin the lenses you actually use to a bar across the top. Drag them into the order you want in the Lenses tab, and the quickbar follows that order. Your Inbox is itself a lens, so tuning what it shows is the same move as making any other view. The Nagbox lens is set per space, so what nags you in Family stays separate from Personal. Once a space has more than one person, any lens in it shows the whole board, every member's matching nags with the owner's name on each row; the Nagbox lens stays the exception, narrowed to what's assigned to you. In a space like that, only an admin creates a named lens; everyone else uses and pins what's there, and only an admin can edit or delete one. Your own Nagbox lens settings stay personal regardless.

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.

Personal

Your Personal space. What happens here nags only you.

Personal is your private half of Nagbox. Everything you capture that isn't someone else's job lands here: the reminders, the someday-maybes, the 3am ideas you'll later deny having. Nobody else can see it. Just you and a goat that refuses to let things slide.

Spaces

Spaces for the people you share obligations with.

Personal is yours alone. A space is the same thing shared: make one for the family or the team, invite people by username, and everyone in it sees the whole board. Once a space has more than one person, any lens in it shows that whole board: every member's matching nags, with the owner's name on each row. Only the Nagbox lens is different, staying narrowed to what's assigned to you. Assign a nag to someone right on the short capture or edit form, next to Space and Labels, and it lands in their Nagbox with a push; when they finish it, you get the push. Press and hold a nag to select it, tap others to add them to the selection, then apply labels to all of them at once or assign them all to one person; multi-select works inside a space only. Each space keeps its own labels and lenses, so the grocery label in Family never leaks into work. Everything shows all your spaces in one stream, each item marked with where it lives.

Timing

Remind is when it nags. Due is the deadline.

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, waking at 7 in the morning in your timezone (a space wakes on its owner's clock). Complete one and the next instance is waiting, with a line telling you when: "Done. Next: Sep 30." Anything past its deadline is flagged overdue in orange, so a slipped deadline is loud, not silent.

Details

The small stuff, done right

  • Drag to reorder Grab an item's grip and set your own order. The manual order sticks; resurfacing and fresh captures still jump to the top.
  • Sub-steps Drag a nag onto another to nest it as a sub, one level deep, and the parent shows how many are left. Drag it back out to un-nest. Reordering by drag still works the same either way.
  • Icon picker Give an item an icon from a curated set (home, cart, car, plane, and more) so a glance down the stream tells you what each thing is.
  • Tappable links Any http link in a title or note is tappable and opens in a new tab. A small link chip on the row opens it without expanding the item.
  • Add to home screen Install it as a PWA and it opens like an app, runs full screen, and receives push even with the browser closed.
  • Built-in feedback Send an idea, a bug, or a note from inside the app. It lands as a nag in the maintainer's own Nagbox, with a push, no tracker account required.

Nags, with consent

It gets to know you. It tells no one.

Nagbox deals you the occasional getting-to-know-you card, at most two a day and never more than two open at once. Answer them or ignore them. On day two, then every two weeks, a card asks whether you want more, fewer, or none, anywhere from zero to four a day; once you have settled on a pace it only checks in monthly. What you answer builds an interest profile that makes its nags smarter over time.

That profile lives in your account only. 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. Adjust the pace, or turn the whole thing off, anytime in Settings.

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 in every space you belong to, over an access token you mint in the app, and never sees your password or session cookie.

  • Capture nagbox_capture creates a task or reminder, and can snooze it on the spot.
  • Triage with the four verbs nagbox_done, nagbox_snooze, nagbox_pin, and nagbox_back, one call each. nagbox_sweep clears a whole time window at once.
  • List, search, and label nagbox_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 across spaces Every tool takes a space argument that defaults to Personal. nagbox_spaces lists the spaces you belong to, and nagbox_everything reads the stream across all of them.
  • Work the nags nagbox_next_nag pulls the top unanswered nag, nagbox_answer_nag replies, nagbox_more_nags asks for more, up to the same daily cap as the app.

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.

Claude Desktop config

claude_desktop_config.json
{
  "mcpServers": {
    "nagbox": {
      "command": "npx",
      "args": ["-y", "@nagbox/mcp"],
      "env": {
        "NAGBOX_URL": "https://app.nagbox.io",
        "NAGBOX_TOKEN": "nbx_your_token_here"
      }
    }
  }
}

Mint the token in Settings > Access tokens at app.nagbox.io. It is shown once at creation, and revocable from the same screen.

Watch an agent work it

A real exchange, honest to the tool names and the text they return.

A public demo is planned. Until it is live, start with the app itself at app.nagbox.io.

Get started

One app, ready in a minute

Nagbox runs at app.nagbox.io. Sign up and you are triaging your stream within a minute: capture, labels, and push already wired up, nothing to install or configure first.

Get started

Already have an account? Log in.

Trust

The parts that can't be walked back

These are commitments, stated plainly so you can quote them back at us later.

  • Never sold, never used to train anything.
  • SSO never paywalled.
  • Cancel anytime. Leaving stays as easy as staying.

Pinned. Sweep skips these.

We do not need a rug-pull clause because there is no rug: cancel anytime, no contract, no penalty. If Nagbox ever stops working for you, leaving costs a click, not a fight.

FAQ

Questions you were about to ask

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. 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 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. 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, free to sign up and use at app.nagbox.io, with SSO never paywalled.

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.