← Back to Skills Marketplace
erdmannsilva

Erdmannsilva Excalidraw

by Alexandre Erdmann · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
62
Downloads
0
Stars
1
Active Installs
1
Versions
Install in OpenClaw
/install erdmannsilva-excalidraw
Description
Generate hand-drawn style diagrams, flowcharts, and architecture diagrams as PNG images from Excalidraw JSON
README (SKILL.md)

Excalidraw Diagram Generator

Generate beautiful hand-drawn style diagrams rendered as PNG images.

Workflow

  1. Generate JSON — Write Excalidraw element array based on what the user wants
  2. Save to file — Write JSON to /tmp/\x3Cname>.excalidraw
  3. Rendernode \x3Cskill_dir>/scripts/render.js /tmp/\x3Cname>.excalidraw /tmp/\x3Cname>.png
  4. Send — Send the PNG via message tool with filePath

Quick Reference

node \x3Cskill_dir>/scripts/render.js input.excalidraw output.png

Element Types

Type Shape Key Props
rectangle Box x, y, width, height
ellipse Oval x, y, width, height
diamond Decision x, y, width, height
arrow Arrow connects shapes (see Arrow Binding below)
line Line x, y, points: [[0,0],[dx,dy]]
text Label x, y, text, fontSize, fontFamily (1=hand, 2=sans, 3=code)

Styling (all shapes)

{
  "strokeColor": "#1e1e1e",
  "backgroundColor": "#a5d8ff",
  "fillStyle": "hachure",
  "strokeWidth": 2,
  "roughness": 1,
  "strokeStyle": "solid"
}

fillStyle: hachure (diagonal lines), cross-hatch, solid roughness: 0=clean, 1=hand-drawn (default), 2=very sketchy

Arrow Binding (IMPORTANT)

Always use from/to bindings for arrows. The renderer auto-calculates edge intersection points — no manual coordinate math needed.

Simple arrow (straight, between two shapes)

{"type":"arrow","id":"a1","from":"box1","to":"box2","strokeColor":"#1e1e1e","strokeWidth":2,"roughness":1}

That's it. No x, y, or points needed. The renderer computes start/end at shape edges.

Multi-segment arrow (routed path with waypoints)

For arrows that need to go around obstacles, use absolutePoints with intermediate waypoints:

{
  "type":"arrow","id":"a2","from":"box3","to":"box1",
  "absolutePoints": true,
  "points": [[375,500],[30,500],[30,127],[60,127]],
  "strokeColor":"#1e1e1e","strokeWidth":2,"roughness":1
}
  • First point = near source shape edge (will snap to actual edge)
  • Last point = near target shape edge (will snap to actual edge)
  • Middle points = absolute waypoint coordinates for routing

Arrow labels

Place a separate text element near the arrow midpoint:

{"type":"text","id":"label","x":215,"y":98,"width":85,"height":16,"text":"sends data","fontSize":10,"fontFamily":1,"strokeColor":"#868e96"}

Arrow styles

  • "strokeStyle":"dashed" — dashed line
  • "startArrowhead": true — bidirectional arrow

Template: Flowchart with Bindings

{
  "type": "excalidraw",
  "version": 2,
  "elements": [
    {"type":"rectangle","id":"start","x":150,"y":50,"width":180,"height":60,"strokeColor":"#1e1e1e","backgroundColor":"#b2f2bb","fillStyle":"hachure","strokeWidth":2,"roughness":1},
    {"type":"text","id":"t1","x":200,"y":65,"width":80,"height":30,"text":"Start","fontSize":20,"fontFamily":1,"strokeColor":"#1e1e1e"},

    {"type":"arrow","id":"a1","from":"start","to":"decision","strokeColor":"#1e1e1e","strokeWidth":2,"roughness":1},

    {"type":"diamond","id":"decision","x":140,"y":170,"width":200,"height":120,"strokeColor":"#1e1e1e","backgroundColor":"#ffec99","fillStyle":"hachure","strokeWidth":2,"roughness":1},
    {"type":"text","id":"t2","x":185,"y":215,"width":110,"height":30,"text":"Condition?","fontSize":18,"fontFamily":1,"strokeColor":"#1e1e1e","textAlign":"center"},

    {"type":"arrow","id":"a2","from":"decision","to":"process","strokeColor":"#1e1e1e","strokeWidth":2,"roughness":1},

    {"type":"rectangle","id":"process","x":150,"y":350,"width":180,"height":60,"strokeColor":"#1e1e1e","backgroundColor":"#a5d8ff","fillStyle":"hachure","strokeWidth":2,"roughness":1},
    {"type":"text","id":"t3","x":190,"y":365,"width":100,"height":30,"text":"Process","fontSize":20,"fontFamily":1,"strokeColor":"#1e1e1e"}
  ]
}

