Reminders
Reminders live at /p/reminders and come in two kinds: a date reminder fires at a
specific moment, a condition reminder waits until something in your world matches
what you described. You write both the same way, in plain language, and Subspace figures
out which kind you meant.
Creating a reminder
Section titled “Creating a reminder”Type into the capture field and press Enter:
remind me to follow up with Rachel in a weekremind me to send the invoice tomorrowremind me to renew the domain on Jul 9remind me to draft the contract when I'm readyNatural-language date phrases, in a week / in 3 days / tomorrow / on Jul 9, parse
into a date reminder with a concrete due timestamp; the date phrase stays in the
reminder’s text so it still reads naturally in the list. Anything without a recognizable
date phrase becomes a condition reminder instead, no error, no forced date, it just
waits.
Active reminders list below the input with a colored dot (date reminders show a normal
tone, condition reminders an upcoming tone), the reminder text, and a due chip (a
formatted date, or the literal word condition). Click the × on any row to dismiss it.
How each kind fires
Section titled “How each kind fires”Date reminders fire through the scheduler’s poll, which checks
for due reminders roughly every 30 seconds. A fire flips the reminder’s status to
fired and emits a reminder-due event in the same
transaction, which triage routes into the
task queue like any other event (the built-in default routes it to
the plain queue route, no notification, unless your own severity rules say
otherwise).
Condition reminders are re-checked on every heartbeat agent run rather than on a
timer. Each run assembles the current context, active memory items,
today’s calendar events, and open task queue titles, and matches it
against the reminder’s significant keywords (stopwords and short words are ignored).
A reminder fires the moment two of its keywords (or its only keyword) show up together
in a single piece of context, using the exact same fire shape as the date path:
status flips to fired, a reminder-due event commits, and triage routes it. The
heartbeat also files separate suggestion cards, for example a prep task ahead of an
upcoming meeting with no existing follow-up, straight into Up next; those aren’t
reminders you wrote, but they surface next to them.
Both paths are deliberately conservative: a condition needs a real keyword overlap before it fires, so a vague reminder simply never fires rather than firing on a weak guess.
The reminders.create agent tool
Section titled “The reminders.create agent tool”Agents create reminders the same way you do, through natural language:
reminders.create({ text: "follow up with Rachel about the renewal", when: "in a week", // optional: separates timing from the reminder text})when is optional, if the timing is already inside text (“…in a week”), you can omit
it; pass it separately when the agent has the due phrase and the task text as distinct
pieces of information. The tool needs no approval, creating a reminder has no external
effect until it actually fires.