Skip to content

Bullpen TUI Guide

What is the TUI?

The TUI is Bullpen's full-screen terminal interface. Launch it when you want an interactive workspace for checking status, browsing markets, running trading commands, and watching output without retyping bullpen before every command.

Use one-shot CLI commands for scripts and pipes. Use bullpen shell if you want a readline REPL instead of a full-screen interface.

Launching

bullpen

The TUI requires a real terminal on stdout. If stdout is redirected, for example bullpen > out.txt, Bullpen exits cleanly and prints TUI requires a TTY on stdout to stderr. If stdin is piped, Bullpen prints top-level help instead of trying to launch the TUI.

Main screen layout

+-- Bullpen CLI v0.1.NN --------------------------------+
|                                                       |
|  output area                         operator panel   |
|  command results and status          when bot mode    |
|  scroll with Shift+Up/PageUp         is active        |
|                                                       |
+-------------------------------------------------------+
| status bar: current action and key hints              |
+-------------------------------------------------------+
| > command input with slash-command autocomplete       |
+-------------------------------------------------------+

The normal screen waits for input. During command execution the input line shows progress, and during login it shows the active device-auth step. The operator panel appears on wide terminals when bot operator state is active.

Key bindings

Key Action
Enter Submit the current command. If the popup is open, accept the selected leaf command and submit it, or accept a group command and show its children.
Tab Accept the highlighted autocomplete suggestion when the popup is open.
Up / Down Move through input history, or move through popup choices when the popup is open.
Shift+Up / Shift+Down Scroll the output area by one line.
PageUp / PageDown Scroll the output area by half a screen.
Left / Right Move the cursor in the input line.
Alt+Left / Alt+Right Move the cursor by word.
Home / Ctrl+A Jump to the start of the input line.
End / Ctrl+E Jump to the end of the input line.
Backspace / Delete Delete one character.
Esc Close the popup, or clear the input line if no popup is open.
Ctrl+C Copy and clear the active text selection; otherwise clear non-empty input; otherwise exit.
Ctrl+D Exit the TUI.
F6 Pause the active bot run from the operator panel, when available.
F7 Resume the active bot run from the operator panel, when available.
F8 Approve the active bot request from the operator panel, when available.

Slash commands

Start commands with /. Typing / opens the autocomplete popup; keep typing to filter the current level. Examples:

/status
/portfolio balances
/polymarket discover --limit 5
/polymarket buy <market-slug> Yes 10 --yes

Submitting a command group such as /polymarket shows its available child commands. The TUI command tree mirrors the main CLI namespaces for account, portfolio, Polymarket, Hyperliquid, Solana, and bot workflows, but the popup is the source of truth for what is available in the current build.

Escape routes

  • Exit the TUI with Ctrl+D, or with Ctrl+C on an empty input line.
  • Close a stuck autocomplete popup with Esc.
  • Clear a partially typed command with Ctrl+C or Esc.
  • Run a command outside the TUI with bullpen <command>.
  • Use the readline REPL with bullpen shell.
  • Print command-line help with bullpen --help.

Mouse

Mouse capture is enabled. Use the scroll wheel over the output area to scroll. Drag in the output area to select text; releasing the mouse copies the selected text when the clipboard is available. Click operator-panel actions when the panel is visible.

TUI vs shell vs one-shot CLI

Mode Start with Use when
TUI bullpen You want a full-screen workspace, autocomplete popup, scrollback, and the optional bot operator panel.
Shell bullpen shell You want a lightweight REPL with command history but no full-screen UI.
One-shot CLI bullpen <command> You are scripting, piping output, using --output json, or running one command at a time.