cmux Debug
SkillDev toolsLets your agent run a command in a real terminal pane and capture its rendered output to verify how it displays.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the cmux Debug skill
About this capability
Verifies ccusage terminal output in a real cmux pane. Use when changing responsive tables, column widths, progress bars, spinners, or colors, or when a long-running command's output must be captured beyond the visible viewport.
What this skill tells your AI
The instructions your AI receives, as published by ccusage/ccusage in .agents/skills/cmux-debug/SKILL.md and read by ahel’s review.
Piped stdout is not a terminal: width detection, color, progress, and spinners all take a different branch, so a non-interactive run cannot confirm a rendering change. Run the command inside a cmux surface and read the pane back instead.
Pick a target with the listing commands (cmux --help, cmux capabilities --json), then send and capture against that same surface — the capture is only
meaningful for the pane the command actually ran in:
cmux send --workspace <workspace> --surface <surface> "printf '\\033c'; cd <cwd>; <command>\n"
cmux capture-pane --workspace <workspace> --surface <surface> --scrollback --lines 120
The leading screen reset keeps the previous run's output out of the capture, and
--scrollback is what survives output longer than the viewport;
cmux read-screen without it only returns the visible screen.
For a responsive-layout bug, capture the geometry in the same send so the widths are provably the ones the command saw:
cmux send --workspace <workspace> --surface <surface> "printf '\\033c'; stty size; printf 'COLUMNS=%s\n' \"\$COLUMNS\"; cd <cwd>; <command>\n"
Then check the rendered table against that width: no wrapping, and no truncated date, model, or total columns. Repeat at a narrow width — layout regressions show up there first.
If capture-pane or read-screen is missing from cmux capabilities --json,
fall back to socket RPC, which takes UUIDs rather than refs:
cmux rpc surface.read_text '{"workspace_id":"<workspace_uuid>","surface_id":"<surface_uuid>","scrollback":true,"lines":120}'
Signals
- GitHub stars
- 19k
- Forks
- 830
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
cmux-debug- Source
- github.com/ccusage/ccusage