Skip to content

Zentui TUI

Zentui is a bundled Starship-inspired statusline and Opencode-style TUI for Selesai. It gives five surfaces independent ownership and styling — the editor, user messages, thinking (experimental), the working line, and the footer — with an optional Starship-style statusline.

Bundled with Selesai

Loaded automatically with Selesai; no per-extension npm install is required.

Manifest entry
./pi-zentui/extensions/zentui/index.ts
Runtime surface
Mixed (commands, tools, shortcuts)

Setup and prerequisites

  • Bundled with Selesai and loaded automatically; no separate install is needed.
  • Requires an interactive TUI session; it has no effect in headless mode.
  • Editor, user-message, thinking, working-line, and selector-border surfaces each have an independent enabled field; the footer uses one style: native, starship, or hidden.

What it sets up

  • Editor — Opencode, Opencode copy-friendly, Accent Rail, and Minimalist input treatments.
  • User messages — framed, framed copy-friendly, compact, and labeled transcript messages.
  • Thinking (Experimental) — optional private Rail, Tree, or Streaming renderers for Pi’s thinking, without owning the Working line.
  • Working line — optional ownership of Pi’s complete in-progress row and settled turn summary.
  • Footer — Pi’s native footer, a Starship-style statusline, or a hidden zero-row footer, with configurable segments and a compact footer format template.
  • Registers the /zentui command for live configuration and quick toggles.

What you can configure

Zentui configures independent editor, user-message, thinking, working-line, footer, segment, git, and extension surfaces from one zentui.json, with live /zentui pickers.

Configuration locations and precedence

  1. Zentui config
    ~/.selesai/agent/zentui.json
    Single file written by /zentui; no project layer.

Settings

Key / pathType, default, and valuesDescription
components.editor.stylestring
Default: opencode
Editor surface: opencode, opencode-copy-friendly, accent-rail, or minimalist.
components.footer.stylestring
Default: native
Footer style: native, starship, or hidden.
components.userMessages.stylestring
Default: framed
User-message style: framed, framed-copy-friendly, compact, or labeled.
components.workingLine.enabledboolean
Default: true
Take over Pi's complete working-line row and settled turn summary.
components.footer.styles.starship.pathDisplay.modestring
Default: basename
Starship footer path display: basename, full, or repository.
components.thinkingSteps.enabledboolean
Default: false
Opt-in private thinking renderer (Rail, Tree, or Streaming); experimental and may break after Pi updates.
components.thinkingSteps.modestring
Default: tree
Thinking mode: rail, tree, or streaming.

Command, tool, and shortcut controls

Key / pathDescription
/zentuiOpen the live configuration picker; changes save to zentui.json.
/zentui editor toggleToggle the editor surface without opening the picker.
/zentui messages toggleToggle user-message framing without opening the picker.
/zentui working-lineConfigure working-line takeover and turn summary.
/zentui format <template>Set the compact footer format template.

Source evidence

  • src/extensions/pi-zentui/extensions/zentui/config.ts

Run /zentui to configure Appearance, Editor, User messages, Thinking (Experimental), Working line, Footer, Segments, Git, and Extensions. Use Tab and Shift+Tab to switch sections; changes apply live and are saved to ~/.selesai/agent/zentui.json.

What you can do

  • Toggle surfaces individually: /zentui editor toggle, /zentui messages toggle, /zentui statusline toggle, /zentui viewport-indicators toggle.
  • Configure the working line takeover with /zentui working-line.
  • Set the compact footer format template: /zentui format "$cwd on branch $git_branch$git_status using $runtime $fill $context".
  • Switch the footer style between native, starship, and hidden without coupling it to other components.

Commands, tools, and shortcuts

  • /zentui — open the live configuration picker.
  • /zentui <surface> toggle — flip one surface without opening the picker.
  • /zentui format <template> — set the compact footer format.

Limits and safety

  • Only interactive TUI sessions render Zentui surfaces.

  • Thinking (Experimental) is disabled by default and may break after Pi updates. Active Streaming can switch live to Rail or Tree, and Rail and Tree can switch live between each other; first enable, re-enable after a live disable, and entering Streaming from a structural mode require a Pi restart. Failures fall back to complete native thinking.

  • Only interactive TUI sessions render Zentui surfaces.

  • The Starship footer path display defaults to basename; opt into repository mode to omit the repository directory itself.

  • Configuration is a single user-level file; there is no project layer.

Source evidence

Selesai version: 0.10.0