Open markdown files in a cmux formatted viewer panel with live reload. Use when you need to display plans, documentation, or notes alongside the terminal with rich rendering (headings, code blocks, tables, lists). Requires cmux environment ($CMUX_WORKSPACE_ID).
Scanned 5/27/2026
Install via CLI
openskills install LeeJuOh/claude-code-zero---
name: cmux-markdown
description: "Open markdown files in a cmux formatted viewer panel with live reload. Use when you need to display plans, documentation, or notes alongside the terminal with rich rendering (headings, code blocks, tables, lists). Requires cmux environment ($CMUX_WORKSPACE_ID)."
disable-model-invocation: true
allowed-tools: Bash, Read, Write
---
# Markdown Viewer with cmux
Use this skill to display markdown files in a dedicated panel with rich formatting and live file watching. Requires cmux environment (`$CMUX_WORKSPACE_ID`). Outside cmux, this skill's features are unavailable.
## Core Workflow
1. Write your plan or notes to a `.md` file.
2. Open it in a markdown panel.
3. The panel auto-updates when the file changes on disk.
```bash
# Open a markdown file as a split panel next to the current terminal
cmux markdown open plan.md
# Absolute path
cmux markdown open /path/to/PLAN.md
# Target a specific workspace
cmux markdown open design.md --workspace workspace:2
```
## When to Use
- Displaying an agent plan or task list alongside the terminal
- Showing documentation, changelogs, or READMEs while working
- Reviewing notes that update in real-time (e.g., a plan file being written by another process)
## Live File Watching
The panel automatically re-renders when the file changes on disk. This works with:
- Direct writes (`echo "..." >> plan.md`)
- Editor saves (vim, nano, VS Code)
- Atomic file replacement (write to temp, rename over original)
- Agent-generated plan files that are updated progressively
If the file is deleted, the panel shows a "file unavailable" state. During atomic replace, the panel retries within a short window. If the file returns later, close and reopen the panel.
## Agent Integration
### Opening a plan file
Write your plan to a file, then open it:
```bash
cat > plan.md << 'EOF'
# Task Plan
## Steps
1. Analyze the codebase
2. Implement the feature
3. Write tests
4. Verify the build
EOF
cmux markdown open plan.md
```
### Updating a plan in real-time
The panel live-reloads, so simply overwrite the file as work progresses:
```bash
# The markdown panel updates automatically when the file changes
echo "## Step 1: Complete" >> plan.md
```
## Routing
```bash
# Open in the caller's workspace (default — uses CMUX_WORKSPACE_ID)
cmux markdown open plan.md
# Open in a specific workspace
cmux markdown open plan.md --workspace workspace:2
# Open splitting from a specific surface
cmux markdown open plan.md --surface surface:5
# Open in a specific window
cmux markdown open plan.md --window window:1
```
## Deep-Dive References
| Reference | When to Use |
|-----------|-------------|
| [Commands]($SKILL_DIR/references/commands.md) | Full command syntax and options |
| [Live Reload]($SKILL_DIR/references/live-reload.md) | File watching behavior, atomic writes, edge cases |
## Rendering Support
The markdown panel renders:
- Headings (h1-h6) with dividers on h1/h2
- Fenced code blocks with monospaced font
- Inline code with highlighted background
- Tables with alternating row colors
- Ordered and unordered lists (nested)
- Blockquotes with left border
- Bold, italic, strikethrough
- Links (clickable)
- Horizontal rules
- Images (inline)
Supports both light and dark mode.
## Gotchas
- File watcher does NOT auto-reconnect after a file is deleted and recreated — close and reopen the panel to pick up the new file.
- Large files (100KB+) may cause brief UI hitches during re-render. Keep plan files concise.
- Write the full plan file first, then open it — opening while still writing exposes a partially rendered state.
- Don't delete and recreate files rapidly — prefer overwriting in place or using atomic replacement (write to temp + rename).
No comments yet. Be the first to comment!