ducklab — MCP server for Claude Code: gated dev loop
A self-hosted harness that walks a project from brief to release with several models in fixed seats. Whether work passes is decided by a test command's exit code, not by a model.
Open on GitHubWhat ducklab does
The engine is written in Go, with a CLI and a desktop app alongside it. Models take fixed roles: one drafts requirements, another reviews them, a third turns the plan into tasks. None of them rules on the outcome — your test gate does. Before anything is committed the run halts and waits for a person.
Local models sit in the same roster as hosted ones. llama.cpp and vLLM are supported, plus any endpoint speaking the OpenAI or Anthropic protocol. Every model call is logged, and decisions carry attribution, so a second agent can drive the loop over MCP and leave a trail. Accepted tasks come with a receipt naming the commit and the gate result.
Building it takes Go 1.25+, Node 22+ and git. The desktop is a Wails v3 app: on Linux it wants the GTK/WebKit packages, and Ubuntu 24.04+ also needs an AppArmor profile. Day-to-day work happens on Linux. The CLI and engine are compile-checked for darwin/arm64, yet nobody has built the desktop on a Mac.
What it helps with
- turn a brief into requirements, a spec and a plan
- run the project's real tests before a commit and stop for a human decision
- compare local and hosted models by in-seat pass rate
- let a second agent drive the dev loop over MCP
- brief a small model with a large set of reference documents
Example prompts for the agent
- Run the development cycle from the brief in
brief.mdand stop before committing - Show the receipt for the last accepted run and verify the gate reproduces
- Set up the roster with a local llama.cpp server next to a hosted endpoint
How to install ducklab
Install
The MCP registry has no launch command for it: see the repository README
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about ducklab
How do I install ducklab in Claude Code?
There is no install command for Claude. You build the server from source: clone the repository, compile the CLI with go build -o ducklab-cli ./cmd/ducklab, then wire the MCP server into your agent.
What does ducklab do?
It carries a project through stages from brief to release, assigning models to fixed roles. A test command's exit code decides the verdict, and the run pauses for human approval before committing.
Which models does ducklab support?
Local llama.cpp and vLLM servers, and any endpoint compatible with OpenAI or Anthropic. Local and hosted seats share one roster and are judged by the same runs.