Skip to main content

What is the TUI?

The Rexec TUI is an interactive terminal-based dashboard built with Charm Bubble Tea. It provides a rich, colorful interface for managing terminals, snippets, and infrastructure without leaving your terminal.
Rexec TUI Dashboard

Features

Dashboard View

Real-time stats, terminal status, and quick actions

Terminal List

Browse and filter all your terminals

Snippet Browser

Access your snippets and marketplace

Quick Connect

Connect to terminals with a single keystroke

Installation

The TUI is included in the CLI installation:
# Install CLI (includes TUI)
curl -fsSL https://rexec.pipeops.io/install-cli.sh | bash

Build from Source

git clone https://github.com/brimblehq/rexec.git
cd rexec

# Build TUI
make tui

# Binary at bin/rexec-tui
./bin/rexec-tui

Build for All Platforms

make tui-all-platforms
Creates binaries in downloads/:
  • rexec-tui-linux-amd64
  • rexec-tui-linux-arm64
  • rexec-tui-darwin-amd64
  • rexec-tui-darwin-arm64

Launching the TUI

Multiple commands launch the TUI:
# Launch TUI
rexec -i
rexec tui
rexec dashboard
rexec ui

# Or run directly (if installed separately)
rexec-tui
The TUI requires authentication. Run rexec login first.

Dashboard View

The main dashboard shows:
  ██████╗ ███████╗██╗  ██╗███████╗ ██████╗
  ██╔══██╗██╔════╝╚██╗██╔╝██╔════╝██╔════╝
  ██████╔╝█████╗   ╚███╔╝ █████╗  ██║
  ██╔══██╗██╔══╝   ██╔██╗ ██╔══╝  ██║
  ██║  ██║███████╗██╔╝ ██╗███████╗╚██████╗
  ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝╚══════╝ ╚═════╝

  johndoe • pro

    3           2           1           5
  Total      Running     Stopped     Snippets

  Recent Terminals

  ● 1. dev-environment       ubuntu:22.04    [abc123de]
  ● 2. python-sandbox         python:3.11     [xyz789gh]
  ○ 3. test-container         debian:bookworm [jkl345mn]

  1-9 connect  •  t terminals  •  s snippets  •  c create  •  r refresh  •  q quit

Views

Dashboard (Main View)

Statistics Cards:
  • Total terminals
  • Running count (green)
  • Stopped count (yellow)
  • Available snippets (purple)
Recent Terminals:
  • Shows up to 5 most recent terminals
  • Green ● = running
  • Yellow ○ = stopped
  • Quick connect with number keys (1-9)

Terminals View

Full list of all terminals with filtering:
  Terminals

  > dev-environment
    🔒 ubuntu:22.04 • running • devops

    python-sandbox
    python:3.11 • running • developer

    test-container
    debian:bookworm • stopped • default

  ↑↓ navigate  •  enter select  •  / filter  •  esc back  •  q quit
Features:
  • Searchable with / key
  • MFA-locked terminals show 🔒 icon
  • Color-coded status indicators
  • Arrow keys or vim keys (j/k) for navigation

Snippets View

Browse your saved snippets:
  Snippets

  > docker-install
    Install Docker on Ubuntu

    setup-node
    Install Node.js LTS

    update-system
    Update system packages

  ↑↓ navigate  •  enter select  •  / filter  •  esc back  •  q quit

MFA Prompt

For MFA-protected terminals:
  🔒 MFA Required

  This terminal is protected with MFA.
  Enter your 6-digit authenticator code:

  1 2 3 4 _ _

  Press Enter to verify • Esc to cancel
Features:
  • Real-time input display
  • Auto-validation on 6 digits
  • Error messages for invalid codes
  • Backspace to correct

Keyboard Shortcuts

Global Keys

KeyAction
qQuit TUI (from dashboard)
Ctrl+CForce quit
EscBack to dashboard
rRefresh data

Dashboard Keys

KeyAction
1-9Quick connect to terminal 1-9
tOpen terminals view
sOpen snippets view
cCreate new terminal
rRefresh data
qQuit

List Navigation Keys

KeyAction
/ kMove up
/ jMove down
EnterSelect item
/Filter/search
EscClear filter or go back
qQuit

MFA Input Keys

KeyAction
0-9Enter digit
BackspaceDelete digit
EnterVerify code
EscCancel