Layout Guidelines

  • Node size: 140-200 × 50-70 px
  • Diamond: 180-200 × 100-120 px (taller for text)
  • Vertical spacing: 60-100 px between nodes
  • Horizontal spacing: 80-120 px between nodes
  • Text: Position inside shape manually (offset ~15-30px from top-left of shape)
  • Arrow labels: Place as separate text elements near midpoint of arrow path

Color Palette

Fills: #a5d8ff (blue), #b2f2bb (green), #ffec99 (yellow), #ffc9c9 (red), #d0bfff (purple), #f3d9fa (pink), #fff4e6 (cream) Strokes: #1e1e1e (dark), #1971c2 (blue), #2f9e44 (green), #e8590c (orange), #862e9c (purple) Labels: #868e96 (gray, for annotations)

Tips

  • Every element needs a unique id (required for binding!)
  • Use from/to on arrows — don't calculate coordinates manually
  • roughness:0 for clean diagrams, 1 for sketchy feel
  • Text fontFamily:1 for hand-drawn, 3 for code
  • Group related elements spatially, color-code by type
  • For nested layouts, use a large background rectangle as a container
Usage Guidance
This skill looks benign for generating diagrams. Before installing, be aware that using it involves running a local Node script and setup may download npm dependencies and fonts. For sensitive diagrams, remember that the workflow writes JSON and PNG files under /tmp and does not document cleanup.
Capability Analysis
Type: OpenClaw Skill Name: erdmannsilva-excalidraw Version: 1.0.0 The skill bundle provides a legitimate utility for rendering Excalidraw JSON diagrams into PNG images using Node.js, roughjs, and resvg-js. The setup script (scripts/setup.sh) downloads fonts from trusted sources (jsDelivr and Microsoft's GitHub) and uses standard tools for font conversion. The rendering logic (scripts/render.js) is self-contained, performs no unauthorized network activity, and handles file operations safely within the context of its stated purpose.
Capability Tags
crypto
Capability Assessment
Purpose & Capability
The stated purpose is diagram rendering, and the visible code aligns by reading Excalidraw JSON, rendering shapes/text/arrows, and writing a PNG.
Instruction Scope
The workflow asks the agent to create temporary JSON/PNG files and run a local Node renderer; this is scoped and purpose-aligned, but it is still local code execution.
Install Mechanism
There is no install spec and no declared required binaries, but the included setup script performs npm installation and downloads font assets from external hosts.
Credentials
Node/npm and setup-time network access are proportionate for a renderer, but they are under-declared in metadata and should be expected before use.
Persistence & Privilege
No credentials, elevated privileges, background services, or autonomous persistence are visible; setup persists only dependencies/fonts and chmods the renderer.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install erdmannsilva-excalidraw
  3. After installation, invoke the skill by name or use /erdmannsilva-excalidraw
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release of Excalidraw diagram generator skill: - Generate hand-drawn style diagrams, flowcharts, and architecture diagrams as PNG images from Excalidraw JSON. - Supports core Excalidraw element types: rectangles, ellipses, diamonds, arrows, lines, and text. - Simple workflow: write JSON → save to file → render PNG via Node.js script. - Arrow elements use `from`/`to` bindings to auto-calculate connections between shapes. - Includes examples, layout guidelines, color palette reference, and best practices for diagram creation.
Metadata
Slug erdmannsilva-excalidraw
Version 1.0.0
License MIT-0
All-time Installs 1
Active Installs 1
Total Versions 1
Frequently Asked Questions

What is Erdmannsilva Excalidraw?

Generate hand-drawn style diagrams, flowcharts, and architecture diagrams as PNG images from Excalidraw JSON. It is an AI Agent Skill for Claude Code / OpenClaw, with 62 downloads so far.

How do I install Erdmannsilva Excalidraw?

Run "/install erdmannsilva-excalidraw" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Erdmannsilva Excalidraw free?

Yes, Erdmannsilva Excalidraw is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Erdmannsilva Excalidraw support?

Erdmannsilva Excalidraw is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Erdmannsilva Excalidraw?

It is built and maintained by Alexandre Erdmann (@erdmannsilva); the current version is v1.0.0.

💬 Comments