Inbox & capture
The inbox is Subspace’s guaranteed-capture point. It is a normal page
at /p/inbox, so anything captured there is a node like any
other, but its header carries a promise: “everything here will be acted on.” Capture
first, decide later, triage does the deciding.
Capturing
Section titled “Capturing”A single input field sits at the top of /p/inbox. Type a thought and press Enter:
one transaction writes the node onto the inbox page and emits an inbox-captured
event. The item then appears immediately in the Untriaged
list below, showing its source and capture time.
Once triage routes the event, the same item moves to the
Triaged by event-triage agent list, showing a severity dot and its resolved route
(page inbox, silent / task queue / task queue + notification / notify, overrides focus). Clicking a triaged item that was routed to another page’s inbox jumps you
straight there.
An inbox item is a node on the inbox page with props.inbox = {source, ts} until triage
decides its fate; triage rides the same event pipeline as every other event type.
#tag routing
Section titled “#tag routing”Type #tag (or #[[Page Title]]) anywhere in the capture text to route the item to that
page’s own inbox instead of the workspace inbox:
Follow up on the SOC2 audit doc #acme-renewalRouting resolves the tag deterministically, server-side, exact title match first, then a
page alias, then the slug, and the node moves silently onto the target page (the
page-inbox route in triage, so no task queue row and no
notification fire for it). The quick-capture palette mirrors this resolution live: as you
type, it shows → [[tag]] inbox or → inbox beneath the input so you know where the
item is headed before you commit it.
Capture surfaces
Section titled “Capture surfaces”The inbox is reachable from every client:
Desktop palette
⌘⇧Space (Ctrl+Shift+Space on Windows/Linux, configurable) opens a small
always-on-top window from anywhere in the OS. Type a line and press Enter to
capture it to the inbox, or Tab to run the same text as an agent command instead.
Escape hides the window without capturing. See Desktop.
Mobile
The mobile app captures offline-first: a capture is queued to on-device storage immediately and a background flush loop delivers queued captures in order once the server is reachable, so a bad connection never loses a thought. The share sheet drains into the same queue, so sharing a link or a note from another app captures it too.
Browser extension
The extension popup clips the active tab into the knowledge base (see Knowledge ingestion) rather than the inbox, useful when what you want to keep is the page itself rather than a note about it.
Context chips (where can this be done?)
Section titled “Context chips (where can this be done?)”Triage annotates action-worthy captures with a GTD context — @computer, @mobile,
@errands, or @reading-listening — rendered as a chip on the card and on the capture
history row. Deterministic rules label the obvious cases with no model call (buy/pick
up/store → errands, call/text → mobile, URL-dominated captures and clipper shares →
reading-listening); anything else rides the one triage classification already being made,
and a #tag-routed capture stays unlabeled rather than buying an extra model call.
Filter both the card list and history by context, and override any chip from the card —
the manual choice is final. You can author your own deterministic rules (keywords,
senders, sources) at /settings/triage, where your corrections are also mined into
suggested rules — see Events & triage.
Listen
Section titled “Listen”When agent-debrief digests are in the inbox, a player row appears: ▶ listen, previous /
next, and a topic filter. Audio is synthesized on demand through the TTS provider seam,
cached as ordinary files for thirty days (re-listening is a cache hit), and auto-advances
through the queue. The nightly agent-edit debrief itself summarizes everything agents
changed, one compact #topic item per day, so listening through it is a hands-free
review of what happened while you were away.