From claude-superskills
Generates hand-drawn Excalidraw diagrams for sketch-style architecture, system designs, concept maps, and user flows. Outputs embeddable files for Obsidian or standalone use.
npx claudepluginhub ericgandrade/claude-superskills --plugin claude-superskillsThis skill uses the workspace's default tool permissions.
This skill creates diagrams using the Excalidraw format — a JSON-based drawing format rendered by the Excalidraw library and its integrations. The output has a distinctive hand-drawn, whiteboard aesthetic that is ideal for architecture sketches, concept maps, brainstorming visuals, and informal system diagrams.
Generates Excalidraw JSON diagram files (.excalidraw) for visualizing workflows, architectures, and concepts as visual arguments with evidence artifacts for technical diagrams.
Generates Excalidraw diagrams from natural language including flowcharts, mind maps, architectures, ER diagrams, and sequence diagrams. Outputs editable .excalidraw JSON files.
Generates architecture diagrams on a live Excalidraw canvas from text, components, or samples for data flows, call chains, and exports to PNG/SVG/Excalidraw.
Share bugs, ideas, or general feedback.
This skill creates diagrams using the Excalidraw format — a JSON-based drawing format rendered by the Excalidraw library and its integrations. The output has a distinctive hand-drawn, whiteboard aesthetic that is ideal for architecture sketches, concept maps, brainstorming visuals, and informal system diagrams.
Unlike Mermaid which produces precise, flow-based diagrams from DSL text, Excalidraw uses geometric primitives (rectangles, ellipses, arrows, text, lines) laid out on a freeform canvas. The hand-drawn style makes it suitable for early-stage thinking, workshop facilitation, and documentation where the informal look communicates "this is a sketch, not a specification."
In Obsidian, Excalidraw files are supported via the Excalidraw plugin by Zsolt Viczian, which renders .excalidraw files natively and allows embedding them in notes.
Invoke this skill when:
.excalidraw file or embedded in a Markdown noteDo NOT use this skill when:
mermaid-diagram insteadobsidian-canvas instead| Format | Use Case |
|---|---|
Obsidian embed (.md with JSON) | Embedded in an Obsidian note, edited with the Excalidraw plugin |
Standalone .excalidraw file | Opened directly in Excalidraw app or excalidraw.com |
| Animated SVG | Excalidraw plugin "export animated" feature — for presentations |
Boxes representing services/components connected with labeled arrows. Uses color to group related components (e.g., blue for frontend, green for backend, orange for external).
Central concept with radiating branches. Each branch is a related idea. Uses curved arrows and freeform text nodes.
Horizontal swim lanes for actors. Steps flow left to right. Decision points use diamond shapes.
Four levels: System Context → Container → Component → Code. Each level drawn as nested boxes with arrows for interactions.
Actors as columns, time flowing downward. Message arrows between columns with labels.
From the user's request, determine:
If the user's request is vague ("draw our system"), ask one clarifying question:
Plan the component positions before writing the Excalidraw JSON:
Color guidelines:
#1971c2 / fill #d0ebff) — user-facing or frontend components#2f9e44 / fill #d3f9d8) — backend or processing components#e8590c / fill #ffe8cc) — external systems or third-party services#862e9c / fill #f3d9fa) — data storage or databases#495057 / fill #f1f3f5) — infrastructure or platform componentsExcalidraw diagrams are JSON objects with an elements array. Each element is a shape with position, size, style, and content properties.
Element schema:
{
"type": "rectangle",
"id": "unique-id",
"x": 100,
"y": 200,
"width": 160,
"height": 80,
"strokeColor": "#1971c2",
"backgroundColor": "#d0ebff",
"fillStyle": "hachure",
"strokeWidth": 2,
"roughness": 1,
"opacity": 100,
"text": "Component Name",
"fontSize": 16,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "middle"
}
Shape types:
rectangle — boxes for components and systemsellipse — circles/ovals for actors or rounded shapesdiamond — decision pointsarrow — directed connections between componentsline — undirected connectionstext — standalone labelsArrow element:
{
"type": "arrow",
"id": "arrow-1",
"x": 260,
"y": 240,
"width": 140,
"height": 0,
"points": [[0, 0], [140, 0]],
"startBinding": {"elementId": "source-id", "gap": 5, "focus": 0},
"endBinding": {"elementId": "target-id", "gap": 5, "focus": 0},
"strokeColor": "#343a40",
"strokeWidth": 2,
"roughness": 1
}
Full Excalidraw file structure:
{
"type": "excalidraw",
"version": 2,
"source": "https://excalidraw.com",
"elements": [...],
"appState": {
"gridSize": null,
"viewBackgroundColor": "#ffffff"
}
}
For standalone .excalidraw file output:
Output the complete JSON block in a fenced code block labeled json. Instruct the user to save it as DiagramName.excalidraw.
For Obsidian embed:
Wrap the JSON in an Obsidian Excalidraw note format — a Markdown file with an excalidraw-plugin: parsed frontmatter and the JSON embedded in a code fence:
---
excalidraw-plugin: parsed
tags:
- excalidraw
---
```json
{
"type": "excalidraw",
...
}
```
Save as DiagramName.excalidraw.md in the vault. Embed in any note with ![[DiagramName.excalidraw.md]].
For animated SVG: Note that animated export requires the Obsidian Excalidraw plugin's export command — it cannot be generated as pure JSON. Guide the user through: Design view → ⋮ menu → Export as animated SVG.
After the output, explain how to use it:
.excalidraw.md extension. Open in Obsidian to see the rendered diagram. Embed with ![[filename.excalidraw.md]]..excalidraw files.Clarity over complexity:
Grouping by color:
Typography:
fontFamily: 1 (the hand-drawn font) for titles and labels.Spacing:
NEVER:
ALWAYS:
roughness: 1 property for the hand-drawn aestheticfrontend-ui, api-gateway, user-db)Example 1: Three-tier web architecture
User: "Draw a simple three-tier web architecture: browser, API server, and database."
Produces: An Excalidraw JSON with three boxes (Browser in blue, API Server in green, Database in purple) connected by two labeled arrows (HTTP Request/Response, SQL Query/Result). Grid layout, left to right.
Example 2: Concept map for product strategy
User: "Create a concept map where Product Strategy is the center, connected to: Vision, ICP, Positioning, Pricing, GTM, and Roadmap."
Produces: A radial layout with "Product Strategy" as a central ellipse and six boxes arranged around it, each connected with an arrow. Consistent spacing (~250px radius), short labels.
Example 3: User registration flow
User: "Sketch a user registration flow: User fills form → Validate email → Check if email exists → (Yes) Show error → (No) Hash password → Save to DB → Send confirmation."
Produces: A left-to-right flowchart with rectangles for process steps, a diamond for the decision point, two branches (Yes to error box, No continuing the flow), and end at "Send confirmation."
Example 4: C4 Context diagram
User: "Draw a C4 context diagram for our SaaS application. Users interact with our Web App. The Web App calls our Payment Provider and sends emails via our Email Service."
Produces: A C4-style sketch with User as a person icon (ellipse), Web App as the central rectangle, and two external system boxes (Payment Provider, Email Service) at the right edge. Labeled arrows for each interaction.
Example 5: Team structure org chart
User: "Quick org chart sketch: CPO at top, under CPO are PM Lead and Design Lead, under PM Lead are three PMs, under Design Lead are two Designers."
Produces: A top-down tree with seven total boxes, connected by hierarchical lines, using gray for the org structure coloring and clear label names.