Todos

Your attention surface in Dispatch. The agent watches email, calendar, and meetings in the background and surfaces a todo when something needs you.

Todos are your attention surface in Dispatch. The agent watches your connected systems in the background (incoming email, calendar changes, meeting transcripts) and surfaces a todo whenever something needs you: a reply only you can send, a follow-up you owe a prospect, a decision to approve. The todo list is the one place to see everything waiting on your attention.

Anything Dispatch can handle on its own, it just handles, and that work never becomes a todo. A todo always means the next step is yours.

Under the hood each todo is a file at /todos/{slug}.md with a ## Summary, a status, and notes that accumulate as the work moves forward. The agent reads them to know what is open, creates them when something needs your attention, and updates them as things change.

What it does

  • Surfaces what needs you. Background triggers on your connected accounts watch for signals (an email that needs a reply, a commitment you made, an action item from a meeting, a calendar decision) and raise a todo only when the next step is yours. See Inbox and Meetings for the signals each one watches.
  • Filters out its own work. If Dispatch can do something without you, it does it or schedules it, and never creates a todo addressed to itself. A todo always means you need to act.
  • Flags the urgent ones. For time-sensitive items Dispatch also messages you directly. The message is the "look now" signal; the todo is the durable queue.
  • Tracks state as work moves. Each todo carries a status (open, waiting, done, dismissed). A waiting todo records what it is blocked on and wakes back to open when its wake time arrives.
  • Can do the work on a todo. When you ask, or for actions it is already allowed to take, Dispatch runs an agent scoped to a single todo, does the work, and writes the result back for you to review.
  • Stays current. A scheduled daily review keeps the list honest: it resurfaces what is actionable and clears what is already resolved.

How to use it

Most of the list fills itself from background monitoring. You see it on the Todos surface, pinned in the sidebar with a badge for unprocessed items. You can also ask:

  • "What needs my attention today?"
  • "What todos are open right now?"
  • "Create a todo to follow up with Acme next Tuesday."
  • "Run the proposal-revision todo."

The file structure is there for anyone who wants to inspect or edit todos directly.

What Dispatch can do here

  • Morning briefing: a scheduled daily summary that surfaces your open and overdue todos.

Limits and behavior

  • Monitoring coverage. Background todo creation watches email (Gmail and Outlook), calendar events, and meeting transcripts today. Inbound Slack and Telegram messages are not yet wired to create todos.
  • One todo per file. Each todo is its own file at /todos/{slug}.md. The slug is derived from the title at creation time. No nested structure.
  • The setup agent owns the file. After todo_create returns, the agent that made the call should not write_file or edit_file against the returned path; the setup agent will overwrite it.
  • Autonomous runs use the permission gate. A todo run is a not-present-user origin; risky writes still pass through the gate, which means the agent will defer (propose, draft, or escalate to a todo) rather than ask questions mid-task.
  • Canonical statuses. The runner recognizes open, waiting, done, and dismissed. The status lives in the file and is updated as the todo progresses.
  • Inbox: the email signals that surface reply and follow-up todos.
  • Meetings: action items from meeting transcripts become todos.
  • Automations: the triggers and schedules behind background monitoring.
  • Permission gate: how risky writes from autonomous todo runs are gated.

For agents

  • Todos are the user's attention queue: a todo exists to put a decision or action in front of the user. Never create a todo addressed to the agent itself; if the agent can do the work, it does it or schedules it.
  • Default connector triggers create todos from background signals: email received (urgent and respond), email sent (commitments, plus expected replies as deferred follow-ups), meeting transcript received (action items the user owns), and calendar event added (decisions needing the user).
  • Todos are files at /todos/{slug}.md containing a ## Summary, a status, and notes.
  • The todo_create tool accepts title (becomes the slug) and optional seedContext. The setup agent owns the resulting file; do not write_file/edit_file the returned path.
  • Canonical statuses are open, waiting, done, and dismissed; a waiting todo can carry what it is waiting for and a time to wake back to open.
  • The todos runner dispatches a fresh agent run scoped to a single todo when its status is actionable.
  • A todo-originated run has ctx.origin.kind === "todo"; the user is treated as not present for permission decisions.

On this page