TUI and REPL

TUI

On a real terminal you get the Ink TUI (packages/tui, Ink 5 + React). It shows the transcript, streaming deltas, tool cards, and permission dialogs.

Two kinds of permission UI:

  • Tool permission — “Allow this tool?”
  • Prompt permission (prompt.permission_required) — “Submit this prompt anyway?” (Jev ask flow)

Events such as prompt.blocked and prompt.guardrail with skipped surface as warnings in the UI.

REPL

Used when stdin/stdout are not a TTY, when you pass --no-tui, or when TUI import fails (packages/cli/src/repl.ts). Line-oriented; slash commands still work.

Permissions use stdin y/n (packages/cli/src/permission.ts).

Non-interactive automation should use @zox/sdk and an explicit permission policy rather than hoping a human is at the keyboard. See Server, OpenAPI, and SDK.

Choosing a mode

SituationWhat you get
TTY, default flagsInk TUI
Piped / non-TTYLine REPL
--no-tuiLine REPL