Skip to main content
Surfaces are individual terminal or browser panels within panes. Each pane can contain one or more surfaces stacked vertically.

list-panels

List all surfaces in the current or specified workspace (legacy alias for surface listing).
Flags:
string
Workspace to list surfaces from (defaults to $CMUX_WORKSPACE_ID)
boolean
Output results in JSON format
string
Control ID output format: refs, uuids, or both
Output (text):
Output (JSON):

new-surface

Create a new surface in the current or specified pane.
Flags:
string
Workspace context (defaults to $CMUX_WORKSPACE_ID)
string
Pane to add surface to (defaults to current pane)
string
Surface type: terminal or browser
string
URL to open (for browser surfaces)
Examples:
Output:

close-surface

Close a specific surface.
Flags:
string
Workspace context (defaults to $CMUX_WORKSPACE_ID)
string
Surface to close (defaults to $CMUX_SURFACE_ID)
string
Legacy alias for --surface
Examples:
Output:

focus-panel

Focus a specific surface (panel).
Flags:
string
required
Surface to focus (ID, ref, or index)
string
Workspace context (defaults to $CMUX_WORKSPACE_ID)
Examples:
Output:

new-split

Create a new split pane with a surface.
Arguments:
string
required
Split direction: left, right, up, or down
Flags:
string
Workspace context (defaults to $CMUX_WORKSPACE_ID)
string
Reference surface to split from (defaults to $CMUX_SURFACE_ID)
string
Legacy alias for --surface
Examples:
Output:

move-surface

Move a surface to a different pane, workspace, or window.
Flags:
string
required
Surface to move (ID, ref, or index)
string
Destination pane (ID, ref, or index)
string
Destination workspace (ID, ref, or index)
string
Destination window (ID, ref, or index)
string
Place before this surface
string
Place after this surface
number
Set specific index position
boolean
Whether to focus the surface after moving
Examples:
Output:

reorder-surface

Reorder a surface within its pane.
Flags:
string
required
Surface to reorder (ID, ref, or index)
string
Workspace context
string
Place before this surface
string
Place after this surface
number
Set specific index position
Examples:
Output:

surface-health

Check the health status of all surfaces in a workspace.
Flags:
string
Workspace to check (defaults to $CMUX_WORKSPACE_ID)
boolean
Output results in JSON format
Output (text):
Output (JSON):

trigger-flash

Trigger a visual flash on a surface (for debugging).
Flags:
string
Workspace context (defaults to $CMUX_WORKSPACE_ID)
string
Surface to flash (defaults to $CMUX_SURFACE_ID)
Output:

refresh-surfaces

Refresh all surfaces (legacy command).
Output:

drag-surface-to-split

Drag a surface to create a split in a specific direction (legacy command).
Flags:
string
required
Surface to drag (ID or index)
string
Legacy alias for --surface
Arguments:
string
required
Split direction: left, right, up, or down
Example:
Output:

Global Flags

These flags can be used with most surface commands:
string
Path to the cmux socket (default: /tmp/cmux.sock or $CMUX_SOCKET_PATH)
string
Socket authentication password (or use $CMUX_SOCKET_PASSWORD)
boolean
Output results in JSON format
string
Control ID output format: refs, uuids, or both