Skip to main content
The TUI is designed for keyboard-driven workflows. Every action can be performed without touching the mouse.

Global Shortcuts

These work from any screen (except when typing in text inputs):
KeyActionDescription
hHubJump to Serve Hub screen
cCreateJump to Create Room screen
jJoinJump to Join Room screen
lListJump to List Rooms screen
mMonitorJump to Monitor screen
qQuitQuit TUI (with confirmation if needed)
EscBackGo back in navigation history
Global shortcuts are disabled when you’re typing in text fields to avoid conflicts. Press Esc or Tab to exit the input field first.
KeyAction
hGo to Hub screen
cGo to Create Room screen
jGo to Join Room screen
lGo to List Rooms screen
mGo to Monitor screen
/ kNavigate up
/ jNavigate down
EnterSelect highlighted option
qQuit

Serve Hub

When Hub is Stopped:
KeyAction
TabNext field
mToggle mDNS (when checkbox focused)
EnterStart hub
EscGo back
When Hub is Running:
KeyAction
EnterStop hub
EscGo back (hub keeps running)

Create Room

Form View:
KeyAction
TabNext field
EnterCreate room
EscGo back
Success View:
KeyAction
cCopy room code to clipboard
sShow/hide share instructions
jJoin room as participant
mGo to monitor
EscGo back

List Rooms

KeyAction
Previous room
Next room
EnterMonitor selected room
mMonitor selected room
jJoin selected room
rRefresh room list
EscGo back

Join Room

Form View:
KeyAction
TabNext field
aToggle advanced options
1-5Select model from suggestions (when model field focused)
SpaceToggle “Share specs” checkbox (when focused)
EnterJoin room
EscGo back
Success View:
KeyAction
mGo to monitor
lLeave room
EscGo back

Monitor (Dashboard)

KeyAction
TabSwitch between rooms
aAdd room to monitor
cCreate new room (and add to monitor)
eExpand/collapse participant details
rRefresh current room (reconnect SSE)
lLeave room (if you’re a participant)
EscGo back
Monitor Workflow Tips:
  • Use Tab to quickly cycle through rooms when monitoring multiple
  • Use e to toggle detailed specs view when you need more information
  • Press r if SSE connection seems stuck

Add Room Modal

KeyAction
EnterAdd room and go to it
EscCancel

Confirmation Modals

All confirmation dialogs (quit, leave room):
KeyAction
EnterConfirm action
EscCancel

Common Patterns

Form Navigation

All forms use consistent shortcuts:
  • Tab - Move to next field (cycles back to first)
  • Shift+Tab - Move to previous field (on some screens)
  • Enter - Submit form
  • Esc - Cancel and go back
Typing automatically updates the focused field. No need to press Enter after each field.

List Navigation

All lists and tables use arrow keys or vim-style keys:
  • / k - Previous item
  • / j - Next item
  • Enter - Select/activate item
Selection wraps around (pressing down on last item goes to first).

Toggle Controls

Checkboxes and toggles:
  • Tab to focus the checkbox
  • Space or assigned key (like m for mDNS) to toggle
  • Visual indicator shows state: [x] checked, [ ] unchecked

Keyboard Tips

Quick Navigation

Chain global shortcuts to jump through screens quickly:
[h] Start hub → [c] Create room → [m] Monitor
No need to wait for animations or confirmations between screens.

Escape Hatch

Press Esc multiple times to navigate back through your history:
Monitor → [Esc] → Join Room → [Esc] → Main Menu
Your navigation history is preserved, so you can always get back.

Text Input Focus

When a text input is focused:
  • Typing updates the field automatically
  • Most shortcuts are disabled to avoid conflicts
  • Press Tab to move to next field
  • Press Esc to cancel

Model Selection Shortcut

On the Join Room screen, when the model field is focused:
1. Focus model field (Tab to it)
2. Endpoint test shows available models:
   1 llama3
   2 codellama
   3 mistral
3. Press 1, 2, or 3 to instantly fill model
This is much faster than typing full model names.

Accessibility

Visual Feedback

The TUI provides clear visual feedback for keyboard actions:
  • Focused fields - Highlighted background color
  • Selected items - Arrow indicator or highlight
  • Status changes - Color-coded indicators (green/orange/red)
  • Active shortcuts - Always visible in footer

Learn as You Go

The footer on every screen shows contextual shortcuts:
┌──────────────────────────────────────────┐
│ Tab Next field  Enter Create  Esc Back │
└──────────────────────────────────────────┘
You don’t need to memorize everything. Just glance at the footer to see what’s available.

Consistent Keybindings

Shortcuts are mnemonic and consistent:
  • h - Hub
  • c - Create
  • j - Join
  • l - List
  • m - Monitor
  • r - Refresh
  • e - Expand
  • a - Add / Advanced
  • s - Share
  • q - Quit

Customization

Keyboard shortcuts are currently hardcoded and not customizable. This may change in future versions.
If you need custom keybindings, you’ll need to modify the source code:
  1. Global shortcuts: apps/tui/src/app.tsx
  2. Screen-specific shortcuts: apps/tui/src/screens/<screen-name>.tsx
Each screen uses the useKeyboard hook from OpenTUI to handle key events:
useKeyboard((key) => {
  if (key.name === "escape") {
    onBack();
  }
  // ... other keys
}, { release: false });

Reference: Full Shortcut Table

ContextKeyAction
GlobalhJump to Hub
GlobalcJump to Create
GlobaljJump to Join
GloballJump to List
GlobalmJump to Monitor
GlobalqQuit (with confirmation)
GlobalEscGo back
Menu//j/kNavigate
MenuEnterSelect
HubTabNext field
HubmToggle mDNS
HubEnterStart/Stop
CreateTabNext field
CreateEnterCreate
CreatecCopy code (success)
CreatesToggle share panel (success)
List/Navigate
ListEnter/mMonitor room
ListjJoin room
ListrRefresh
JoinTabNext field
JoinaToggle advanced
Join1-5Select model
JoinSpaceToggle checkbox
JoinEnterJoin
MonitorTabSwitch room
MonitoraAdd room
MonitorcCreate room
MonitoreExpand/collapse
MonitorrRefresh room
MonitorlLeave room
ModalsEnterConfirm
ModalsEscCancel

Build docs developers (and LLMs) love