Connecting to Terminals

When you select a terminal:
  1. TUI exits to native terminal
  2. CLI connects via WebSocket
  3. Full interactive shell session
  4. Disconnect returns to shell (not TUI)
# From TUI: press '1' to connect to first terminal

Connecting to terminal abc123def456...
Tip: press Ctrl+] or double Ctrl+C to disconnect.

root@abc123def456:~# echo "Hello!"
Hello!
root@abc123def456:~# exit

Disconnected.
$
To reopen TUI:
rexec -i

Color Scheme

The TUI uses a modern, dark color palette:
ElementColorHex
PrimaryCyan#00D4FF
SecondaryPurple#7C3AED
SuccessGreen#10B981
WarningYellow#F59E0B
ErrorRed#EF4444
DimGray#6B7280
BackgroundDark Blue#0F172A
Card BGSlate#1E293B

Automatic Refresh

The TUI automatically refreshes:
  • On startup
  • When pressing r
  • After creating terminals
  • After MFA verification
No background polling - data is fetched on-demand.

Status Indicators

Terminal Status

IconColorStatus
GreenRunning
YellowStopped
RedError
GrayExited

Special Indicators

IconMeaning
🔒MFA-protected terminal

Error Handling

The TUI gracefully handles errors:
  Error loading terminals: unauthorized
  
  Please run 'rexec login' to authenticate.
Common errors:
  • Not logged in: Exit and run rexec login
  • Network error: Check internet connection
  • Invalid MFA: Re-enter code

Configuration

The TUI uses the same config as the CLI:
# Config location
~/.rexec/config.json

# Environment variables
export REXEC_HOST="https://rexec.pipeops.io"
export REXEC_TOKEN="your_token"

Performance

The TUI is lightweight and fast:
  • Startup time: < 100ms
  • Memory usage: ~10-20MB
  • Network: Only API calls, no polling
  • Terminal rendering: 60 FPS capable

Accessibility

The TUI uses standard terminal output, but may not be fully accessible with screen readers. For better accessibility, use the CLI commands:
rexec ls        # List terminals
rexec whoami    # User info
rexec connect   # Connect to terminal
Status indicators use both color and symbols:
  • Running: ● (filled circle) + green
  • Stopped: ○ (empty circle) + yellow
This provides redundancy for color vision deficiencies.
The TUI is fully keyboard-navigable:
  • No mouse required
  • All features accessible via shortcuts
  • Clear keyboard hints in footer

Troubleshooting

TUI Doesn’t Launch

Dashboard requires an interactive terminal
Cause: Not running in a TTY (e.g., piped output, CI/CD) Solution: Run in an interactive terminal, not in scripts

Terminal Too Small

If your terminal is too small, the TUI may display incorrectly. Minimum size: 80 columns × 24 rows
# Check terminal size
tput cols  # Should be ≥ 80
tput lines # Should be ≥ 24

Colors Not Showing

# Check terminal color support
echo $COLORTERM
tput colors  # Should output 256 or more
If colors aren’t working:
export TERM=xterm-256color
rexec -i

TUI Binary Not Found

If rexec -i shows:
rexec-tui not found. Install with:
make tui
The TUI binary needs to be in PATH or in a standard location:
  • ~/.rexec/rexec-tui
  • /usr/local/bin/rexec-tui
  • Set REXEC_TUI_PATH environment variable

Advanced Usage

Custom TUI Path

Use a custom TUI binary:
export REXEC_TUI_PATH="/path/to/rexec-tui"
rexec -i

ASCII Fallback

If the Bubble Tea TUI isn’t available, the CLI shows a simple ASCII dashboard:
  ██████╗ ███████╗██╗  ██╗███████╗ ██████╗  Dashboard
  ...
  
  Logged in as: johndoe (pro)
  
  Terminals (3)
  ───────────────────────────────────────────
  ● 1. dev-environment      running    [abc123de]
  ○ 2. test-container       stopped    [xyz789gh]
  
  Controls
  ───────────────────────────────────────────
  1-9  Connect to terminal    c  Create new    r  Refresh
  s    Snippets               q  Quit
  
  Press a key to continue...

Next Steps

CLI Commands

Learn CLI commands for automation

Authentication

Manage login and credentials

Build docs developers (and LLMs) love