← Back to Skills Marketplace
0xartex

Excalidraw Canvas

by 0xArtex · GitHub ↗ · v1.0.0
cross-platform ✓ Security Clean
899
Downloads
0
Stars
4
Active Installs
1
Versions
Install in OpenClaw
/install excalidraw-canvas
Description
Create Excalidraw diagrams and render them as PNG images. Use whenever you need to draw, explain complex workflows, visualize UIs/wireframes, or diagram anyt...
README (SKILL.md)

Excalidraw Canvas

Render diagrams or any drawings as PNG via a hosted API. Always double-check coordinates of elements or arrows.

Render

RESULT=$(curl -s -m 60 -X POST https://excalidraw-mcp.up.railway.app/api/render \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"elements": [...]}')

# Save PNG
echo "$RESULT" | python3 -c "import json,sys,base64; d=json.load(sys.stdin); open('/tmp/diagram.png','wb').write(base64.b64decode(d['png']))"

# Get edit URL
echo "$RESULT" | python3 -c "import json,sys; print(json.load(sys.stdin)['editUrl'])"

Response: {"success": true, "png": "\x3Cbase64>", "editUrl": "https://..../canvas/render-xxxxx"}

Always returns both the PNG image and an edit URL where your owner can modify the diagram in a full Excalidraw editor.

Element Types

All available types: rectangle, ellipse, diamond, text, arrow, line, freedraw

Shapes (rectangle, ellipse, diamond)

{"type":"rectangle","x":100,"y":100,"width":200,"height":80,"bg":"#a5d8ff","label":"My Box"}
{"type":"ellipse","x":100,"y":100,"width":150,"height":100,"bg":"#b2f2bb","label":"Node"}
{"type":"diamond","x":100,"y":100,"width":140,"height":100,"bg":"#ffec99","label":"Decision?"}
  • x, y — position
  • width, height — size
  • bg — any hex fill color
  • stroke — border color (default #1e1e1e)
  • label — text centered inside the shape

Text

{"type":"text","x":100,"y":50,"text":"Title","fontSize":28}

Arrows & Lines

{"type":"arrow","x":300,"y":140,"points":[[0,0],[150,0]]}
{"type":"line","x":0,"y":200,"points":[[0,0],[800,0]]}

Points are relative to x,y. Horizontal: [[0,0],[150,0]], vertical: [[0,0],[0,100]], bent: [[0,0],[0,50],[100,50]].

Freedraw

{"type":"freedraw","x":100,"y":100,"points":[[0,0],[5,3],[10,8],[20,15]]}

Freehand path — array of [x,y] points relative to position.

Full Example

RESULT=$(curl -s -m 60 -X POST https://excalidraw-mcp.up.railway.app/api/render \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"elements": [
    {"type":"text","x":250,"y":20,"text":"System Design","fontSize":28},
    {"type":"rectangle","x":50,"y":80,"width":180,"height":70,"bg":"#a5d8ff","label":"Frontend"},
    {"type":"rectangle","x":300,"y":80,"width":180,"height":70,"bg":"#b2f2bb","label":"API"},
    {"type":"rectangle","x":550,"y":80,"width":180,"height":70,"bg":"#ffec99","label":"Database"},
    {"type":"arrow","x":230,"y":115,"points":[[0,0],[70,0]]},
    {"type":"arrow","x":480,"y":115,"points":[[0,0],[70,0]]}
  ]}')

echo "$RESULT" | python3 -c "import json,sys,base64; d=json.load(sys.stdin); open('/tmp/diagram.png','wb').write(base64.b64decode(d['png'])); print(d['editUrl'])"

Sending to User

message(action="send", filePath="/tmp/diagram.png", caption="✏️ Edit: {editUrl}")

Always include the edit URL so the user can tweak the diagram.

Usage Guidance
This skill appears to do what it says: build and render Excalidraw diagrams via a hosted API and return a PNG plus an edit URL. Main caution: the diagram JSON (including any text inside shapes) is uploaded to https://excalidraw-mcp.up.railway.app — a third-party host not identified as an official Excalidraw service. Do not use this skill for diagrams containing secrets, private architecture, credentials, or confidential data. If you need stronger privacy, ask for a version that uses an official/external vetted API or self-hosted renderer, or test with only non-sensitive sample diagrams first. If you want higher assurance, request the maintainer/source or a trustworthy hosting domain before using with real data.
Capability Analysis
Type: OpenClaw Skill Name: excalidraw-canvas Version: 1.0.0 The skill's purpose is to render Excalidraw diagrams via a hosted API. It makes a `curl` request to `https://excalidraw-mcp.up.railway.app/api/render` to send diagram data and receives a base64-encoded PNG, which is then saved to `/tmp/diagram.png` using a Python script. All actions, including external network calls and local file operations, are directly aligned with the stated purpose of creating and rendering diagrams. There is no evidence of data exfiltration, malicious execution, persistence mechanisms, or prompt injection attempts to subvert the agent's behavior beyond its intended function, as detailed in SKILL.md.
Capability Assessment
Purpose & Capability
Name/description (render Excalidraw diagrams to PNG) matches the SKILL.md: instructions POST diagram element JSON to a rendering API and return a PNG and edit URL. No unrelated binaries, env vars, or installs are requested.
Instruction Scope
Runtime instructions are narrowly scoped to: POST JSON to https://excalidraw-mcp.up.railway.app/api/render, decode base64 PNG to /tmp/diagram.png, and return/send the edit URL. They do not read arbitrary local files or request unrelated credentials. Note: the skill will transmit the full diagram payload to an external third-party service (including any text you put in shapes), and instructs writing a file to /tmp.
Install Mechanism
No install spec or code files are present (instruction-only). This is the lowest install risk — nothing is written to disk by the skill itself beyond the one PNG file it asks to create at /tmp/diagram.png.
Credentials
The skill requests no environment variables or credentials, which is proportionate. However, because it sends diagram content to an external, third-party endpoint (hosted on railway.app, not an official excalidraw.com domain), use caution: diagrams may contain sensitive information that would be disclosed to that service.
Persistence & Privilege
The skill does not request persistent presence, does not modify other skills or system settings, and uses default invocation settings. No elevated privileges or always-on behavior requested.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install excalidraw-canvas
  3. After installation, invoke the skill by name or use /excalidraw-canvas
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release of excalidraw-canvas: - Create and render Excalidraw diagrams as PNG images via API. - Supports basic shapes (rectangle, ellipse, diamond), text, arrows, lines, and freehand drawing. - Returns both PNG image and an editable Excalidraw link with each render. - Detailed documentation and usage examples included.
Metadata
Slug excalidraw-canvas
Version 1.0.0
License
All-time Installs 5
Active Installs 4
Total Versions 1
Frequently Asked Questions

What is Excalidraw Canvas?

Create Excalidraw diagrams and render them as PNG images. Use whenever you need to draw, explain complex workflows, visualize UIs/wireframes, or diagram anyt... It is an AI Agent Skill for Claude Code / OpenClaw, with 899 downloads so far.

How do I install Excalidraw Canvas?

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

Is Excalidraw Canvas free?

Yes, Excalidraw Canvas is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Excalidraw Canvas support?

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

Who created Excalidraw Canvas?

It is built and maintained by 0xArtex (@0xartex); the current version is v1.0.0.

💬 Comments