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

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+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.

Last updated on August 21, 2026

Was this page helpful?