ワンクリックで
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.