The multi-agent coding pipeline.
Niki is open-source software that turns a described task into a reviewable branch: independent planner, coder, tester and reviewer stages, isolated execution, and an artifact trail you can read afterwards.
What it is
Niki is a Go CLI with one job: take a sentence, return a branch. It runs a pipeline of LLM stages — Planner, Coder, Tester, Reviewer — each with its own prompt, its own model and its own fresh session. Stages exchange typed artifacts, not a shared conversation.
The output is boring on purpose: a niki/<id> branch and a changes.patch, alongside a report.md and per-stage JSON kept outside the diff. A branch is only created after a non-empty change and a passing test run. Nothing lands on main until you say so.
$ niki run "Add a /health endpoint" --project ./my-app# … planner, coder, tester, reviewer in one sandbox …✓ Branch: niki/6d281d6d · Verdict: Approved
What's in the box today
Plan mode
niki plan researches and writes a reviewable plan.md without executing anything. Approve it with niki run "…" --plan <id>.
Isolated execution
Work runs in a Podman or Docker sandbox, with dropped capabilities and an egress policy you choose — fully open or fully blocked. Rootless is probed and reported, and the worktree backend runs host-local when you would rather skip containers.
Reviewer revision loop
The Reviewer bounces work back to the Coder for up to max_revision_rounds until it approves.
BYOK, 12 providers
Anthropic, OpenAI, Google, Ollama, OpenRouter, Zen, Kimi Code, KiloCode, NVIDIA, Groq, Together, DeepSeek, plus any compatible gateway via base_url.
Token metering, estimated cost
Provider-reported token counts per run, cost estimated from a dated rate table, and an explicit warning when a model is unpriced. A positive spend_cap_usd stops the run.
Interactive TUI
niki chat streams a unified status grammar, with session resume, memory, goals and slash commands.
Headless CI contract
--bare --output-format json is a stable, pipe-pure envelope for automation, with OTLP trace export.
ACP / IDE integration
niki acp drives Zed and other Agent Client Protocol clients.
Diagnostics & evals
niki doctor, niki smoke, and a seeded-defect niki eval harness with disclosure manifests.
What Niki is not
Not a replacement for your judgment
You review the diff and report before merging. Niki prepares; you decide.
Not four agents on every task
Auto topology collapses low-complexity work to planner plus a solo coder to save tokens. Set pipeline.topology = "multiagent" when you want the full chain every time.
Not a hosted service
No Niki account, no Niki servers. Outbound traffic is your provider calls, plus anything you explicitly enable: web research, knowledge-base URL fetches, remote MCP servers and optional OTLP export.
Not magic on huge codebases
Works best on tasks with a clear spec and a testable outcome.