DoneWhen plugin
DoneWhen keeps agent work in tickets with checklists and MCP: the server will not close a ticket while any checklist item is open
- 66 ★ on the repository
- Last commit
Extended access
Why this level
- An MCP token reads and changes tickets and documents in workspaces, and a pinned token limits access to one workspace
- The server holds project specs and documents, and a real deployment needs HTTPS and protected secrets
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add plugins/donewhenDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- An MCP token reads and changes tickets and documents in workspaces, and a pinned token limits access to one workspace
- The server holds project specs and documents, and a real deployment needs HTTPS and protected secrets
This is third-party code. Review the repository files before installing.
What it does
DoneWhen is a Go issue tracker that stores the work of AI agents as tickets. You run it yourself with `docker compose up -d --build`, create the first user with `donewhen user` and open the web interface on port 8090. The agent writes a ticket as a full spec with a done-when checklist and ticks items as it works, while you follow progress on the board. The server refuses to move a ticket to "In Review" or "Done" while a checklist item is open. A human then approves the work from the Inbox. Commits, branches, pull requests and engineering documents with Mermaid diagrams attach to the ticket, so in the morning you can see what the agent built and why. DoneWhen connects to Claude Code in two ways. The MCP server lives at `/mcp` over Streamable HTTP with a bearer token: `donewhen token` mints it, and a pinned token opens just one workspace. The plugin from the same repository adds the `/dw` command, a menu inside Claude Code where you browse tickets and start work on one without a model call.
Who it is for. Developers and small teams whose agents work overnight and who need a record of what was done and a human approval of the result in the morning.
Good fit when
- The agent works overnight and in the morning you need to see what it built and whether the task is really finished
- Closing a ticket has to depend on the checklist: the server refuses while any item is open
- Commits, branches and an engineering document with a diagram have to hang on the ticket so you can return to the work a month later
- You want to pick a ticket from the `/dw` menu in Claude Code and start work without spending extra tokens
- An agent works in one repository and gets a pinned token for a single workspace
Not a fit when
- The machine has no Docker with the Compose plugin and no Git: the setup is written around `docker compose`
- You want a managed service with no server of your own: you install and run DoneWhen yourself
- The team plans sprints with estimates: the board is continuous-flow with no sprints and no estimates
- The AGPL-3.0 license does not fit your product
Example request
Take ticket DEMO-3 from DoneWhen, work through it by its checklist and tick each item as you goLimitations
- DoneWhen runs on your own server: it needs Docker with the Compose plugin and Git, secrets live in `.env`, and the server rejects the placeholder session secret from the example unless `DONEWHEN_ENV=dev`.
- In `prod` mode cookies require HTTPS, so a real server needs its address and certificate set up from the self-hosting guide.
- The plugin reads the REST API directly and needs `DONEWHEN_URL` and `DONEWHEN_TOKEN`; the most reliable place is the `env` block of `~/.claude/settings.json`, followed by a Claude Code restart.
- A normal token reaches every workspace of its owner, so an agent in a single repository should get a pinned token.
How to disable. Remove the plugin with `claude plugin uninstall donewhen@donewhen` and the MCP server with `claude mcp remove donewhen`. Stop the server itself with `docker compose down`.
FAQ
How do I install DoneWhen?
Clone the repository, copy `.env.example` to `.env`, set the secrets and run `docker compose up -d --build`. Then create a user with `docker compose exec donewhen /app/donewhen user you@example.com "password"`.
How do I connect DoneWhen to Claude Code?
Mint a token with `docker compose exec donewhen /app/donewhen token claude` and register the server with `claude mcp add --transport http`, giving the `/mcp` address and an Authorization header. The tools appear as `mcp__donewhen__*`.
What does the /dw command do?
It opens a menu inside Claude Code: open tickets 15 to a page, plus the description and checklist of the one you pick. The `g` key starts work and `f` puts the text in your prompt box. Browsing makes no model call.
When does a ticket reach review?
Only when no checklist item is open: the server refuses a move to "In Review" or "Done". A move to "Blocked" needs a reason.
Can I try it with sample data?
Yes. `docker compose exec donewhen /app/donewhen demo` creates a Demo workspace with about 24 tickets in every state and three tickets waiting for your review.
Discussion
No questions or reviews yet.
Related
PluginsA self-hosted issue tracker and wiki on Cloudflare with MCP: 126 tools, issue leases and file claims for several agents
A plugin and MCP for a self-hosted task board where an agent claims a card, does the work and hands off with token telemetry.
Doska kanban MCP server: an agent creates cards, moves them across columns, sets deadlines and searches every board
A terminal kanban board in Python that Claude Code and other agents can read and change through a CLI or MCP
The official Taskade MCP and plugin: an agent manages workspace projects, tasks, automations and AI agents.
YouTrack MCP gives agents YouTrack Cloud and Server issues through the REST API: search, create, update and comment.
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| DoneWhen (this card) | no | 66 | ||
| kata | no | 518 | Also a local tracker for agents; DoneWhen adds a server-side checklist gate and a human approval. | |
| Scrumboy | yes | API key | 450 | Scrumboy runs sprints and metrics, while DoneWhen is continuous-flow and records agent work. |
README in short
The README explains the author's motive: in the morning it is unclear what agents built. It then covers features, the Docker setup, connecting MCP and the `/dw` plugin, pinned tokens and demo data.