npx skills add ...
npx skills add imxv/pretty-mermaid-skills --skill pretty-mermaid
Generate and render Mermaid diagrams for architecture docs, READMEs, PRs, terminals, chats, and CI as themed SVG, PNG, or ASCII/Unicode art. Use this skill whenever the user provides Mermaid code or .mmd files; asks for a flowchart, sequence/state/class diagram, ERD, XY chart, or architecture/workflow/data-model visualization; or wants to beautify, theme, batch-convert, or make a diagram terminal-friendly. Runs locally without a browser or DOM, with 15 built-in themes and custom colors.
npx skills add imxv/pretty-mermaid-skills --skill pretty-mermaid
Create or render Mermaid diagrams with the bundled Node.js CLI. Use SVG for scalable documentation, PNG for sharing or raster-only consumers, and ASCII or Unicode for terminals and plain text.
Treat the directory containing this file as <skill-root>. Run bundled scripts from that directory, or invoke them with absolute paths. Keep user source and rendered output in the user's requested location; do not copy the renderer into their project.
.mmd file, preserving user terminology and relationships.Do not overwrite an existing source or output file unless the user asked for replacement.
| Need | Diagram type | Starter |
|---|---|---|
| Process, decision tree, architecture | Flowchart | flowchart LR |
| API calls, messages, interactions | Sequence | sequenceDiagram |
| Lifecycle or finite-state machine | State | stateDiagram-v2 |
| Classes, modules, relationships | Class | classDiagram |
| Database entities and cardinality | ER | erDiagram |
| Bars, lines, trends, comparisons | XY chart | xychart-beta |
Read references/DIAGRAM_TYPES.md when authoring non-trivial Mermaid syntax.
| Output | Best for | Notes |
|---|---|---|
| SVG | READMEs, docs, slides, websites | Scalable, themed, supports transparency |
| PNG | Chats, previews, raster-only tools | Set --format png; no external converter required |
| Unicode | Modern terminals and readable text previews | Default ASCII renderer output |
| Plain ASCII | Logs and restricted terminals | Add --use-ascii |
| ANSI-colored text | Interactive terminals | Set --color-mode |
Run these from <skill-root>.
Add --use-ascii when Unicode box-drawing characters are not acceptable.
Use batch rendering for three or more diagrams or when consistent options must be applied to a directory.
tokyo-nightgithub-dark, github-lightzinc-lightdraculanord, nord-lightRead references/THEMES.md or open docs/THEME_GALLERY.md when visual theme choice matters. A named theme can be refined with explicit color flags.
| Option | Purpose |
|---|---|
--theme <name> | Apply one of the 15 built-in themes |
--bg, --fg | Set required base colors |
--line, --accent, --muted | Refine connectors, highlights, and secondary text |
--surface, --border | Refine node fill and stroke |
--font <name> | Set the SVG font family |
| Option | Purpose |
|---|---|
--transparent | Remove the SVG background |
--padding <n> | Set canvas padding |
--node-spacing <n> | Set horizontal node spacing |
--layer-spacing <n> | Set vertical layer spacing |
--component-spacing <n> | Separate disconnected components |
--interactive | Enable XY chart hover tooltips |
| Option | Purpose |
|---|---|
--width <n> | Set output width from 100 to 10000 pixels while preserving aspect ratio |
--transparent | Preserve a transparent background |
| Option | Purpose |
|---|---|
--use-ascii | Replace Unicode box drawing with plain ASCII |
--padding-x, --padding-y | Tune diagram spacing |
--box-border-padding | Tune padding inside node boxes |
--color-mode <mode> | none, auto, ansi16, ansi256, truecolor, or html |
Run node scripts/render.mjs --help or node scripts/batch.mjs --help for the authoritative CLI list.
LR for wide flows and TB for narrow documents.assets/example_diagrams/ and consult the diagram reference.After rendering:
<svg; confirm PNG output opens as a valid image; confirm text output contains visible diagram content.Run both npm test and npm run validate when changing this skill, its scripts, templates, or references.
npm install in <skill-root>; the CLI also attempts a first-run install.node scripts/themes.mjs and use an exact listed name.references/DIAGRAM_TYPES.md, reduce to the failing statement, then restore the diagram incrementally.--node-spacing, --layer-spacing, or --component-spacing.--color-mode none.| Resource | Read or use when |
|---|---|
references/DIAGRAM_TYPES.md | Authoring or debugging Mermaid syntax |
references/THEMES.md | Comparing themes or defining custom colors |
references/api_reference.md | Extending scripts or calling beautiful-mermaid directly |
docs/THEME_GALLERY.md | Choosing a theme visually |
assets/example_diagrams/ | Starting from a supported diagram template |
scripts/render.mjs | Rendering one diagram |
scripts/batch.mjs | Rendering a directory in parallel |
scripts/themes.mjs | Listing installed themes |