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
Plugin

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
All reasons and checks

johnreginald/donewhen

Install

Works in

In your terminal, with SkillFoxx CLI

npx skillfoxx add plugins/donewhen

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended 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 go

Limitations

  • 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.

Plugins

A self-hosted issue tracker and wiki on Cloudflare with MCP: 126 tools, issue leases and file claims for several agents

MCP serverBroad access66Repository stars

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.

PluginExtended access120Repository stars
Official

Doska kanban MCP server: an agent creates cards, moves them across columns, sets deadlines and searches every board

MCP serverExtended access305Repository stars

A terminal kanban board in Python that Claude Code and other agents can read and change through a CLI or MCP

CLIExtended access289Repository stars
Official

The official Taskade MCP and plugin: an agent manages workspace projects, tasks, automations and AI agents.

MCP serverBroad access169Repository stars

YouTrack MCP gives agents YouTrack Cloud and Server issues through the REST API: search, create, update and comment.

MCP serverExtended access100Repository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
DoneWhen (this card)no66
katano518Also a local tracker for agents; DoneWhen adds a server-side checklist gate and a human approval.
ScrumboyyesAPI key450Scrumboy 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.

README badge

Report a problem