Skip to main content

OpenMux — Cheatsheet

Quick-reference card for OpenMux keybindings, CLI commands, and core concepts. Print this or keep it open in a pane while building muscle memory.


Normal Mode (Alt shortcuts — no prefix needed)

ShortcutAction
Alt+h / j / k / lNavigate panes (left / down / up / right)
Alt+nNew pane
Alt+\Split pane vertically (side by side)
Alt+-Split pane horizontally (top / bottom)
Alt+xClose focused pane
Alt+zToggle zoom (fullscreen focused pane)
Alt+mEnter move mode
Alt+[ / Alt+]Cycle layout mode (vertical → horizontal → stacked)
Alt+1Alt+9Switch to workspace 1–9
Alt+sOpen session picker
Alt+tOpen template overlay
Alt+gOpen aggregate view (browse all PTYs)
Alt+fOpen search
Alt+pOpen command palette

Prefix Mode (Ctrl+space, then key within 2s)

KeyAction
n / EnterNew pane
\Split vertically
-Split horizontally
h / j / k / lNavigate panes
mEnter move mode
xClose pane
zToggle zoom
vLayout: vertical
HLayout: horizontal
tLayout: stacked (tabbed)
TOpen template overlay
19Switch to workspace
sOpen session picker
gOpen aggregate view
/Open search
:Open command palette
] / pPaste from clipboard
`Toggle console overlay
dDetach (session keeps running)
qQuit openmux
EscExit prefix mode

Move Mode (Alt+m or Ctrl+space m)

KeyAction
h / j / k / lMove focused pane (west / south / north / east)
EscExit move mode

Mouse

ActionEffect
Click paneFocus pane
Click tabSwitch stacked pane (in stacked mode)
Scroll wheelScroll terminal history
Click scrollbarJump to position
Drag scrollbarScroll by dragging

Search Mode (Alt+f or Ctrl+space /)

KeyAction
(type)Enter search query
Ctrl+nNext match
Ctrl+pPrevious match
EnterConfirm and jump
EscCancel search

Command Palette (Alt+p or Ctrl+space :)

KeyAction
/ Navigate commands
EnterExecute selected command
EscClose palette

Session Picker (Alt+s or Ctrl+space s)

KeyAction
/ Navigate sessions
EnterSelect / create session
Ctrl+nCreate new session
Ctrl+rRename session
Ctrl+x / Ctrl+dDelete session
EscClose picker

Template Overlay (Alt+t or Ctrl+space T)

TabKeyAction
Apply / Navigate templates
ApplyEnterApply selected template
ApplyCtrl+xDelete template
ApplyTabSwitch to Save tab
SaveEnterSave current layout
SaveTabSwitch to Apply tab
BothEscClose overlay

Aggregate View (Alt+g or Ctrl+space g)

List:

KeyAction
/ Navigate PTYs
EnterPreview selected PTY
TabJump to PTY and close view
Alt+aToggle scope (all / current workspace)
Alt+xKill selected PTY
(type)Filter by process / directory / git branch
Alt+EscClose aggregate view

Preview:

KeyAction
Alt+EscReturn to list
Alt+fOpen search in preview
Alt+xKill current PTY

Vim Mode (opt-in, overlays only)

Enable: command palette → "Toggle overlay vim mode" — or in config.toml:

[keyboard]
vimMode = "overlays"
KeyAction
j / kNavigate lists
gg / GFirst / last item
EnterConfirm / preview
qClose overlay
iInsert mode
EscNormal mode
n / NNext / previous match

Confirmation Dialog

KeyAction
h / or l / Focus confirm / cancel
TabToggle focus
EnterConfirm
EscCancel

CLI Commands

# Launch or reattach
openmux

# Session management
openmux session list --json
openmux session create <name>
openmux attach --session <name>

# Pane control (requires running UI)
openmux pane split --direction vertical --workspace <N>
openmux pane split --direction horizontal --workspace <N>
openmux pane send --pane focused --text "command\n"
openmux pane capture --pane focused --lines 200 --format ansi

# Update
openmux update
openmux update --yes

Layout Modes

ModeIconDescription
VerticalMaster left, stack right (vertical split)
HorizontalMaster top, stack bottom (horizontal split)
StackedMaster left, stack tabbed right

Cycle with Alt+[ / Alt+] or set explicitly via prefix: v (vertical), H (horizontal), t (stacked).


Configuration

ItemLocation
Config file~/.config/openmux/config.toml
Sessions~/.config/openmux/sessions/
XDG override$XDG_CONFIG_HOME/openmux/config.toml

Environment variable overrides:

VariableMaps to
OPENMUX_WINDOW_GAPGap between panes
OPENMUX_MIN_PANE_WIDTHMinimum pane width
OPENMUX_MIN_PANE_HEIGHTMinimum pane height
OPENMUX_STACK_RATIOlayout.defaultSplitRatio

Config changes hot-reload — no restart needed.


Architecture (Quick Reference)

Host Terminal → openmux UI (SolidJS + OpenTUI)
↕ shim protocol
shim server (background, persists across detach)
↕ PTY I/O
zig-pty + libghostty-vt
  • Detach: Ctrl+b d — UI exits, shim keeps PTYs alive
  • Reattach: run openmux — UI reconnects to shim, instant state restore
  • Update: install new version, reattach — UI swaps, PTYs untouched

  • [[openmux-beginner-guide|OpenMux Beginner Guide]] — full walkthrough for new users
  • [[openmux-deep-dive|OpenMux Deep Dive]] — architecture, advanced config, scripting
  • [[sesh-beginner-guide|Sesh Beginner Guide]] — terminal session management
  • [[mosh-deep-dive|Mosh Deep Dive]] — remote terminal with multiplexer integration
  • [[just-beginner-guide|Just Beginner Guide]] — task runner for automation
  • [[dotfiles-beginner-guide|Dotfiles Beginner Guide]] — sync your config across machines