Ducklab
What it does
Multi-LLM dev harness, MCP-operable: bugs, cycles, gates. Verdicts are exit codes, never opinions.
- Connects Läuft auf deinem Computer
- Account or key No key needed
- Category Suche & KI-Gedächtnis
Installation
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
3/3 Prüfungen bestanden · Läuft auf deinem Computer
Zuerst: Welche KI nutzt du?
Wähle deine App, dann erscheinen die Schritte unten.
Klappt mit Claude, aber erst etwas vorbereiten
Kein Schlüssel, nichts zu installieren · Nur in der Claude-App für den Computer (Windows oder Mac), nicht im Web oder auf dem Handy
Installationsdatei des Anbieters herunterladen
Die .mcpb-Datei des Entwicklers herunterladen
Die .mcpb-Datei kommt direkt vom Anbieter; wir ändern sie nicht
Datei doppelklicken, dann in der Claude-Desktop-App Install klicken
Ausprobieren
Nutze Ducklab und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn Claude sagt, dass es Ducklab nutzt, oder ein Werkzeug von Ducklab in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
ChatGPT kann Ducklab noch nicht verbinden
Ducklab läuft auf deinem Computer, aber ChatGPT verbindet nur Server, die im Web laufen
Das kannst du stattdessen tun
A · Eine App nutzen, die Ducklab verbinden kann
- Kein Schlüssel, nichts zu installieren · Nur in der Claude-App für den Computer (Windows oder Mac), nicht im Web oder auf dem Handy
B · Andere in Suche & KI-Gedächtnis, die mit ChatGPT funktionieren
Aus den meistgenutzten derselben Kategorie, nur solche, die per Adresse ohne Schlüssel verbinden
- Context7✓ ChatGPT
- AIHOT✓ ChatGPT
- Sui Knowledge Base (kapa.ai)✓ ChatGPT
Claude Code kann Ducklab noch nicht verbinden
Der Anbieter liefert nur ein Installationspaket für die Claude-Desktop-App
Das kannst du stattdessen tun
A · Eine App nutzen, die Ducklab verbinden kann
- Kein Schlüssel, nichts zu installieren · Nur in der Claude-App für den Computer (Windows oder Mac), nicht im Web oder auf dem Handy
Cursor kann Ducklab noch nicht verbinden
Der Anbieter liefert nur ein Installationspaket für die Claude-Desktop-App
Das kannst du stattdessen tun
A · Eine App nutzen, die Ducklab verbinden kann
- Kein Schlüssel, nichts zu installieren · Nur in der Claude-App für den Computer (Windows oder Mac), nicht im Web oder auf dem Handy
VS Code kann Ducklab noch nicht verbinden
Der Anbieter liefert nur ein Installationspaket für die Claude-Desktop-App
Das kannst du stattdessen tun
A · Eine App nutzen, die Ducklab verbinden kann
- Kein Schlüssel, nichts zu installieren · Nur in der Claude-App für den Computer (Windows oder Mac), nicht im Web oder auf dem Handy
Auf einen Blick
Welche Apps ihn nutzen können
Basierend darauf, wie sich dieser Server verbindet, und auf der eigenen Doku jeder App, geprüft am 10. Nov. 2026.
Laufen auf deinem Computer in
ClaudeGooseLM StudioMsty StudioCherry StudioVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
Was er kann
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Basischecksi
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 12. Nov. 2026
- ✓ Bestanden
Entwickler passt zum Repo
Der Registry-Name wurde mit dem GitHub-Konto jrullan bestätigt, dem das Repo gehört
- ✓ Bestanden
Wird noch gepflegt
Code zuletzt geändert: vor 12 Tagen
- ✓ Bestanden
Hat eine Lizenz
Nutzt Apache-2.0
- – Nicht zutreffend
Endpunkt antwortet
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
- – Nicht zutreffend
Anmeldung mit OAuth
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
- … Noch nicht geprüft
Keine versteckten Anweisungen in Tool-Beschreibungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Diskussion
Fragen, Tipps teilen oder melden, dass etwas nicht geht. Sortiert nach „hilfreich“.
Noch keine Beiträge. Stell die erste Frage oder teile einen Tipp.
Beiträge hier stammen von Nutzern, nicht vom PopNx-Team.
Nutzerbewertungen
Noch keine Bewertungen
Im Vergleich mit anderen in Suche & KI-Gedächtnisi
- Mehr Sterne als 92 % der anderen 5986 Server in dieser Kategorie
- Neuer in der Registry veröffentlicht als 31 % der anderen 5986 Server in dieser Kategorie
- Basischecks gleich gut wie oder besser als bei 100 % der anderen 5986 Server in dieser Kategorie
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Häufige Fragen
Ist Ducklab sicher?
Er hat 3 von 3 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Welche Schlüssel oder Codes braucht er?
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Läuft er auf meinem Computer oder in der Cloud?
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Wird er noch gepflegt?
Das GitHub-Repo wurde zuletzt vor 12 Tagen geändert, und die neueste Version (0.7.0) kam vor 3 Monaten in die Registry.
Welche Apps können ihn nutzen?
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du MCPB auf deinem Computer.
Was kann ich stattdessen nutzen?
In derselben Kategorie: Context7, Codebase Memory, Ruflo
Andere in derselben Kategorie
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Ruflo
Agent teams, swarms, memory and hooks for Claude Code and Codex, served over MCP.
README vom Entwickler
README öffnen
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
Ducklab
A self-hosted harness that runs a project's full development cycle with several LLMs in fixed roles, under test gates that only you sign.
In one block: self-hosted development harness (Go engine + CLI + desktop, Linux first) · brief → requirements → spec → plan → build → review → release · verdicts are exit codes, never model opinions · local models first (llama.cpp, vLLM) beside any OpenAI-compatible or Anthropic endpoint · operable by humans or by other agents over MCP with recorded, attributed decisions · Apache-2.0 · develops itself (the run records in .ducklab/ are the receipts). Agents: start at AGENTS.md and llms.txt.
You give it a brief. It writes requirements, a spec and a plan; builds tasks with one model or several arguing; runs your project's real test gate; and stops for you before anything is committed. Every model call is logged. No model ever decides a verdict.
A real council intake, recorded live and sped up: the architect streams the draft, a different model reviews it, the budget ticks in cents — and the run stops at your gate. Total cost of what you just watched: $0.07.
It was built for local models first. Two of the seats that built most of it are a vLLM box on the LAN and a llama.cpp server on localhost, both priced at zero; hosted models sit beside them in the same roster, measured by the same evidence.
Why this exists
Most agentic coding tools assume one strong model and trust it. Ducklab assumes several cheap models and trusts none of them:
- The gate decides, never a model. A verdict is a command's exit code. A test-first run measures a green baseline before any test is written, the red over the new test after, and every accept reproduces the gate from a clean checkout of the committed sha — nothing lands that did not reproduce, and an accept whose reproduction fails takes its own commit back.
- Decorrelation everywhere. A different model reviews; a reviewer never learns who wrote the code (absent from the payload, not hidden in the UI); tournament judges choose blind; council critics read the draft, not each other.
- Work is a contract. A task's deliverables are the implementer's numbered checklist; it reports on each by number, the reviewer checks each against the diff, and an undelivered item summons the rubber duck — an advisor seat that wakes only on measured distress (brake refusals, failure streaks, red gates) and answers
none, a note that sends the implementer straight back to work, orstop. - Seats are chosen on evidence. Every duckling carries a scorecard — in-seat pass rate from your own runs, cost per run, coding index — and the roster board suggests seats from it, with the ranking criteria yours to reorder. Suggestions are rare and justified: pass rates rank by their Wilson lower bound, three runs minimum, locals never win on a $0 price.
- Nothing is unbounded. Turns, tokens, cost, wallclock, tool output, shell commands — every ceiling visible and liftable mid-run, on the record.
- Your documentation is not bounded by the model's window. Attach a wiki to a stage and a big seat reads it whole; a small seat gets each document digested to fit, the full text one
ref_readcall away, and the gate names any document nobody opened. A 32k local model can be briefed by a quarter-million characters of reference material — the harness carries the working memory.
The record does not round up: every run with its verdict, its cost, and whether its accept reproduced green from a clean checkout .
Ducklab is developed inside ducklab. The plan, the bugs, the releases and the accepted tasks went through its own loop, driven by the same local and hosted models it measures; recent features (per-run worktrees, the merge-proof accept, the acceptance receipts, the governance write guard) were built by the duck and gated by a person. To check the claim yourself:
git clone https://github.com/jrullan/ducklab && cd ducklab
go build -o ducklab-cli ./cmd/ducklab for r in .ducklab/runs/*/receipt.json; do ./ducklab-cli proof verify "$r"; done
Receipts ship with every accept since v0.7.0: the committed sha, the gate command, its exit code, and the clean-checkout reproduction verdict — facts a third party re-derives, never assessments.
Status
v0.7.0 plus the phase-3 work now on main: every build and test run executes in its own git worktree (your checkout is never touched), acceptance rebases the run branch, re-runs the gate on the rebased commit and merges fast-forward only, and an operator can re-close a finished run as landed when its work reached main outside the engine. Before that: seven stages, five modes, the roster board with measured scorecards, reference documents with automatic digestion, skills managed from the desktop, a seated consultant chat (vision verified before images are sent), bug reports with screenshot evidence, adopt surveys with a deterministic coverage check, provider-aware queueing that states why a run waits, escalation suggestions when a seat measurably hits its ceiling, acceptance receipts (ducklab proof verify), releases, autopilot, a CLI, a desktop app, and an MCP server — in the official MCP registry as io.github.jrullan/ducklab — so another model can operate the loop with recorded, attributed decisions.
docs/status.md tracks all acceptance criteria and does not round up. Where code and spec differ, the difference is recorded in docs/decisions/.
Install
Needs Go 1.25+, Node 22+ for the desktop, and git.
Linux
The CLI and engine are pure Go. The desktop is a Wails v3 app and needs the GTK/WebKit development packages:
sudo apt install libgtk-3-dev libwebkit2gtk-4.1-dev # Debian/Ubuntu names
make desktop && make install
On Ubuntu 24.04+ the desktop also needs an AppArmor profile — see decision 0003 and packaging/apparmor/.
macOS
xcode-select --install # the desktop build links against WebKit
brew install go node make desktop && make install
Honesty note: ducklab is developed and exercised daily on Linux. The CLI and engine compile-check for darwin/arm64 on every make cross, but no desktop build has been verified on a Mac yet — the first person to try it is the test, and make install gives you the CLI and engine either way. Please report whatever breaks.
Both
make install installs to ~/.local/bin — make sure it is on your PATH. It warns when the desktop binary predates frontend/src, because it will happily install a stale one.
Frontend development without the desktop
To exercise the frontend in a browser, run the engine and Vite in separate terminals, then open the browser with its connection details. The fake engine is the quickest option; the same flow can use a real engine with its opt-in CORS flag:
# Fast, scripted data (recommended for UI work)
go run ./cmd/fake-engine --port 8787 --token fake-token npm run dev --prefix frontend
open http://localhost:5173/?engine=http://127.0.0.1:8787&token=fake-token
Or use real engine data (development only; keep the origin explicit)
go run ./cmd/ducklab-engine --allow-origin http://localhost:5173 npm run dev --prefix frontend
open http://localhost:5173/?engine=http://127.0.0.1: &token=
The real engine remains same-origin restricted by default. --allow-origin enables exactly one browser origin and is intended for local frontend development and visual audits; it does not change authentication or the loopback bind. Without this flag, a browser's cross-origin failure can look like a dead session.
The engine and token query parameters are available only in Vite dev builds. They can also be supplied as VITE_DUCKLAB_ENGINE and VITE_DUCKLAB_TOKEN environment variables. The desktop shell continues to use its injected window.ducklab connection.
Three binaries
| What it is | |
|---|---|
ducklab-engine | The daemon. Owns every run. Binds 127.0.0.1 only, bearer token rotated each start. |
ducklab | The CLI client. Holds no state; it asks the engine. |
ducklab-desktop | The desktop app. Also a client, also holds no state. Starts (or adopts) the engine itself. |
Provider keys come from the engine's environment at call time — export them before it starts, or launch the desktop through a wrapper that loads them from your keyring. The app tells you when the engine it adopted is missing a key this app has, with the restart button beside the words.
A cycle, end to end
From the desktop: on first launch, Now → Create your first project; afterwards Settings → Projects → New project, then Work → Documents → Intent → Add intention → Draft it. From a terminal:
cd ~/dev/myproject
git init # ducklab needs a git repo ducklab project init --name MyProject # auto-starts the engine if none is running
ducklab intake --from brief.txt # brief → requirements ducklab intent # your briefs, verbatim, and what each one changed ducklab spec # requirements → spec ducklab plan # spec → milestones and tasks
ducklab run T-001 # build it ducklab run accept r-20260729-... # commit it
ducklab review T-001 # read the commit ducklab release plan --bump minor # what shipped
Your words are part of the record: every brief is kept verbatim as an INT-nnn entry before any model reads it, and the requirements it added or changed point back to it — so a requirement can always answer "who asked for this, and in what words".
Each stage writes a .proposed file first and waits for you. accept promotes it; reject restores exactly what the run wrote and nothing else; "request changes" sends any draft — spec, plan, release notes — back with your note. Nothing is committed without you (or without the autonomy level you explicitly granted).
Reference documents ride any stage: --ref ~/wiki/product/ (or the attach door in the desktop) loads files or whole directories as background for the architect — grounded by two rules the prompt states outright: the approved requirements own the scope, and where a reference and the code disagree, the code is the truth. When the corpus outgrows the seat's context, each document is digested once (cached by content hash), the full text stays reachable through the ref_read tool, and the proposal card lists any document no seat ever opened.
Adopting an existing codebase works the same way: intake reads the code and writes as-built requirements, the spec marks its sections as-built, and the plan stays deliberately empty — new work then enters through bug reports and plan amendments, which is how ducklab itself is developed.
Your project declares its own truth in .ducklab/project.toml: the gate ([verify] — with link_deps and setup for what a clean checkout needs), how the app launches ([run] with a preflight), and how the project's own binaries are rebuilt ([install]) so the whole loop runs without leaving ducklab. Stack capabilities propose run.command choices from build metadata (for example Meson executables, Cargo bins, Go main packages, or Node scripts), b