Loading...
Loading...
Control the cmux terminal multiplexer. Use this skill when the user asks to manage terminal panes, workspaces, windows, browser splits, or interact with cmux in any way. Also use when you need to read other terminal screens, send commands to other panes, create splits, or manage the terminal layout.
npx skill4agent add xalior/agent-skills cmuxcmux/Applications/cmux.app/Contents/Resources/bin/cmuxcmuxcmux [--socket PATH] [--window WINDOW] [--password PASSWORD] [--json] [--id-format refs|uuids|both] [--version] <command> [options]--json--id-format refs|uuids|both--socket PATH--password PASSWORDCMUX_WORKSPACE_ID--workspaceCMUX_TAB_IDtab-actionrename-tab--tabCMUX_SURFACE_ID--surfaceCMUX_SOCKET_PATH/tmp/cmux.sockCMUX_WORKSPACE_IDCMUX_SURFACE_ID--workspace--surfacewindow:1workspace:2pane:3surface:4tab-actiontab:<n>surface:<n>| Command | Description |
|---|---|
| Show cmux version |
| Check if cmux is running |
| List supported capabilities |
| Identify current context |
| Command | Description |
|---|---|
| List all windows |
| Get the current window |
| Create a new window |
| Focus a window |
| Close a window |
| Rename a window |
| Navigate windows |
| Command | Description |
|---|---|
| List all workspaces |
| Get current workspace |
| Create workspace, optionally run a command |
| Switch to workspace |
| Close workspace |
| Rename workspace |
| Trigger workspace action |
| Move workspace to another window |
| Reorder workspace |
| Command | Description |
|---|---|
| List panes in workspace |
| List surfaces in a pane |
| Focus a pane |
| Create a new pane |
| Split current pane |
| Add surface (tab) to pane |
| Close a surface |
| Move surface between panes |
| Reorder surface within pane |
| Drag surface into a new split |
| Resize pane |
| Swap two panes |
| Break pane into new workspace |
| Join pane into another |
| Focus previous pane |
| Refresh all surfaces |
| Check surface health |
| Respawn a pane |
| Command | Description |
|---|---|
| Trigger tab action |
| Rename a tab |
| Flash a surface |
| Command | Description |
|---|---|
| List panels |
| Focus a panel |
| Send text to panel |
| Send keypress to panel |
| Command | Description |
|---|---|
| Read terminal screen content |
| Alias for read-screen |
| Send text to a terminal |
| Send a keypress to a terminal |
| Pipe pane output to a command |
| Clear scrollback history |
| Find window by content or title |
| Command | Description |
|---|---|
| Store text in a named buffer |
| List all buffers |
| Paste buffer into surface |
| Command | Description |
|---|---|
| Send a notification |
| List notifications |
| Clear notifications |
| Command | Description |
|---|---|
| Set sidebar status |
| Clear a status key |
| List all status entries |
| Set progress bar |
| Clear progress bar |
| Write to sidebar log |
| Clear sidebar log |
| List log entries |
| Get sidebar state |
cmux browser open [url] # Open browser in caller's workspace
cmux browser open-split [url] # Open as a split
cmux new-pane --type browser [--url <url>] [--direction left|right|up|down]cmux browser goto|navigate <url> [--snapshot-after]
cmux browser back|forward|reload [--snapshot-after]
cmux browser url|get-urlcmux browser snapshot [--interactive|-i] [--cursor] [--compact] [--max-depth <n>] [--selector <css>]
cmux browser get <url|title|text|html|value|attr|count|box|styles> [...]
cmux browser console <list|clear>
cmux browser errors <list|clear>cmux browser click|dblclick|hover|focus|check|uncheck|scroll-into-view <selector> [--snapshot-after]
cmux browser type <selector> <text> [--snapshot-after]
cmux browser fill <selector> [text] [--snapshot-after] # empty text clears input
cmux browser press|keydown|keyup <key> [--snapshot-after]
cmux browser select <selector> <value> [--snapshot-after]
cmux browser scroll [--selector <css>] [--dx <n>] [--dy <n>] [--snapshot-after]cmux browser is <visible|enabled|checked> <selector>
cmux browser find <role|text|label|placeholder|alt|title|testid|first|last|nth> ...
cmux browser highlight <selector>cmux browser wait [--selector <css>] [--text <text>] [--url-contains <text>] [--load-state <interactive|complete>] [--function <js>] [--timeout-ms <ms>]cmux browser eval <script>cmux browser frame <selector|main>
cmux browser dialog <accept|dismiss> [text]
cmux browser viewport <width> <height>
cmux browser geolocation|geo <lat> <lon>
cmux browser offline <true|false>
cmux browser addscript <script>
cmux browser addstyle <css>
cmux browser addinitscript <script>cmux browser state <save|load> <path>
cmux browser cookies <get|set|clear> [...]
cmux browser storage <local|session> <get|set|clear> [...]
cmux browser download [wait] [--path <path>] [--timeout-ms <ms>]
cmux browser network <route|unroute|requests> [...]
cmux browser trace <start|stop> [path]
cmux browser screencast <start|stop>
cmux browser input <mouse|keyboard|touch>cmux browser tab <new|list|switch|close|<index>> [...]cmux browser identify [--surface <id|ref|index>]| Command | Description |
|---|---|
| Set/list/unset hooks |
| Wait for or send a signal |
| Command | Description |
|---|---|
| Set app focus state |
| Simulate app becoming active |
| Claude session hooks |
| Display a message |
| Key binding controls |
| Show popup |
cmux identify # Who am I?
cmux list-workspaces --json # All workspaces
cmux list-panes --json # All panes in current workspacecmux new-split right # Create split to the right
# Then send a command to it (need to target the new surface)
cmux send --surface <new-surface-ref> "npm run dev"
cmux send-key --surface <new-surface-ref> Entercmux read-screen --surface <ref> # Current visible content
cmux read-screen --surface <ref> --scrollback --lines 200 # With scrollbackcmux browser open http://localhost:3000
# or as a directional split:
cmux new-pane --type browser --direction right --url http://localhost:3000cmux set-progress 0.5 --label "Building..."
cmux log --level info --source claude -- "Step 3/5 complete"
cmux set-status task "Running tests" --icon checkmark --color "#00ff00"--jsonread-screensendsend-key Entersnapshot--compact--snapshot-after