tools-plugin/skills/mermaid-diagrams/SKILL.md
Render Mermaid diagrams (mmdc) to SVG/PNG/PDF — flowcharts, sequence, ERDs, class, state, Gantt, pie, gitGraph. Use when rendering .mmd or embedding diagrams in GitHub Markdown.
npx skillsauth add laurigates/claude-plugins mermaid-diagramsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Expert in generating diagrams from Markdown-inspired text definitions using Mermaid CLI.
| Use this skill when... | Use d2-diagrams instead when... |
|---|---|
| Embedding a diagram directly in a GitHub README or wiki | The output needs rich styling, custom themes, or icons |
| Authoring sequence diagrams or simple flowcharts | The diagram has deeply nested containers or complex layouts |
| Targeting platforms that natively render Mermaid (GitHub, GitLab, Notion) | Generating standalone SVG/PDF architecture diagrams |
| Diagrams must travel as plain text alongside the source | A premium layout engine (tala) materially improves the result |
# npm (global)
npm install -g @mermaid-js/mermaid-cli
# npx (no install)
npx @mermaid-js/mermaid-cli -i input.mmd -o output.svg
# Convert to SVG (default)
mmdc -i diagram.mmd -o diagram.svg
# Convert to PNG
mmdc -i diagram.mmd -o diagram.png
# Convert to PDF
mmdc -i diagram.mmd -o diagram.pdf
# Pipe from stdin
echo 'graph TD; A-->B' | mmdc --input - -o diagram.svg
# Use built-in theme
mmdc -i diagram.mmd -o diagram.svg -t dark
mmdc -i diagram.mmd -o diagram.svg -t forest
mmdc -i diagram.mmd -o diagram.svg -t neutral
# Custom CSS
mmdc -i diagram.mmd -o diagram.svg -C custom.css
# Background color
mmdc -i diagram.mmd -o diagram.png -b transparent
mmdc -i diagram.mmd -o diagram.png -b '#ffffff'
# Set dimensions (PNG)
mmdc -i diagram.mmd -o diagram.png -w 1920 -H 1080
# Scale factor
mmdc -i diagram.mmd -o diagram.png -s 2
graph TD
A[Start] --> B{Decision}
B -->|Yes| C[Action 1]
B -->|No| D[Action 2]
C --> E[End]
D --> E
Direction options: TD (top-down), TB, BT, LR (left-right), RL
sequenceDiagram
participant A as Alice
participant B as Bob
A->>B: Hello
B-->>A: Hi there
A->>+B: Request
B-->>-A: Response
Arrow types:
| Arrow | Description |
|-------|-------------|
| -> | Solid line |
| --> | Dotted line |
| ->> | Solid with arrowhead |
| -->> | Dotted with arrowhead |
| -x | Solid with cross |
| -) | Async (open arrow) |
classDiagram
class Animal {
+String name
+int age
+makeSound()
}
class Dog {
+fetch()
}
Animal <|-- Dog
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE_ITEM : contains
PRODUCT ||--o{ LINE_ITEM : "ordered in"
stateDiagram-v2
[*] --> Idle
Idle --> Processing : submit
Processing --> Complete : success
Processing --> Error : failure
Complete --> [*]
Error --> Idle : retry
gantt
title Project Timeline
dateFormat YYYY-MM-DD
section Phase 1
Task A :a1, 2024-01-01, 30d
Task B :after a1, 20d
pie title Distribution
"Category A" : 40
"Category B" : 30
"Category C" : 30
gitGraph
commit
branch develop
checkout develop
commit
commit
checkout main
merge develop
commit
| Shape | Syntax |
|-------|--------|
| Rectangle | [Text] |
| Rounded | (Text) |
| Stadium | ([Text]) |
| Diamond | {Text} |
| Hexagon | {{Text}} |
| Circle | ((Text)) |
| Asymmetric | >Text] |
| Database | [(Text)] |
| Subroutine | [[Text]] |
graph TD
A[Styled]:::custom --> B
classDef custom fill:#f96,stroke:#333,stroke-width:2px
style A fill:#bbf,stroke:#f66
# Using Docker
docker run --rm -v "$(pwd)":/data minlag/mermaid-cli -i /data/diagram.mmd -o /data/output.svg
# With UID for correct permissions
docker run -u $UID --rm -v "$(pwd)":/data minlag/mermaid-cli -i /data/diagram.mmd
| Context | Command |
|---------|---------|
| Quick SVG | mmdc -i diagram.mmd -o diagram.svg |
| PNG with transparency | mmdc -i diagram.mmd -o diagram.png -b transparent |
| High-res PNG | mmdc -i diagram.mmd -o diagram.png -s 2 |
| Dark theme | mmdc -i diagram.mmd -o diagram.svg -t dark |
| Batch process | for f in *.mmd; do mmdc -i "$f" -o "${f%.mmd}.svg"; done |
| Stdin pipe | echo 'graph TD; A-->B' \| mmdc --input - -o out.svg |
| Flag | Description |
|------|-------------|
| -i, --input | Input file (use - for stdin) |
| -o, --output | Output file (determines format) |
| -t, --theme | Theme: default, dark, forest, neutral |
| -b, --backgroundColor | Background color |
| -C, --cssFile | Custom CSS file |
| -c, --configFile | Mermaid config JSON |
| -w, --width | Output width (PNG) |
| -H, --height | Output height (PNG) |
| -s, --scale | Scale factor |
| -p, --puppeteerConfigFile | Puppeteer config |
| -h, --help | Show help |
graph TB
subgraph Frontend
A[React App]
end
subgraph Backend
B[API Gateway]
C[Service 1]
D[Service 2]
end
subgraph Data
E[(PostgreSQL)]
F[(Redis)]
end
A --> B
B --> C
B --> D
C --> E
D --> F
sequenceDiagram
participant C as Client
participant G as Gateway
participant S as Service
participant D as Database
C->>G: HTTP Request
G->>S: Forward
S->>D: Query
D-->>S: Result
S-->>G: Response
G-->>C: HTTP Response
Create puppeteer-config.json:
{
"args": ["--no-sandbox", "--disable-setuid-sandbox"]
}
mmdc -p puppeteer-config.json -i diagram.mmd -o diagram.svg
# Increase timeout
mmdc -i large.mmd -o large.svg --timeout 60000
tools
Scaffold a new ComfyUI custom-node repo (pyproject, CI, release-please, vitest+pytest, JS extension skeleton) in the picker/gesture vein. Use when bootstrapping or init-ing a comfyui node pack.
tools
Orchestrate a ComfyUI node pack from idea to registry: scaffold, create + seed the repo, open the gitops adoption PR. Use when releasing or spinning up a new comfyui node pack.
testing
macOS EndpointSecurity/EDR high CPU & battery drain. Use when Kandji ESF / XProtect pegs a core; trace the exec storm via powermetrics + eslogger.
development
odiff pixel-by-pixel image diffing. Use when comparing screenshots, detecting visual regressions, diffing before/after PNGs, asserting golden images.