Skip to main content
Configuration and Security

UI and Shortcuts

Themes, Status Bar, Keyboard Shortcuts, Vim Mode, and Voice Input in Qoder CLI

The interactive interface (TUI) of Qoder CLI offers customizable options such as themes, the Status Bar, Keyboard Shortcuts, Vim edit mode, and Voice Input. Properly configuring these UI options makes your terminal experience smoother and more tailored to your personal habits. This page covers UI-related configurations and operations. For the layering and merging rules of configuration files, see Configuration Files and Application Order.

Theme

Themes control the Color Scheme of the interface. You can switch themes in the interactive interface via /theme, or specify one in your configuration:
{
  "ui": {
    "theme": "Tokyo Night",
    "autoThemeSwitching": true
  }
}

Built-in themes

Qoder CLI provides multiple built-in themes: AyuDark, AyuLight, AtomOneDark, Dracula, DefaultLight, DefaultDark, GitHubDark, GitHubLight, GoogleCode, Holiday, ShadesOfPurple, SolarizedDark, SolarizedLight, XCode, TokyoNight, ANSI, ANSILight.

Auto-Switch

ui.autoThemeSwitching (enabled by default) automatically switches between the default Light and Dark Theme based on the terminal's background color. The polling interval for the terminal background color is controlled by ui.terminalBackgroundPollingInterval (default: 60 seconds).

Custom Theme

You can define your own Color Scheme via ui.customThemes and then reference its name in ui.theme.

Status Bar

The Status Bar is displayed below the Input Box. The built-in default Status Bar displays information such as model · workspace · +N -N (model name, Working Directory, lines of code added/removed) and automatically hides lower-priority segments when the terminal width is insufficient.

Custom Status Bar Command

You can run a custom shell command to generate the Status Bar content. This command receives session data as JSON via stdin (including Session ID, Working Directory, model, context usage, Git branch, Vim mode, etc.), and its standard output (including ANSI colors) is displayed below the Input Box:
{
  "statusLine": {
    "type": "command",
    "command": "~/.qoder/statusline-command.sh",
    "padding": 0
  }
}
Running /statusline in the interactive interface leverages the built-in Status Bar configuration capabilities to automatically read your shell configuration and generate a script.

Paragraph Color

For the built-in default Status Bar, you can customize the Paragraph Color for each segment via statusLine.colors (e.g., model, branch, separator). Color values can be hexadecimal (e.g., #ff6600), ANSI names (e.g., red, cyan), or natural language color names (e.g., ocean blue). Leaving a value blank applies the theme's default color. The context progress bar ignores custom colors and automatically changes color (green/yellow/red) based on usage.

Keyboard Shortcuts

Run /shortcuts in the interactive interface to view the current list of Keyboard Shortcuts. Common shortcuts include:
Keyboard ShortcutAction
EnterSubmit input.
Shift+Enter / Ctrl+JNew line (without submitting).
Ctrl+CInterrupt current operation / clear input.
Ctrl+DExit.
Ctrl+A / HomeMove to the beginning of the line.
Ctrl+E / EndMove to the end of the line.
Ctrl+Left / Alt+LeftMove one word to the left.
Ctrl+Right / Alt+RightMove one word to the right.
Ctrl+WDelete the word before the cursor.
Ctrl+KDelete to the end of the line.
Ctrl+UDelete to the beginning of the line.
Ctrl+P / Ctrl+NBrowse history (up/down).
Ctrl+RReverse search history.
Shift+Up / Shift+DownScroll up / down.
Ctrl+XOpen External Editor to edit input.
Ctrl+VPaste clipboard content.
Alt+VPaste clipboard image.
Shift+TabToggle Permission Mode.
Ctrl+YToggle Bypass Permissions Mode.
Ctrl+TExpand to view the full Task list.
Ctrl+LClear screen.
Specific keys may vary slightly across different terminals and platforms; please refer to the mappings displayed by /shortcuts.

External Editor

Run /editor to configure the External Editor used for editing input. Once configured, pressing Ctrl+X opens the current input content in that editor, which is ideal for writing longer prompts.

Vim mode

Run /vim to toggle Vim edit mode. Once enabled, the Input Box supports common Vim operations:
  • Movement: h / j / k / l (left/down/up/right).
  • Word movement: w (next word), b (previous word), e (end of word).
  • Line start/end: 0 (beginning of line), $ (end of line).
  • Enter edit mode: i (insert), a (append), o (new line).
  • Edit operations: d (delete), c (change), y (yank), x (delete character).
  • Undo/Redo: u (undo), Ctrl+R (redo).
The Status Bar displays the current Vim mode (INSERT / NORMAL).

Voice Input

Run /voice to enable Voice Input, which converts speech to text via speech recognition. The speech recognition service address can be specified via the Environment Variable QODER_ASR_URL.

Other UI Options

The ui group contains many other adjustable options. Common ones include:
Configuration ItemDefaultDescription
ui.hideBannerfalseHide Startup banner.
ui.hideFooterfalseHide Footer.
ui.showLineNumberstrueShow line numbers in conversations.
ui.loadingPhrasesoffDisplay during loading: tips / witty / all / off.
ui.dynamicWindowTitletrueDynamically update the terminal window title with status icons.
ui.accessibility.screenReaderfalseScreen Reader Mode, outputs plain text (requires restart).
For a complete list of UI configuration items, see Configuration Item Reference.

Next step