Controls the cmux macOS terminal app (Ghostty-based, AI-agent-aware) via its CLI socket API. Use this skill to: open browser preview panes when a dev server starts or an HTML file is created; spin up named workspaces for parallel subagents; show live sidebar progress/status during long tasks; open utility splits on demand (logs, URLs, terminals) in any direction. Also handles `/cmux demo` — an interactive walkthrough with 3 screens of options that runs personalized live demos. Trigger when: a server starts and needs previewing, an HTML/URL artifact is created, parallel subagents are dispatched, a long task needs visible progress, the user asks to open/show something in a split or tab, or the user invokes `/cmux demo`.
npx skills add https://github.com/glebis/claude-skills --skill cmux
Controls the cmux macOS terminal app via its CLI socket API to orchestrate workspaces, panes, browser previews, sidebar status, and notifications.
Full CLI reference: references/api_reference.md
Always verify cmux is running before issuing commands:
cmux ping 2>/dev/null && echo "ok" || echo "cmux not available"
If unavailable, skip cmux enhancements silently — never block the main task.
When a dev server starts or an HTML file is created, open it in a right-side browser pane:
# Dev server detected (e.g. localhost:3000)
cmux new-pane --type browser --direction right --url http://localhost:3000
# HTML file created — serve it first, then preview
cd <project-dir> && python3 -m http.server 8080 &
cmux new-pane --type browser --direction right --url http://localhost:8080/<file>.html
When to trigger:
localhost:PORT, 127.0.0.1:PORT, Server running, Listening on.html file is written and the user would benefit from seeing it renderedDirection heuristic: right for wide layouts, down for narrow/tall terminals.
When dispatching parallel agents (via superpowers:dispatching-parallel-agents or similar), give each agent its own named cmux workspace so it's visible in the sidebar:
# Create a workspace per agent (new-workspace has no --cwd — cd inside --command)
cmux new-workspace --command "cd /path/to/project && claude --dangerously-skip-permissions"
cmux rename-workspace "agent: fix-auth"
# Set status so the sidebar shows what the agent is doing
cmux set-status task "fix-auth" --icon "⚡"
cmux set-status state "running" --color "#F59E0B"
When an agent completes:
cmux notify --title "Agent done" --subtitle "fix-auth" --body "Merged and cleaned up"
cmux set-status state "done" --color "#10B981"
Pattern: workspace 1 = orchestrator, workspaces 2–8 = subagents. Use cmux list-workspaces --json to track IDs.
Show live feedback for long-running tasks without interrupting the main session:
# Task start
cmux set-progress 0 --label "Building..."
cmux set-status phase "build" --icon "🔨"
# Midpoint update
cmux set-progress 0.5 --label "Running tests..."
cmux set-status phase "test" --icon "🧪"
# Completion
cmux set-progress 1 --label "Done"
cmux notify --title "Task complete" --body "All tests passed"
cmux clear-progress
Use cmux log <message> --level info to append entries to the workspace log panel (visible via ⌘I).
When to use: any task taking >10 seconds — file processing, test runs, builds, research sweeps, code generation loops.
Open any content in a split pane in the requested direction:
# Open a URL in a browser split
cmux new-pane --type browser --direction right --url <url>
# Open a terminal split running a command (e.g. log tail)
cmux new-pane --type terminal --direction down
cmux send "tail -f /path/to/server.log"
cmux send-key "Enter"
# Resize to make it a narrow utility strip
cmux resize-pane --pane <id> -D --amount 20 # shrink height by 20 rows
Direction mapping for natural language:
| User says | Direction flag |
|---|---|
| "on the right" / "beside" | --direction right |
| "on the left" | --direction left |
| "below" / "at the bottom" | --direction down |
| "above" / "at the top" | --direction up |
| "in a new tab" / "new workspace" | cmux new-workspace |
workspace-action and tab-action expose the right-click context-menu actions.
Full table with flags in references/api_reference.md — the available action names are:
cmux workspace-action --action <name> (sidebar workspaces):
pin · unpin · rename (needs --title) · clear-name · move-up · move-down ·
move-top · mark-read · mark-unread · close-others · close-above · close-below
cmux tab-action --action <name> (horizontal tabs):
rename · clear-name · pin · unpin · reload · duplicate ·
new-terminal-right · new-browser-right · mark-read · mark-unread ·
close-left · close-right · close-others
> ⚠️ Destructive actions act on OTHER tabs, not the one you name.
> close-others / close-above / close-below (workspace) and
> close-left / close-right / close-others (tab) close everything *except* the
> target. close-others spares pinned workspaces only. Never run these to
> "test" — they will close the user's live tabs. Prefer close-workspace --workspace <id>
> to close one specific workspace.
Renaming / selecting (common gotchas):
cmux workspace-action --action rename --title "<name>"(or cmux rename-workspace <name>). rename-tab only renames an inner tab and does
not change the switcher label.
cmux select-workspace --workspace <id>. There is no--action select (it errors "Unknown workspace action").
When unsure of a command's exact flags, run cmux <command> --help — every command
embeds full usage.
Full workflow example — superpowers runs a subagent that builds a UI:
# 1. Announce work in sidebar
cmux set-progress 0 --label "Scaffolding UI..."
cmux set-status agent "ui-builder" --icon "🎨"
# 2. Subagent does its work...
# 3. Server starts → auto-preview
cmux new-pane --type browser --direction right --url http://localhost:5173
# 4. Mark done
cmux set-progress 1 --label "Preview ready"
cmux notify --title "UI ready" --body "Preview open on the right"
cmux clear-progress
/cmux demo)When invoked as /cmux demo, run an interactive personalized walkthrough. Always verify cmux ping first — abort with a clear message if unavailable.
Ask with AskUserQuestion:
question: "What best describes how you work?"
header: "Workflow"
options:
- label: "Coding agent manager"
description: "Running multiple Claude sessions in parallel"
- label: "Web dev"
description: "Browser preview, dev servers, HTML artifacts"
- label: "Research / long tasks"
description: "Vault work, builds, sweeps that take minutes"
- label: "Show me everything"
description: "Run all demos back to back"
question: "How do you want to explore?"
header: "Demo mode"
options:
- label: "Walk me through it"
description: "Step by step with explanations between each demo"
- label: "Auto-run"
description: "Run all relevant demos back to back, narrate as you go"
- label: "Just the commands"
description: "Show what you'd run, skip execution"
question: "Do you use tmux?"
header: "tmux"
options:
- label: "Yes, daily"
description: "Show me the cmux + tmux combo"
- label: "For SSH / remote only"
description: "Show the remote persistence pattern"
- label: "Not really"
description: "Skip tmux, focus on cmux-native features"
Run demos based on Screen 1 answer. Each demo: announce what's happening, execute the commands, narrate what the user is seeing, suggest what to try next.
A — Browser preview pane (web dev, show everything)
/tmp/cmux-preview.html with a minimal styled pagepython3 -m http.server <PORT> --directory /tmp &cmux new-pane --type browser --direction right --url http://localhost:<PORT>/cmux-preview.htmlcmux browser --surface <id> screenshot to show the rendered result inlineB — Sidebar progress (research / long tasks, show everything)
set-progress, set-status)cmux notify on completioncmux log a few entries, mention ⌘I to open the log panelC — Subagent workspaces (coding agent manager, show everything)
cmux new-workspace --command "echo 'agent: fix-auth'" + renamecmux set-status with agent name + colorcmux notify simulating completioncmux close-workspace cleanupD — tmux inside cmux (if Screen 3 = daily or SSH)
cmux new-pane --type terminal --direction rightcmux send --surface <id> "tmux new-session -s work\n"editor, server, git)cmux read-screen --surface <id> and show outputtmux attach -t work to reconnect."E — Utility split on demand (all workflows)
cmux new-pane --type terminal --direction downtail -f or git log --follow -p command into itcmux resize-pane -D --amount 10 to shrink it to a stripIn auto mode (Screen 2 = "Auto-run"):
cmux set-progress and cmux set-status to show overall demo progress in the sidebarAfter each demo (or at the end of auto mode), close any panes/workspaces/processes created:
cmux close-surface --surface <id> # or close-workspace
kill <server-pid>
cmux clear-progress
cmux clear-status <key>
cmux ping fails: skip all cmux calls, proceed with task normallynew-pane or new-workspace call fails: log a warning, don't retryCreate new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Replace with description of the skill and when Claude should use it.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
This skill should be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices for Claude Code plugins.
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Take glebis/cmux from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.