Nothing to hand? Load the — six failures across three files that really are independent — or the , where four failures share one fixture and the right answer is do not fan out.
Paste the work — the prescan is free
No upload, no AI: the prescan splits your paste into work items in the browser and reads the file paths out of the stack traces. Then the flags — the same file under two items, the same error signature repeated, a shared fixture such as conftest.py, a single-writer resource such as a migration or poetry.lock, a shared port or database, an explicit blocked by, an item too thin to brief an agent with, an item as broad as “fix all the tests”, and timing or race wording. Each group explains why it matters for fanning out. This part costs nothing and happens while you type.
The AI plans the fan-out — this is the metered part
First the honest question: should you parallelize at all? The plan takes a posture — parallel-ready, partial-parallel or sequential-first — and says why. Then the independent domains, one focused brief per domain with scope, goal, the context the agent needs, the constraints it must respect and the exact output it must return, a conflict watch list for anything two agents would both touch, and the items held back for a later round. Every prescan flag is confirmed or explicitly set aside, and briefs may only cite files and items that appear in your paste. Pricing is honest: a worst-case amount is reserved before the run and only what the run actually uses is charged — the meter next to the button shows both.
Dispatch, then re-plan
The primary export is the dispatch block: every ticked brief in one message, because multiple dispatch calls in a single message run in parallel and one per message runs sequentially. Untick any brief you are not sending this round and every export follows. There is also each brief on its own, a tickable checklist, the briefs as CSV, and Markdown or JSON of the whole plan. When the agents come back, press Set up the next round: it switches Round to re-plan, moves the held-back work into the work list and lays out one line per agent for you to fill in what it reported. Run the next wave, then Compare it against the earlier plan from Past plans to see which domains survived, which conflicts cleared and which held-back work was promoted — all free, no second run needed to see the difference.
Derived from the @obra/dispatching-parallel-agents skill (MIT license).
Should I always fan out work across parallel agents?
No, and refusing is one of the two answers this app gives. Fanning out is wrong when the failures are related and fixing one fixes the rest, when understanding the problem needs the whole system, when the work is still exploratory, or when two agents would share state — the same file, the same fixture, the same migration, the same database. Dispatch Desk takes a posture of parallel-ready, partly parallel or sequential-first and names the reason, so “do not split this” is a first-class result rather than an empty plan.
Why does each agent need its own brief instead of the whole log?
Because agents get isolated context: they never inherit your session history, so a brief that assumes the agent already knows something is a broken brief. Each brief here is self-contained — scope, goal, the context that agent needs, the constraints it must respect, and the exact output it must return — and briefs may only cite files and items that appear in your paste.
What does the free prescan actually check?
It runs entirely in your browser with no upload and no AI. It splits your paste into work items, reads file paths out of stack traces, and raises eleven families of mechanical flag: the same file under two items, a repeated error signature, a shared fixture such as conftest.py, a single-writer resource such as a migration or a lockfile, a shared port or database, an explicit “blocked by”, an item too thin to brief an agent with, an item as broad as “fix all the tests”, timing or race wording, a single-domain paste, and a plain secret that should never reach a brief. The plan must then confirm or explicitly set aside every flag.
Can I use it for the second wave, after the agents report back?
Yes — that is what Round: re-plan is for. Set up the next round moves the held-back work into the work list and prepares one line per agent for what it reported, so you are not rebuilding the input from memory. After the new plan lands, Compare shows it against any earlier plan in your history: domains added, kept and dropped, conflicts resolved or still open, and which held-back items were promoted into briefs.
What does it cost, and can I try it without paying?
The prescan is free and unlimited, and two full worked examples — a three-cluster refactor that really is parallel, and a suite where four failures share one fixture and the right answer is not to fan out — replay complete saved plans at no charge. Only the AI plan itself is metered: a worst-case amount is reserved before the run and only what the run actually uses is charged, with both shown on the meter next to the button before you commit.
Where are my past plans stored?
Signed in, every completed plan is written to your SkillSafe account and appears on any device you sign in on; this browser keeps a mirror so the list paints instantly, and anything created while signed out is uploaded when you sign in. Signed out, plans stay in this browser only. Restoring a plan also puts the work list, the context and the form settings back, ready to revise.