| name | markdown-rendering |
| description | How to reliably open a markdown file in a cmux right pane without it rendering blank. Use whenever opening/showing/rendering a .md file in cmux's right pane via `cmux markdown open`. Covers the move-surface blank-render bug and the only two reliable approaches — open it correctly the first time, or close the existing right pane(s) first then open a fresh right pane. |
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:
cmux 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:
cmux list-panes --workspace "$CMUX_WORKSPACE_ID"
cmux list-pane-surfaces --pane pane:NN
cmux close-surface --surface surface:XX
cmux markdown open /abs/path/file.md --direction right --focus false
Hard Rules
- Never
move-surface a 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 false so 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.