TUI settings

Customize the input area and status placement.

Open /settings and choose tui settings to control the main input chrome and where status information appears. Changes apply immediately and are saved in $ZOT_HOME/config.json.

SettingValues
input styleplain keeps the default prompt line. lines draws separator lines above and below the input area. block renders a user-bubble-style input block.
status positionabove input or below input for model, usage, and working-directory information.
working spinner positionabove input or below input for the busy spinner shown while a turn is running.

Config keys

$ZOT_HOME/config.json
{
  "tui_input_style": "block",
  "tui_status_position": "below_input",
  "tui_working_position": "above_input"
}

Input style accepts plain, lines, and block. Position fields accept above_input and below_input. Missing keys use the defaults: plain input, status above input, and spinner above input.

Custom shortcuts

Bind key chords to slash commands with keymap in $ZOT_HOME/config.json. There is no /settings row for this yet; edit the file and restart zot. Each key is a case-insensitive chord made of at least one modifier (ctrl, alt or option, shift, cmd or super) plus a single character or a named key (enter, tab, space, esc, backspace, delete, up, down, left, right, home, end, pageup, pagedown). Each value is a slash command: built-in commands, extension commands, and /skill:<name> all work.

$ZOT_HOME/config.json
{
  "keymap": {
    "ctrl+n": "/new",
    "ctrl+s": "/settings",
    "ctrl+g": "/git-tools:status",
    "alt+r": "/skill:code-review"
  }
}

Shortcuts run in the main interactive input and use the same dispatch path as typing the command. They do not apply while a dialog, extension panel, or tool confirmation has focus. The example ctrl+n binding starts a fresh persisted session, but it is unavailable when zot runs with --no-session. Entries that cannot be bound are skipped and reported above the transcript at startup (the notice clears with /clear): unmodified keys such as enter or g, values that do not start with /, and the reserved ctrl+c, ctrl+d, and esc chords. /help lists the active bindings under custom keys.

Without enhanced keyboard reporting (kitty keyboard protocol or xterm modifyOtherKeys), a terminal cannot distinguish ctrl+h, ctrl+i, and ctrl+m from Backspace, Tab, and Enter, and it does not report Shift on Ctrl+letter chords. zot therefore lets a ctrl+shift+<letter> binding also fire on plain ctrl+<letter> unless a separate ctrl+<letter> binding exists. Chords the terminal emulator or multiplexer consumes itself, such as a tmux prefix or cmd+k, never reach zot.