Skip to content
Niki

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

Go CLI · local branch output

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.

one command
$ 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

everything below ships in the current release, no vaporware
plan

Plan mode

niki plan researches and writes a reviewable plan.md without executing anything. Approve it with niki run "…" --plan <id>.

sandbox

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.

loop

Reviewer revision loop

The Reviewer bounces work back to the Coder for up to max_revision_rounds until it approves.

byok

BYOK, 12 providers

Anthropic, OpenAI, Google, Ollama, OpenRouter, Zen, Kimi Code, KiloCode, NVIDIA, Groq, Together, DeepSeek, plus any compatible gateway via base_url.

meter

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.

tui

Interactive TUI

niki chat streams a unified status grammar, with session resume, memory, goals and slash commands.

ci

Headless CI contract

--bare --output-format json is a stable, pipe-pure envelope for automation, with OTLP trace export.

acp

ACP / IDE integration

niki acp drives Zed and other Agent Client Protocol clients.

evals

Diagnostics & evals

niki doctor, niki smoke, and a seeded-defect niki eval harness with disclosure manifests.

What Niki is not

boundaries are part of the product, these hold today
not

Not a replacement for your judgment

You review the diff and report before merging. Niki prepares; you decide.

not

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

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

Not magic on huge codebases

Works best on tasks with a clear spec and a testable outcome.