Skip to content
Niki v0.11.0: TUI redesign, Go rewrite, and platform hardening.Read the release notes
niki
Esc
↑↓navigate↵open⌘Jpreview
On this page

TUI Overview

The redesigned terminal UI — Claude Code and Kimi Code styling with a 19MB Go binary.

Terminal UI Overview

NIKI’s terminal UI was redesigned to replicate the styling of Claude Code and Kimi Code, built in Go as a 19MB static binary with zero runtime dependencies. The TUI boots to an interactive frame in 5.9 ms and outputs --version in 6.8 ms.


Design Language

The TUI follows a modern terminal aesthetic with:

  • Pixel mascot badge with customizable theme styles
  • Rounded welcome card with aligned metadata table (directory, session, model, version)
  • Quick action announcement row with cyan diamond glyph
  • Redesigned composer with rounded border and dynamic responsive width
  • Dual-mode status footer with permission pills, mode badge, thinking state, cwd, git branch, keyboard hints, and real token context meter
  • Enriched transcript rendering with golden sparkle user glyphs, assistant bullets, and tree-branch tool execution cells

Performance Contract

Metric NIKI (Go) Codex CLI (Rust)
--version 6.8 ms 20.0 ms
TTFP (First Paint) 5.9 ms 23.4 ms
Idle Memory (2s) 13.1 MB 21.7 MB
Binary Size 19 MB 244 MB

Measured on host (AMD Ryzen 7 4800H, Linux WSL2, go1.27.1).


Cross-Platform Support

The TUI supports cross-platform terminal polling on both POSIX and Windows systems, with:

  • POSIX terminal polling via termios
  • Windows terminal polling via console API
  • Graceful fallback for unsupported terminals
  • NIKI_TUI_DEBUG per-frame log for troubleshooting

Keyboard Shortcuts

Key Action
Enter Send message or execute command
Esc Interrupt ongoing model stream or deny approval prompt
Ctrl+C Cleanly cancel current turn and restore terminal state
Ctrl+Z Suspend process to background
Ctrl+F Transcript search
Ctrl+E Toggle mouse motion/SGR
Ctrl+Y Yank from kill ring
Ctrl+W / Ctrl+U / Ctrl+K Delete into kill ring
Ctrl+Z / Ctrl+_ Input undo
Ctrl+Y Input redo (yank)
Alt+Y Yank-pop (cycle kill ring)

Slash Commands

Command Action
/help Display active keybindings, tools, and slash commands
/doctor Run comprehensive system and sandbox diagnostics
/compact Force context compaction, folding past turn history
/model Inspect active model, context window, and token prices
/clear Clear visible terminal viewport
/quit Cleanly restore terminal termios state and exit
/status Show pipeline status
/permissions Manage permission settings
/plan Toggle plan mode
/version Show version information
/rename Rename current session
/fork Fork current session
/branch Show or switch branches
/usage Show usage statistics
/effort Adjust effort level
/mcp Manage MCP servers
/skills Manage skills
/copy Copy last response
/export-md Export transcript as Markdown
/btw Add a side note
/code-review Run code review
/security-review Run security review
/add-dir Add directory to workspace
/loop Toggle loop mode
/voice Toggle voice input

Theming

The TUI supports theme customization with:

  • Warm SAND_500 as the default theme
  • Customizable mascot badge styles
  • Color depth detection: NO_COLOR → ANSI-16 → 256-color → truecolor
  • Kitty keyboard protocol support (progressive adoption, I4)

Was this page helpful?