Mermaid Image Generator

v1.0.0

Generate PNG/SVG images from Mermaid diagram syntax using mermaid.ink API. Zero dependencies - uses only Node.js built-in modules and curl. Use when users ne...

0· 512·5 current·5 all-time
bywuzhanwei@vincent-ng
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The name/description match the included script and instructions: it encodes Mermaid and calls mermaid.ink. Minor inconsistency: SKILL.md advertises "zero dependencies" and the registry lists no required binaries, but the script calls the external 'curl' binary via spawnSync; if curl is not present the script will fail. This is a small mismatch but explainable.
Instruction Scope
Runtime instructions and the script stay within scope: read Mermaid from file/stdin, base64-encode, call mermaid.ink, write image file. The SKILL.md explicitly warns that diagram code is sent to an external service and advises against including sensitive data.
Install Mechanism
No install spec (instruction-only) and the code does not download or execute third-party archives. The script spawns curl to fetch images; there is no remote install/download of code beyond contacting the mermaid.ink rendering endpoint.
Credentials
No environment variables, credentials, or config paths are requested. The script does not attempt to read unrelated configuration or secrets.
Persistence & Privilege
The skill does not request persistent/always-on privileges and only writes the requested output file(s). It does not modify other skills or system-wide agent settings.
Assessment
This skill is internally coherent and appears safe for normal use, but check a few things before installing: 1) The script requires the curl binary (it will fail if curl is absent) — ensure curl is available or modify the script to use Node https. 2) Diagram source is sent to mermaid.ink — do not send sensitive or private information. 3) Review the small script yourself (it’s short) to confirm it matches your expectations; run in an isolated environment if you have stricter privacy requirements. 4) Be aware of network access, service rate limits, and the mermaid.ink privacy/policy if you plan to process many diagrams.

Like a lobster shell, security has layers — review code before you run it.

latestvk97fbpfq7kkca1hqk62sr69e6181ywcr

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

Mermaid Image Generator

Convert Mermaid diagram syntax to PNG/SVG images using the mermaid.ink online rendering API. Zero dependencies - uses only Node.js built-in modules and curl.

Quick Start

# From a .mmd file
node scripts/mermaid-to-image.js diagram.mmd output.png

# From stdin
echo "flowchart LR; A --> B" | node scripts/mermaid-to-image.js - output.png

# Generate SVG instead
node scripts/mermaid-to-image.js diagram.mmd output.svg

When to Use This Skill

Use this skill when:

  • User asks to "draw a diagram", "create a flowchart", "make a visual"
  • User needs diagram images for PPTs, documentation, or presentations
  • User wants to convert Mermaid code to shareable image files
  • Local Mermaid CLI (mmdc) is unavailable or has dependency issues

Script Usage

Basic Conversion

node scripts/mermaid-to-image.js <input> <output>

Input options:

  • File path: diagram.mmd
  • Stdin: - (pipe Mermaid code directly)

Output format: Determined by file extension (.png or .svg)

Examples

Example 1: Convert file to PNG

node scripts/mermaid-to-image.js flowchart.mmd flowchart.png

Example 2: Pipe from stdin

cat <<EOF | node scripts/mermaid-to-image.js - sequence.png
sequenceDiagram
    Alice->>Bob: Hello
    Bob-->>Alice: Hi
EOF

Example 3: Generate SVG for web

node scripts/mermaid-to-image.js architecture.mmd architecture.svg

Mermaid Diagram Types

This skill supports all Mermaid diagram types:

TypeUse Case
flowchartProcesses, algorithms, user journeys
sequenceDiagramAPI flows, interactions over time
classDiagramOOP design, domain models
erDiagramDatabase schemas
stateDiagramState machines
ganttProject timelines
pieProportional data
gitGraphGit branching strategies

Example Mermaid Code

Flowchart

flowchart LR
    A[Start] --> B{Decision}
    B -->|Yes| C[Action 1]
    B -->|No| D[Action 2]
    C --> E[End]
    D --> E

Sequence Diagram

sequenceDiagram
    participant User
    participant API
    participant Database
    
    User->>API: POST /login
    API->>Database: Query
    Database-->>API: Result
    API-->>User: Response

Class Diagram

classDiagram
    Animal <|-- Duck
    Animal <|-- Fish
    Animal: +int age
    Animal: +String gender
    Animal: +isMammal()

API Details

Service: mermaid.ink Endpoints:

  • PNG: https://mermaid.ink/img/{base64_code}
  • SVG: https://mermaid.ink/svg/{base64_code}

Advantages:

  • ✅ No local dependencies (no Chrome/Puppeteer needed)
  • ✅ Free and fast
  • ✅ Returns high-quality PNG/SVG
  • ✅ Works in headless environments

Limitations:

  • Requires internet connection
  • Diagram code is sent to external service (don't use for sensitive data)

Error Handling

The script handles common errors:

❌ File not found: diagram.mmd
❌ API request failed: 400 Bad Request
❌ Failed to connect to mermaid.ink: Connection timeout

Troubleshooting:

  1. Check internet connectivity
  2. Verify Mermaid syntax at https://mermaid.live
  3. Ensure output directory exists (script creates it automatically)

Integration Pattern

When creating diagrams for users:

  1. Write Mermaid code → Save to .mmd file or use stdin
  2. Run conversion script → Generate PNG/SVG
  3. Send/deliver image → Attach to response or save to specified location

Example workflow:

# 1. Create diagram
cat > openclaw-flow.mmd <<EOF
flowchart LR
    User --> OpenClaw
    OpenClaw --> Tools
EOF

# 2. Convert to image
node scripts/mermaid-to-image.js openclaw-flow.mmd openclaw-flow.png

# 3. Use the image (send via message, save, etc.)

Best Practices

  1. Keep diagrams simple - Under 15 nodes for readability
  2. Use meaningful labels - Self-documenting diagrams
  3. Test syntax first - Validate at mermaid.live before converting
  4. Choose format wisely - PNG for PPTs, SVG for web/docs
  5. Add comments - Use %% for in-diagram documentation

Security Notes

  • Diagram code is sent to mermaid.ink API
  • Do not include sensitive information in diagrams
  • For sensitive data, use local Mermaid CLI instead

Files

2 total
Select a file
Select a file to preview.

Comments

Loading comments…