Excalidraw Diagram Creation
SkillDev toolsLets your agent create hand-drawn style diagrams like architecture charts and flowcharts as Excalidraw files.
Then ask your AI: use the Excalidraw Diagram Creation skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add it as a step in a pipeline you build on Ahel, or connect Ahel to Claude, ChatGPT, Cursor, Claude Code or Codex and ask your AI to use it.
About this skill
Hand-drawn diagrams in Excalidraw JSON (architecture, flowcharts)
What this skill tells your AI
The instructions your AI receives, as published by taracodlabs/aiden in skills/excalidraw/SKILL.md and read by Ahel’s review.
Generate Excalidraw scene files (.excalidraw) by writing JSON that the Excalidraw app can open directly. Ideal for architecture diagrams, flowcharts, mind maps, and system design sketches in the characteristic hand-drawn style.
When to Use
- User wants a system architecture or component diagram
- User wants a flowchart or decision tree
- User wants a sequence or interaction diagram
- User wants a mind map or concept map
- User wants any visual sketch they can open and edit in Excalidraw
How to Use
1. Understand the Excalidraw JSON schema
An Excalidraw file is a JSON object with this top-level structure:
{
"type": "excalidraw",
"version": 2,
"source": "https://excalidraw.com",
"elements": [],
"appState": { "viewBackgroundColor": "#ffffff" },
"files": {}
}
Each element in "elements" is a shape with a common set of fields:
{
"id": "unique-id",
"type": "rectangle",
"x": 100, "y": 100,
"width": 200, "height": 80,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "#a5d8ff",
"fillStyle": "hachure",
"strokeWidth": 2,
"roughness": 1,
"opacity": 100
}
Common element types: rectangle, ellipse, diamond, arrow, line, text, freedraw.
2. Add text labels
Use a text element positioned over or near shapes:
{
"id": "txt-1",
"type": "text",
"x": 130, "y": 130,
"width": 140, "height": 25,
"text": "Web Server",
"fontSize": 16,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle"
}
3. Connect shapes with arrows
{
"id": "arrow-1",
"type": "arrow",
"x": 300, "y": 140,
"width": 100, "height": 0,
"points": [[0, 0], [100, 0]],
"startArrowhead": null,
"endArrowhead": "arrow",
"strokeColor": "#1e1e1e",
"strokeWidth": 2,
"roughness": 1
}
4. Generate and save the file
import json, uuid
def make_rect(x, y, w, h, label, bg="#a5d8ff"):
eid = str(uuid.uuid4())[:8]
return [
{ "id": eid, "type": "rectangle", "x": x, "y": y, "width": w, "height": h,
"angle": 0, "strokeColor": "#1e1e1e", "backgroundColor": bg,
"fillStyle": "hachure", "strokeWidth": 2, "roughness": 1, "opacity": 100 },
{ "id": eid+"t", "type": "text", "x": x+10, "y": y+(h//2)-10,
"width": w-20, "height": 20, "text": label, "fontSize": 16,
"fontFamily": 1, "textAlign": "center", "verticalAlign": "middle",
"strokeColor": "#1e1e1e", "opacity": 100 }
]
elements = []
elements += make_rect(100, 100, 160, 60, "Browser", "#ffd43b")
elements += make_rect(350, 100, 160, 60, "API Server", "#a5d8ff")
elements += make_rect(600, 100, 160, 60, "Database", "#b2f2bb")
scene = { "type": "excalidraw", "version": 2, "source": "https://excalidraw.com",
"elements": elements, "appState": { "viewBackgroundColor": "#ffffff" }, "files": {} }
with open("architecture.excalidraw", "w") as f:
json.dump(scene, f, indent=2)
print("Saved architecture.excalidraw — open in https://excalidraw.com")
5. Open the file
The user can open the .excalidraw file by:
- Dragging it into https://excalidraw.com in a browser
- Opening it via File → Open in the Excalidraw desktop app
Examples
"Draw a simple 3-tier web architecture diagram"
→ Use step 4 to generate three rectangles (Browser → API Server → Database) with connecting arrows. Save as architecture.excalidraw.
"Create a flowchart for a login process" → Use rectangles for steps, diamonds for decisions, arrows for flow. Generate JSON and save.
"Make a mind map about machine learning concepts" → Place a central ellipse, surround with connected sub-topic ellipses using short arrows.
Cautions
- All coordinates are in pixels — plan layout with approximate x/y offsets before generating
- Excalidraw IDs must be unique per element — always use
uuid.uuid4()or similar - The
roughnessproperty (0–2) controls the hand-drawn effect: 0=clean, 1=normal, 2=very rough - Very large diagrams (> 200 elements) may be slow to render in the browser
- Excalidraw JSON format may evolve — use
"version": 2which is the stable current format
Signals
- GitHub stars
- 851
- Forks
- 149
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
excalidraw-taracodlabs- Source
- github.com/taracodlabs/aiden