Your AI writes docs. md2html turns them into pages people actually read.
$ npx -y skills add haidang1810/md2html --agent claude-code
Your AI writes docs. md2html turns them into pages people actually read. A portable skill for Claude Code, Codex, Antigravity — or any AI agent — that turns long-form Markdown (plans, specs, system designs, RFCs, runbooks, postmortems, brainstorms, notes) into a single self-contained HTML page with sidebar TOC, Mermaid diagrams, step timelines, callouts, comparison cards, and a light/dark Claude-orange theme.
Your AI just produced 2,000 words of system design. Beautiful logic, careful tradeoffs, three architecture options compared — and you can't bring yourself to read past section 2 because it's a monospace wall of text in a terminal scrollback. Same goes for the brainstorm doc you asked it for last week, the migration plan from this morning, the postmortem draft you've been ignoring. Nobody on the team will click your plan.md link either.
You type /md2html anydoc.md. Your agent reads the file, opens template.html + components.md from this repo, and writes one polished HTML file next to the source. No build step, no server, no Node, no Python.
Works on anything long-form your AI hands you:
It's not a Markdown-to-HTML converter. It's an analyzer. The agent decides which sections become Mermaid diagrams, which become numbered step cards, which become pros-cons tables, which become collapsible "deep dive" panels. The result feels designed, not converted.
~/.claude/skills slotflowchart blocks. Trade-off discussions become side-by-side comparison cards. The agent decides — you don't write any of it.npm install. No Docker. The whole skill is three markdown/HTML files. Anyone with an AI agent and git clone can use it in under a minute.目录 instead of Contents. Eight languages built into the label table; the agent fills in any other language by translation.prefers-reduced-motion, focus-visible rings, mobile TOC drawer with backdrop and ESC-to-close, skip-to-content link, full print stylesheet. Reviewed by a UI/UX engineer who didn't pull punches.git clone https://github.com/haidang1810/md2html ~/.claude/skills/md2html
Reload your session and run:
/md2html plan.md
→ outputs plan.html next to the source.
git clone https://github.com/haidang1810/md2html ~/.config/md2html
mkdir -p ~/.codex/prompts
ln -s ~/.config/md2html/SKILL.md ~/.codex/prompts/md2html.md
(Codex's prompts directory has shifted across versions — adjust the symlink target if needed.)
git clone https://github.com/haidang1810/md2html ~/projects/md2html
Open Antigravity → Settings → Custom Agents → New, paste the contents of SKILL.md, and give the agent file-read access to ~/projects/md2html/.
If the agent supports a system prompt or custom instructions AND can read/write local files, it can run this skill. Clone the repo to a stable path, paste SKILL.md into the agent's custom instructions, done.
/md2html plan.md # writes plan.html
/md2html plan.md --out docs/x.html # custom output path
/md2html # prompts for a file
The agent picks components based on what's actually in the doc:
| What's in the Markdown | What you get |
|---|---|
| Numbered list of actions | Step cards with timeline rail |
| "A calls B, B writes to DB" prose | Mermaid flowchart |
| "Pros / Cons", "Trade-offs of X" | Two-column pros-cons box |
| "Option A vs B vs C" | Comparison cards (with ★ Recommended) |
| "Don't do X" / "Must do Y" | Danger / decision callout |
| Long appendix or code dump | Collapsible deep-dive panel |
| Key conclusion | Accent-bordered highlight box |
UI labels follow the source. The label table covers English, Vietnamese, Chinese (中文), Japanese (日本語), Korean (한국어), Spanish, French, German out of the box. Anything else, the agent translates equivalently and sets <html lang="..."> plus the --rec-label CSS variable. RTL languages are LTR-only for now.
See examples/example-plan.md (Vietnamese source) → examples/example-plan.html (rendered). The screenshots at the top of this README are from a longer test spec — a game economy design doc.
All visual tokens are CSS variables at the top of template.html. Change accent color, surface, fonts, radii by editing the :root and [data-theme="dark"] blocks. Don't rename classes — components.md references them.
:root {
--accent: #D97757; /* Claude orange — change me */
--bg: #FAFAF7;
/* … */
}
cd ~/.claude/skills/md2html && git pull
rm -rf ~/.claude/skills/md2html
md2html/
├── SKILL.md # Instructions the agent loads on /md2html
├── template.html # HTML skeleton: CSS + Mermaid + theme JS
├── components.md # Component catalog the agent assembles from
├── examples/ # Reference .md → .html pair (gold standard)
├── docs/ # Screenshots for this README
├── LICENSE
└── README.md
PRs welcome — especially translation tables for additional languages and theme variants.
MIT © 2026 haidang1810
md2html is a Claude Code plugin with 1 hand-picked skill, indexed on Flowy in the Documentation category. Install it with the command on its page. It includes md2html. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it