Motivation
The current kuku REPL (bare kuku without arguments) is minimal: no session management, only y/n permissions, no subagent visibility, no completion. Users need an interactive interface to fully leverage the SDK's capabilities.
Proposal
Build a TUI with ratatui + crossterm, replacing the bare REPL when kuku is invoked without arguments:
- Session management: auto-continue latest session, session switching panel
- Structured streaming output: collapsible thinking blocks, turn markers, highlighted tool calls/results
- Permission interaction: all four PermissionChoice options (Once/Session/Project/Deny)
- Subexec views: Tab into agent/tool sub-execution for real-time observation
- Tab completion: built-in commands + skill names
- Extensible architecture: model switching, theme customization (future)
Non-TUI modes (kuku run "prompt", piped, --json, --stream-json) are unaffected.
Alternatives considered
- crossterm-only line mode (original plan): simpler but can't do view switching for subagents, no fixed input area, no structured output navigation. Rejected because subagent observation is a core requirement.
- reedline standalone: excellent line editor but no output rendering capability at all.
- iocraft: promising declarative API but small ecosystem (1.3k stars), tokio compatibility uncertain.
- cursive: widget model oriented toward forms/menus, not REPL-style interfaces.
Affected scope
SDK + CLI
Motivation
The current
kukuREPL (barekukuwithout arguments) is minimal: no session management, only y/n permissions, no subagent visibility, no completion. Users need an interactive interface to fully leverage the SDK's capabilities.Proposal
Build a TUI with ratatui + crossterm, replacing the bare REPL when
kukuis invoked without arguments:Non-TUI modes (
kuku run "prompt", piped,--json,--stream-json) are unaffected.Alternatives considered
Affected scope
SDK + CLI