Quickstart
Get up and running with NIKI in under 5 minutes.
Run your first NIKI task and review the resulting branch or evidence bundle.
Prerequisites
- Go: Go 1.24+ installed.
- Container Engine: Podman (preferred) or Docker. Without
DOCKER_HOST, socket discovery tries rootless before rootful endpoints. - LLM API Key: At least one API key from Anthropic, OpenAI, OpenRouter, Google, or a local Ollama instance.
Step 1: Build the Sandbox Image
NIKI executes code and test suites inside a hardened container image with git, node, npm, python3, and go pre-installed.
# Build sandbox image using Podman or Docker
podman build -t niki-sandbox:24.04 -f docker/Dockerfile .
# or: docker build -t niki-sandbox:24.04 -f docker/Dockerfile .
Step 2: Configure Your API Key
Create niki.toml in your project root or set environment variables:
cp niki.example.toml niki.toml
Set your API key via environment variable (takes precedence over config file):
export ANTHROPIC_API_KEY=sk-ant-...
# or export OPENAI_API_KEY=sk-...
# or export GOOGLE_API_KEY=AIza...
Step 3: Run Your First Task
Describe what you want to implement in plain English:
niki run "Add a GET /health endpoint returning { status: 'ok', uptime }" --project ./my-app
A full multi-agent run with a resolved, green test command can look like this:
◈ ⟠ ◉ ◆ NIKI
"Add a GET /health endpoint…"
[Planner] Done · Spec: 1 file to modify
[Coder] Done · Changed 1 file · src/main.go [modified]
[Tester] Done · 8/8 tests passed
[Reviewer] Done · Approved · correctness 10/10 · quality 9/10 · coverage 10/10
[NIKI] Task complete · Branch: niki/6d281d6d · Verdict: Approved · Revisions: 0
Step 4: Review and Merge
NIKI creates a branch only for a non-empty diff with no failing test or mutation gate. Dry-run/plan mode creates no branch, and --force records a branch over failed verification as unverified.
When a branch is created, switch to it in your target project to inspect the code:
git -C ./my-app switch niki/6d281d6d
View the complete decision audit report:
niki report 6d281d6d