Skip to content
niki
v0.7.0 shipped — plan mode, spend caps, headless CI contract

One sentence in,
a verified pull request out.

Describe a task. Niki plans, codes, tests and reviews it across four independent agents — then hands you a reviewable branch with the full decision trail.

  • Apache-2.0 open source
  • Rust single binary
  • BYOK no telemetry

Watch one sentence become a reviewable branch.

Niki is the open-source multi-agent coding pipeline. No shared conversation, no confirmation bias: each stage is an independent agent that exchanges typed artifacts with the next.

  • You write the task — niki run "…"
  • Planner, Coder, Tester and Reviewer each do their job
  • You review the finished niki/<id> branch

See how each agent works

niki run — actual output
$ niki run "Add a /health endpoint" --project ./my-app [Planner]		done — spec: 1 file to modify[Coder]		done — changed 1 file · index.js [modified][Tester]		done — 8/8 tests passed[Reviewer]done — approved · correctness 10/10 · quality 8/10 [NIKI]		task complete — branch: niki/6d281d6d · verdict: approvedreport: artifacts/report.md · patch: artifacts/changes.patch

// real output from niki 0.7.0 — smoke-test task

the multi-agent pipeline

live run · typed artifacts, not chat
taskAdd a GET /health endpoint returning { status: "ok", uptime }
Plannerdone

Reads the task and your repo, produces a written implementation spec — files, steps, acceptance criteria.

artifactplan.json
Coderdone

Implements the plan inside a hermetic sandbox copy of your project. Never touches your working tree.

artifactchanges.patch
Testerdone

Runs the project's own test suite — plus generated regression tests — in the same isolated sandbox.

gate8/8 tests passed
Reviewerapproved

Audits the diff for correctness and quality. Bounces work back to the Coder until it passes.

verdictcorrectness 10/10
Verified branchdone

A reviewable branch with a real commit, the full patch, a run report and per-agent artifacts.

branchniki/6d281d6d
niki/6d281d6dreport.md · changes.patch · artifacts/*.json
Explore the pipeline

why niki

01

Multi-agent, not monolithic

Planning, coding, testing and review are separate agents with their own prompts, models and context. Each does one job well.

02

Hermetic by default

All work happens in a rootless Podman or Docker sandbox against a copy of your repo. Network egress blocked unless you allow it.

03

Output is a git branch

You get niki/<id> with a real commit, a diff and artifacts — reviewable like any human PR. Nothing lands on main until you say so.

04

Reviewer-driven revisions

The Reviewer bounces work back to the Coder until it's approved — up to max_revision_rounds. You review a finished result.

05

Fully auditable

report.md, changes.patch and per-agent JSON artifacts capture what every agent decided, and why.

06

BYOK & provider-mixing

Bring your own keys. Give each agent a different provider — a strong reasoner for Planner, a cheap model for Tester.

Proof, not promises.

Every run leaves behind the entire decision trail: a reviewable branch, a unified diff, a human-readable report and per-agent JSON artifacts. Failing test suites block the branch unless you explicitly override.

  • Reviewable niki/<id> branch with a real commit
  • changes.patch — the unified diff, inspectable anywhere
  • report.md — human-readable run report with verdict
  • artifacts/*.json — what each agent decided, and why
  • niki audit — consolidated compliance bundle

Read about the audit methodology

Niki dashboard showing the diff of a completed run, with changed files and the generated patch
niki dashboard — the diff of a finished run

hermetic by default

Security model

Sandboxed. Isolated. Auditable.

Agents work inside a rootless container with dropped capabilities and a read-only root filesystem. Egress is blocked unless you allow it. Your working tree is never touched mid-run.

  • Rootless Podman or Docker, CapDrop ALL, read-only rootfs
  • Network egress blocked by default — allowlist to open it
  • Command deny-lists: rm -rf / and curl | sh blocked by policy
  • Hard-enforced spend cap aborts before a branch is created
  • Fail-closed permission modes for headless CI
niki doctor
$ niki doctorinstall		ok	niki 0.7.0config		ok	niki.toml foundproviders	ok	anthropic, ollamasandbox		ok	podman · niki-sandbox:24.04security		ok	egress blocked · capdrop all✓ ready to run
niki.toml — sandbox policy
[sandbox]
network_disabled = true
cap_drop = "ALL"
rootfs = "read-only"
deny = ["rm -rf /", "curl | sh"]

byok · any provider, per agent

All integrations

Niki ships no proxy and phones home to no one. Point each agent at the provider that fits its job — or run everything on a local Ollama for $0.00.

niki.toml — per-agent models
[agents.planner]
provider = "anthropic"
model    = "claude-sonnet-4"

[agents.coder]
provider = "anthropic"
model    = "claude-sonnet-4"

[agents.tester]
provider = "openai"
model    = "gpt-4o-mini"   # cheap, test-gen is easy

[agents.reviewer]
provider = "anthropic"
model    = "claude-sonnet-4"

terminal-native · ide-ready

tui

Interactive TUI

niki chat streams agent state live — a unified status grammar, no flicker, reduced-motion aware.

ci

Headless CI

niki run --bare --output-format json gives a stable, pipe-pure JSON envelope. OTLP trace export included.

ide

ACP / IDE

niki acp speaks the Agent Client Protocol — drive Niki from Zed and other ACP-compatible editors.

verified output, honest numbers

4 agents

Independent Planner → Coder → Tester → Reviewer

1 branch

Reviewable niki/<id> output per run

0 telemetry

No hosted proxy, no phoning home, BYOK

$0.00

On local Ollama; ~a cent on frontier models

Free software, honest claims.

Apache-2.0, built in Rust, one binary. Every marketing claim is mapped to the code that backs it — and corrected when it doesn't. No telemetry, no hosted middleman, no training on your code.

$0. Pay your provider, not us.

Niki is free open-source software. You bring your own keys — a real task costs about a cent on a frontier model, or nothing on local Ollama. Spend caps keep it bounded.

Delegate the task. Review the branch.

First verified branch in under five minutes — no container runtime required to start.

or, zero-setup first run (worktree backend + local Ollama)
curl -fsSL https://raw.githubusercontent.com/RavaniRoshan/niki/master/scripts/install.sh | bash
niki init --interactive
niki run "Add a /health endpoint" --backend worktree

niki