원클릭으로
cmux
Open browsers and terminals in cmux panes. Use when the user asks to show a URL, open a browser, or create a new terminal.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Open browsers and terminals in cmux panes. Use when the user asks to show a URL, open a browser, or create a new terminal.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Git workflow, commits, PRs, branches. Also Linear tasks, Sentry debugging, UptimeRobot monitor checks, and dev environment management. Invoke /mael before any git operations.
Review committed changes on the current branch against project standards, security, simplicity, and architectural fit. Invoked as the `/code-review` slash command. Default range is `origin/main..HEAD`; pass a SHA or range as an argument to scope the review. Runs read-only via a sub-agent; the parent then proposes fixes interactively.
| name | cmux |
| description | Open browsers and terminals in cmux panes. Use when the user asks to show a URL, open a browser, or create a new terminal. |
This skill lets you interact with cmux to open browser panes and terminal panes for the user.
cmux's object model is three nested levels:
{project}-{worktree}, e.g. maelstrom-bravo).maelstrom uses a standard 3-pane layout per worktree workspace:
Inside the codebase, cmux is a three-layer package (src/maelstrom/cmux/):
client.py — transport (CmuxClient Protocol, real SubprocessCmuxClient,
fake RecordingCmuxClient, CmuxResult parsing, current_client/is_cmux_mode).model.py — CmuxLayout: pure cmux mechanics over a client. Its verbs are
partial and idempotent — each ensure_* asserts that at least one of an
entity exists (creating it only if none does), touching just its own subset and
leaving every other pane/tab/browser the user opened undisturbed. add_* is the
explicit "add another" operation. ensure_absent_* is the removal dual.mael_layout.py — policy: the only layer that knows the {project}-{worktree}
name and the pane 0/1/2 convention. CLI call sites use these functions.Everything degrades silently outside cmux (current_client()/CmuxLayout.current()
return None). The shell-level cmux CLI below is unchanged by this structure.
cmux is available when the CMUX_SOCKET_PATH environment variable is set. Always check this before attempting cmux commands:
if [ -n "$CMUX_SOCKET_PATH" ]; then
# cmux is available
fi
All cmux commands return plain text in OK <ref> format (not JSON). For example:
OK 6BA6371B-... — success with a refOK — success without a refTo show the user a URL in a browser pane:
cmux --socket "$CMUX_SOCKET_PATH" new-pane --type browser --url <url>
To open in a specific workspace:
cmux --socket "$CMUX_SOCKET_PATH" new-pane --type browser --url <url> --workspace <workspace_ref>
To open a new terminal pane alongside the current one:
cmux --socket "$CMUX_SOCKET_PATH" new-pane --type terminal --direction right
The --direction flag accepts right or down.
To open in a specific workspace:
cmux --socket "$CMUX_SOCKET_PATH" new-pane --type terminal --direction right --workspace <workspace_ref>
After creating a terminal pane, you can send commands to it using the surface ref from the new-pane response:
cmux --socket "$CMUX_SOCKET_PATH" send --surface <surface_ref> --text "cd /path/to/project\n"
To close a browser or terminal pane:
cmux --socket "$CMUX_SOCKET_PATH" close-surface --surface <surface_ref>
To show the current task in the cmux status bar:
cmux --socket "$CMUX_SOCKET_PATH" set-status task <issue-id> --icon <icon>
Known icon names: hammer, sparkle.
Examples:
cmux --socket "$CMUX_SOCKET_PATH" set-status task "NORT-123" --icon hammer
cmux --socket "$CMUX_SOCKET_PATH" set-status task "Planning NORT-123" --icon sparkle
Show the running app to the user:
cmux --socket "$CMUX_SOCKET_PATH" new-pane --type browser --url http://localhost:3010
Open a second terminal for running tests:
cmux --socket "$CMUX_SOCKET_PATH" new-pane --type terminal --direction right
Set status when starting a task:
cmux --socket "$CMUX_SOCKET_PATH" set-status task "NORT-123" --icon hammer
--socket "$CMUX_SOCKET_PATH" to connect to the running cmux instance.OK <ref> format, not JSON. Do NOT use --json.CMUX_SOCKET_PATH is not set, cmux is not available — do not attempt to use it.