From mermaid
Renders Mermaid diagrams from .mmd files or .md files with Mermaid blocks to SVG images using beautiful-mermaid. Supports themes, configs, batch directories, and extraction.
npx claudepluginhub diegomarino/claude-toolshed --plugin mermaidThis skill is limited to using the following tools:
User request: "$ARGUMENTS"
Routes Mermaid diagram requests to type-specific guides (sequence, activity, ER, architecture); validates .md files, renders .mmd to SVG, architects from codebases.
Renders Mermaid diagrams as SVG and PNG using Beautiful Mermaid library. Supports flowcharts, sequences, state, class, ER diagrams with themes like Dracula, Nord. Use for user-requested diagram rendering via scripts and agent-browser.
Renders .d2 diagram files or extracts D2 code blocks from Markdown to SVG/PNG images in configurable output directory.
Share bugs, ideas, or general feedback.
User request: "$ARGUMENTS"
Render Mermaid diagrams from an existing .mmd file or a .md file with Mermaid blocks to SVG image files.
Resolve Plugin Path:
find "$HOME/.claude/plugins/cache" -type d -name "mermaid" -path "*/skills/mermaid" 2>/dev/null | head -1
If empty, run fallback:
find "$HOME" -maxdepth 8 -type d -name "mermaid" -path "*/skills/mermaid" 2>/dev/null | head -1
Use the returned path as PLUGIN_DIR.
Ensure Dependencies:
bash "$PLUGIN_DIR/scripts/ensure-deps.sh"
If .claude/mermaid.json does not exist, display a one-time nudge before continuing:
First time using the mermaid plugin? Run
/mermaid-configto pick a theme and output settings. Using defaults for now (zinc-light,./diagrams).
Read Config: If .claude/mermaid.json exists, read:
theme (default: zinc-light)output_directory (default: ./diagrams)output_format (default: svg)Resolve output path:
output_directory is "same" AND an input file path is known:
OUTPUT_DIR=$(dirname {input_file})output_directory is "same" AND no argument was provided:
OUTPUT_DIR=./diagramsOUTPUT_DIR=<output_directory from config>Determine Input:
.mmd file → render directly.md file → extract Mermaid blocks first:
node "$PLUGIN_DIR/scripts/extract_mermaid.js" {file}.mmd files:
find {dir} -name "*.mmd" -not -path "*/node_modules/*"Render:
Run for each input file. resilient_diagram.js renders SVG via beautiful-mermaid and maps errors to troubleshooting.md.
Theme handling:
If theme == "custom" and themeVariables is present in config:
node "$PLUGIN_DIR/scripts/resilient_diagram.js" {input_file} --output-dir $OUTPUT_DIR --custom-theme '{"bg":"#...","fg":"#..."}'
Pass the serialized themeVariables JSON as the --custom-theme value.
If theme == "custom" but themeVariables is absent from config: render without custom theme and display a note:
Custom theme configured but no themeVariables found — run
/mermaid-config→ option 6 to define colors.
Otherwise:
node "$PLUGIN_DIR/scripts/resilient_diagram.js" {input_file} --output-dir $OUTPUT_DIR --theme {theme}
Report:
/mermaid-config → health check to diagnose missing dependencies."Rendered 3 diagrams:
✅ diagrams/sequence-auth.svg
✅ diagrams/er-users.svg
✅ diagrams/architecture.svg