Releases: RavaniRoshan/niki
Release list
0.7.0 - 2026-09-08
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 planresearches 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/rewindwith
code+conversation/both restore modes and a dirty-tree guard. - User slash commands:
.niki/commands/*.md(filename →/name) with
description:/aliases:frontmatter,[commands] extra_dirssharing,
andniki commands list/show/expand. - Headless contract:
niki run --bare(no memory/MCP/knowledge-URLs),
--output-format jsonstable 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_commandgate; 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-drivenniki recommend --project. - Trust posture:
[permissions] mode+--permission-mode,disable_worktree
kill-switch,fail_closed_headlessflag, 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
@nikireview
workflow (injection-safe, loop-guarded). - Eval credibility: per-case costs, disclosure manifest on every run,
niki eval grademaintainer judgments with agreement metric, ablation
protocol doc. - Observability:
trace.jsonlspans per run (honestly derived timeline),
niki auditcompliance bundles. - MCP Streamable-HTTP remote transport (JSON + SSE, session affinity).
- Onboarding:
niki initalias,init --scanAGENTS.md drafter,
.niki/rules/binding conventions, per-provider model aliases,
per-agenteffortpresets, 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_KEYvsGOOGLE_API_KEYchat fallback miss.smoke/doctorpointed at nonexistentniki init(now a real alias).- Unwired
schemas/review_feedback.schema.jsonremoved. backend = "podman"doc strings corrected (docker|worktree only).safety_proof.jsonscope documented as git-only (was overclaimed).- Approval tool auto-approved everything; ask tool invented answers.
[permissions]table silently dropped by config merge.- MCP
JsonRpcResponsenever parsed (jsonrpcfield rename bug). - Dry-run empty branch refs; planner-skip metrics crash.
- Global key
h/s/ldead-ends; blank session screen;$-0.00.
Changed
safety_proof.json, spend-cap, and deny-list copy narrowed to match code.niki recommendstatic-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 | shInstall 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
| File | Platform | Checksum |
|---|---|---|
| niki-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| niki-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| niki-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| niki-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| niki-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
v0.6.0 — Claude Code parity: interaction, trust & ecosystem
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+Yyanks the most recent kill,Alt+Ycycles (yank-pop);Ctrl+W/U/Kdelete into the ring - Input undo/redo:
Ctrl+Z/Ctrl+_undo,Ctrl+Yyank; every edit snapshot-able - Multi-line composer: input area grows to ~1/3 of the screen (
render_input_box_multilinenow live) - Protected paths & destructive-command enforcement (
.git,.ssh,/etc,rm -rf,sudo,curl,git pushalways prompt) - Shared skills portability: reads
~/.agents/skills/(override viaknowledge.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 livestage.start/stage.token/stage.done/stage.failed/task.completednotifications. Drives Zed, Claude Code, and any ACP client. - Voice input (
niki voice): records viaffmpegand 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 failedcargo clippy --all-targets: warning-freecargo build --release: cleanpytest -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
What's Changed
- fix(homebrew): fill v0.4.0 SHA256 for 3 Unix targets by @RavaniRoshan in #14
- Bump tokio-stream from 0.1.18 to 0.1.19 by @dependabot[bot] in #5
- Bump async-trait from 0.1.89 to 0.1.92 by @dependabot[bot] in #6
- Bump libc from 0.2.186 to 0.2.189 by @dependabot[bot] in #7
- Bump glob from 0.3.3 to 0.3.4 by @dependabot[bot] in #8
- Bump globset from 0.4.18 to 0.4.19 by @dependabot[bot] in #9
- Bump actions/upload-pages-artifact from 3 to 5 by @dependabot[bot] in #10
- Bump actions/cache from 4 to 6 by @dependabot[bot] in #11
- Bump actions/download-artifact from 7 to 8 by @dependabot[bot] in #12
- Bump actions/deploy-pages from 4 to 5 by @dependabot[bot] in #13
- demo: v0.4.0 pipeline demo (gif+mp4) on landing page by @RavaniRoshan in #15
New Contributors
- @dependabot[bot] made their first contribution in #5
Full Changelog: v0.3.3...v0.4.0
v0.3.3
v0.3.2
v0.3.1
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.jsonaudit artifact
Verification:
cargo buildgreen ·cargo testgreen (445 + 4 new) · sitenpm run buildgreen
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
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 | shInstall 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
| File | Platform | Checksum |
|---|---|---|
| niki-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| niki-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| niki-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| niki-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| niki-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |