Skip to content
Niki v0.7.0 — plan mode, honest metering, headless CI contract.Read the release notes
niki
Esc
navigateopen⌘Jpreview

Changelog

0.7.0 - 2026-09-08

September 8, 2026

Release

Release Notes

Mega-plan execution (30 commits): plan-mode approval gates, oracle integrity, honest cost metering, independence hardening, session control plane, headless CI contract, trust posture, automation, and TUI unification. All user-facing claims below are covered by tests, mock-LLM end-to-end runs, or the VHS visual gate (tests/visual/, 12 reference frames at 0.00% self-diff).

Added

  • Plan mode: niki plan researches without executing and writes reviewable plan.md; niki run --plan <id> executes the approved spec, skipping the Planner LLM call. Dry runs no longer create empty branch refs.
  • Session CLI: niki session list/show/checkpoints/undo/rewind with code+conversation/both restore modes and a dirty-tree guard.
  • User slash commands: .niki/commands/*.md (filename → /name) with description:/aliases: frontmatter, [commands] extra_dirs sharing, and niki commands list/show/expand.
  • Headless contract: niki run --bare (no memory/MCP/knowledge-URLs), --output-format json stable envelope (incl. error path), stdout pipe-purity (display mute + captured git stdio), OTLP trace export (--otel-endpoint, no new dependencies).
  • Oracle integrity: oracle_source (spec/derived/property) on every test case, reviewer oracle-check rule, no-healing rule, opt-in [agents.tester] mutation_command gate; red-suite/mutation failures block the branch unless --force (recorded as NOT verified).
  • Independence hardening: Red receives evidence-only diffs, isolation records match wiring, topology selection reason recorded and reported, shared-model review warnings.
  • Honest meter: cached-input/reasoning token splits, unpriced-model warnings (unpriced* in reports), price-table freshness test, failover cache-bust warnings, history-driven niki recommend --project.
  • Trust posture: [permissions] mode + --permission-mode, disable_worktree kill-switch, fail_closed_headless flag, loud headless Ask fallback.
  • Lifecycle hooks: [hooks.commands] wired to PreTaskStart/PreAgentStart/ PostAgentStop/PostTaskStop, fail-closed block semantics.
  • GitHub automation: keyless nightly eval gate, human-gated @niki review workflow (injection-safe, loop-guarded).
  • Eval credibility: per-case costs, disclosure manifest on every run, niki eval grade maintainer judgments with agreement metric, ablation protocol doc.
  • Observability: trace.jsonl spans per run (honestly derived timeline), niki audit compliance bundles.
  • MCP Streamable-HTTP remote transport (JSON + SSE, session affinity).
  • Onboarding: niki init alias, init --scan AGENTS.md drafter, .niki/rules/ binding conventions, per-provider model aliases, per-agent effort presets, actionable key errors, guided empty states.
  • TUI unification: one status grammar, 100% theme-token production code, normalized headers, global page jumps in both event loops, palette fleet/session rows, empty-state triads.
  • TUI motion system: primitives + caret blink, Done slide-in, notice slide-in, progress shimmer, modal pulse, verdict pulse — all reduced-motion gated (frames pixel-identical with the flag on).

Fixed

  • GEMINI_API_KEY vs GOOGLE_API_KEY chat fallback miss.
  • smoke/doctor pointed at nonexistent niki init (now a real alias).
  • Unwired schemas/review_feedback.schema.json removed.
  • backend = "podman" doc strings corrected (docker|worktree only).
  • safety_proof.json scope documented as git-only (was overclaimed).
  • Approval tool auto-approved everything; ask tool invented answers.
  • [permissions] table silently dropped by config merge.
  • MCP JsonRpcResponse never parsed (jsonrpc field rename bug).
  • Dry-run empty branch refs; planner-skip metrics crash.
  • Global key h/s/l dead-ends; blank session screen; $-0.00.

Changed

  • safety_proof.json, spend-cap, and deny-list copy narrowed to match code.
  • niki recommend static-pairings truth in docs (history-driven per-project observed spend added to the command itself).

Install niki 0.7.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/RavaniRoshan/niki/releases/download/v0.7.0/niki-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/RavaniRoshan/niki/releases/download/v0.7.0/niki-installer.ps1 | iex"

Download niki 0.7.0

v0.6.0 — Claude Code parity: interaction, trust & ecosystem

August 21, 2026

Release

v0.6.0 — Claude Code parity: interaction, trust & ecosystem

Interaction, trust, and ecosystem surface on top of the v0.5.0 render/permission base.

Added

  • Visible, draggable scrollbar in the chat viewport (ratatui Scrollbar; click/drag-to-jump)
  • Mouse hover system across all surfaces (stage headers, messages, status bar, tab bar, modals, help, fleet) + click flash + double-click word select
  • Scroll-wheel routing on every page with auto-follow pause
  • Kill ring + yank: Ctrl+Y yanks the most recent kill, Alt+Y cycles (yank-pop); Ctrl+W/U/K delete into the ring
  • Input undo/redo: Ctrl+Z / Ctrl+_ undo, Ctrl+Y yank; every edit snapshot-able
  • Multi-line composer: input area grows to ~1/3 of the screen (render_input_box_multiline now live)
  • Protected paths & destructive-command enforcement (.git, .ssh, /etc, rm -rf, sudo, curl, git push always prompt)
  • Shared skills portability: reads ~/.agents/skills/ (override via knowledge.skills_dir)
  • Kitty keyboard protocol (I4): enable/disable around the session + CSI-u decoding for Shift+Enter disambiguation
  • Expanded slash-command set: /status, /permissions, /plan, /version, /rename, /fork, /branch, /usage, /effort, /mcp, /skills, /copy, /export-md, /btw, /code-review, /security-review, /add-dir, /loop, /voice

Ecosystem (launch baseline)

  • ACP server (niki acp): JSON-RPC 2.0 over stdio — initialize, prompt/send, session/status, session/cancel, with live stage.start/stage.token/stage.done/stage.failed/task.completed notifications. Drives Zed, Claude Code, and any ACP client.
  • Voice input (niki voice): records via ffmpeg and transcribes through your provider’s STT endpoint (LlmProvider::transcribe, OpenAI-compatible).
  • MCP trust gate: servers must be explicitly allowed (fingerprinted, persisted to .niki/mcp_trust.json) before connecting — behavior-preserving default.
  • Headless TUI harness (tests/headless_tui.py, tuiwright): drives the real binary under a real PTY with mouse scroll/click/drag.

Changed

  • Chat render virtualizes to the visible window and renders a live scrollbar
  • Permission modal detail panel (Ctrl+D) + scope selector (Tab) wired to the live flow

Verification

  • cargo test --all-targets: 417 lib + 5 ACP integration, 0 failed
  • cargo clippy --all-targets: warning-free
  • cargo build --release: clean
  • pytest -c pytest_headless.ini: 11 passed, 2 documented skips (Shift+Enter and bulk-message scrollbar need a live terminal/LLM)

Binary artifacts (macOS/Windows/Linux tarballs + installers) are produced by the cargo dist release workflow in CI.

v0.4.0

August 15, 2026

Release

What’s Changed

New Contributors

Full Changelog: https://github.com/RavaniRoshan/niki/compare/v0.3.3...v0.4.0

v0.3.1

August 14, 2026

Release

Release v0.3.1 — Truth-Checked Pre-Launch

Truth fixes:

  • README: removed false claims (auto-pull image, niki init), hero image uses committed logo.svg, corrected ‘verified PR’ terminology
  • SECURITY.md: egress policy now accurate
  • sandbox: Rust toolchain (cargo 1.97.1) included; network_allowlist = ["*"] re-opens egress correctly
  • theme/glyph collision fixed (Planner: ◈, Reviewer: ◆)
  • version bump to 0.3.1 across all installers (homebrew/scoop/winget) and site (Install/Downloads)

New feature:

  • Tester agent now executes the project test suite in-sandbox and records results as test_execution.json audit artifact

Verification:

  • cargo build green · cargo test green (445 + 4 new) · site npm run build green

Assets (Linux x86_64 only):

  • niki-x86_64-unknown-linux-gnu.tar.xz — sha256: 7700e44ba8c2c29c49bd5d60b5f7c014d58ad9daecf3008fa80b6a10abf07ee7

Note: This release ships the Linux x86_64 binary manually. macOS (aarch64/x86_64) and Windows binaries are normally generated by cargo-dist CI on tag push. CI workflows are currently failing with 0 jobs / instant failure (GitHub Actions infrastructure issue). workflow_dispatch has been added to allow manual re-trigger when the infra issue resolves. A maintainer can run cargo build --release + tar -cJf for each target to attach remaining assets.

v0.2.0

August 7, 2026

Release

Install niki 0.2.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/RavaniRoshan/niki/releases/download/v0.2.0/niki-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/RavaniRoshan/niki/releases/download/v0.2.0/niki-installer.ps1 | iex"

Download niki 0.2.0