dispatch
Sessions waiting on you:0finished:0· all quiet
Sign inStart the trial

Docs Core

The Deck

What finished while you were elsewhere, what is blocked on you, and how to answer it without going to find it.

The bell means a session needs you. It does not mean the work is done.

You have six workspaces open, and one session somewhere in them is sitting on a permission prompt. It prints exactly as much as the one that finished four minutes ago, which is nothing, so the only way to find it is to visit all six and read them.

The Deck is where you stop doing that. Claude Code sessions report what they are doing, so a blocked one and a finished one arrive as different rows, and you answer the blocked one from the row rather than by going to it.

The Deck holds sessions that report for themselves, which today means Claude Code. A tile running anything else keeps every other signal Dispatch has. See what a tile running something else gets at the foot of this page.

The activity chip

The top bar carries a chip beside the 🔔: a gold count of Claude Code sessions waiting on you and a green count of ones that have finished, across every workspace.

Click it, or press Ctrl+Shift+A, to open the Deck.

It only counts what you have not seen. A session you are looking at is never in the count, and one drops out the moment you visit it, so the chip reads · all quiet whenever you are on top of things. A terminal minimized into the bar does not count as seen: you can read the card, not the work.

View ▸ Activity chip puts the counter away; the shortcut still works.

The list

Waiting on you first, then Finished while you were elsewhere. Each row names the terminal, its project, and which workspace it is in.

Move between rows
Go there: switches tab, restores it if minimized, clears its flag
19
Take that option on the selected row
Send whatever you typed in the row’s reply field

Right-clicking a row gives you that terminal’s full menu without going to it first.

Everything still running is one collapsed line at the bottom, and everything you have already seen is another.

Each row says what that session is saying

A finished turn leads with the sentence it finished on, which the session reports itself when its turn ends. Nothing is guessed at.

A session waiting on a permission prompt leads with the question, and shows the rows of its own screen that question was read from underneath it. So the summary is never the only thing you see: the command it wants to run is on the row next to the button that would approve it.

That reading is the one thing no session can report for itself, and it is the only thing Dispatch parses. It fails closed: where it can’t tell that a screen is asking something, you get the rows and no buttons, never a button for a question that was never asked.

And you answer it there

Each row has a reply field and a button per option the session printed, labelled with that option’s own words.

Answering does not close the Deck and does not move the row. Rows arrive while it is open; none leave until you close it. A terminal closed while you are looking at it stays too, struck through, with its controls gone.

The marks appear everywhere

Each state has one glyph and keeps it everywhere:

Bell
Waiting on you
Tick
Finished
Trace
Still working
Square
The shell exited

A workspace tab counts what has rung for you in gold, and takes a green tick once a Claude Code session on it reports that it finished; the sidebar row for the project marks itself the same way. So you can see where the work landed without opening anything.

Installing the hooks

Nothing above works until Claude Code is told to report, which is one click.

Open the Marketplace chip at the right-hand end of the top bar, press AI tools, and install the Claude Code integration. It sets up the hooks and the MCP entry together, in one card and one click.

What that writes: seven entries into ~/.claude/settings.json, with a backup kept beside it and everything else in the file left alone. Afterwards the sidebar’s MCP button reports both halves, and Activity hooks in its menu is where you repair them if Dispatch moves.

Restart any sessions already running. They keep the environment they started with, so they will not report until they are started again.

You install it once for your user and it fires for every session on the machine, which sounds broader than it is: a claude started outside Dispatch has no tile id and no token to send, so the endpoint answers it and does nothing. Nothing here changes how Claude Code behaves anywhere else.

What it is doing underneath: Dispatch runs a small loopback endpoint, and Claude Code posts to it when a turn starts, when it ends, when a permission prompt appears and when a session goes away. That is why a row can say finished the moment a turn ends rather than twenty seconds later, and why waiting on you means a dialog is up rather than that something has gone quiet.

If you had preferredNotifChannel: terminal_bell set purely to make Dispatch notice things, you no longer need it. The bell still works and still raises a toast; it is no longer the only way Dispatch can tell.

What a tile running something else gets

The chip and the list hold sessions that report for themselves, and the hooks above are a Claude Code feature. Run Codex, Gemini CLI, Aider or a plain shell in a tile and you keep everything else:

  • The tile goes gold and pulses when whatever is in it rings the terminal bell, and you get a Windows toast if you were not looking at it.
  • Its sidebar row carries a mark, and its workspace tab counts it, so you can still tell which tab is asking for you.
  • The tile and its minimized card say where it stands: still running, waiting on you, done and quiet for four minutes, or finished with the shell exited.
  • dispatch_wait still wakes on it: until: "attention" for the bell, until: "idle" for a session that has stopped printing, until: "exited" for a shell that has ended.

What it will not do is add to the chip’s count or turn up as a row in the Deck. That is not a setting you are missing: a shell that prints a prompt and sits there reads as done after 20 seconds, and a dozen of those bury the two rows that matter.