| Generate and render Mermaid diagrams for architecture docs, READMEs, PRs, terminals, and CI as themed SVG 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 https://github.com/imxv/Pretty-mermaid-skills --skill pretty-mermaid
Create or render Mermaid diagrams with the bundled Node.js CLI. Use SVG for documentation and presentations; use 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 |
| 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>.
node scripts/themes.mjs
node scripts/render.mjs \
--input diagram.mmd \
--output diagram.svg \
--theme tokyo-night
node scripts/render.mjs \
--input diagram.mmd \
--output diagram.txt \
--format ascii \
--color-mode none
Add --use-ascii when Unicode box-drawing characters are not acceptable.
node scripts/batch.mjs \
--input-dir ./diagrams \
--output-dir ./rendered \
--format svg \
--theme github-dark \
--workers 4
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 |
| --- | --- |
| --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 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 |
Take imxv/pretty-mermaid from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference npm.
Without those the skill loads but fails at the first command.