A per-repo queue of tasks with clear acceptance and deps. Claude, Codex, OpenCode, Cursor — whoever is free runs docket ready, picks the next one, and ships it on the group's branch.
Every task carries acceptance criteria and explicit deps. An agent picking it up knows what done means before it starts — no back-and-forth.
docket ready returns the next task whose deps are all done. Blocked is computed, never stored. Your agent pulls; nothing pushes.
Tasks batch into a group that maps to one branch and one PR. Commits carry [T-N], so git history is the audit log.
There's no orchestrator. Any agent — in any terminal, on any machine with the repo — asks for the next ready task, does it, marks it done. Deps unblock the next one. That's the whole protocol.
Because it's a CLI with --json everywhere, it works from a slash command, a hook, a cron, or a bash loop. Docket never talks to a model.
Returns T-7 — open, all deps done, highest priority first.
Marks in_progress and records who picked it. Others see it leave the queue.
Commits carry the task id. Git stays the history.
T-8 and T-9 become ready. The next free agent takes them.
One branch, one PR, four tasks. Summary aggregated from acceptance.
The Claude Code plugin exposes the CLI verbs as slash commands. It shells out to the docket binary on your $PATH — no model turn, no server.