Markdown Rendering in cmux
The Problem
cmux markdown open defaults to spawning a brand-new pane every time, even with --direction right. The common "fix" — moving the new markdown surface into the existing right pane with move-surface — bugs out: the moved viewer renders BLANK. The surface keeps type=markdown and looks healthy, but shows nothing.
So you get stuck: either a stray extra pane, or a blank viewer after moving it.
The Rule
You have exactly two reliable options. Never move-surface a markdown viewer — that is the path that bugs.
Option A — Open it right on the first try
If there is no usable right pane yet, just let cmux create one and leave it where it lands:
bashcmux markdown open /abs/path/file.md --direction right --focus false
Do NOT then move it. If it spawned where you want it, you're done.
Option B — Close existing right pane(s), then open fresh
If there are other right panes in the way (and they're unused or irrelevant), close them first, then open the markdown fresh as a new right pane:
bash# 1. find panes in THIS workspace cmux list-panes --workspace "$CMUX_WORKSPACE_ID" # 2. close the unused/irrelevant right pane(s) by closing their surfaces cmux list-pane-surfaces --pane pane:NN cmux close-surface --surface surface:XX # repeat per surface in that pane # 3. THEN open the markdown fresh — it creates its own clean right pane cmux markdown open /abs/path/file.md --direction right --focus false
Hard Rules
- Never
move-surfacea markdown viewer. It renders blank afterward. This is the core bug this skill exists for. - Open it correctly the first time (Option A), OR close the conflicting right pane(s) and open a fresh right pane from scratch (Option B).
- Only close panes that are unused or irrelevant — never close a pane the user is working in.
- Always anchor to
$CMUX_WORKSPACE_ID; never assume the visually focused workspace. - Pass
--focus falseso you don't steal the user's focus. - You can't screenshot/read a markdown surface to verify it. If unsure it rendered, ask the user.


