excalidraw-diagram
Skill16 starsChanged 9 months agoMITView on GitHub
Use when someone asks to draw a diagram, make an Excalidraw diagram, or build an editable diagram. Default for all diagram requests.
51 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- podo/design-agent-skillstheir own version, first seen Nov 8, 2026
- levi-qiao/obsidian-llm-wikitheir own version, first seen Nov 8, 2026
- ZhouYinLong-lab/Dog-Skillstheir own version, first seen Nov 8, 2026
- codetesla51/skillstheir own version, first seen Nov 1, 2026
- hmjBill/skillstheir own version, first seen Oct 29, 2026
- tony-hoang-ai-automation/mkt-skillstheir own version, first seen Oct 25, 2026
Used with
Projects with it also use mermaid-visualizer, obsidian-canvas-creator and 9 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
BCS1037Skillmermaid-visualizer
Transform text content into professional Mermaid diagrams for presentations and documentation. Use when users ask to visualize concepts, create flowcharts, or make diagrams from text. Supports process flows, system architectures, comparisons, mindmaps, and more with built-in syntax error prevention.
Also in 7 projects that use this
BCS1037Skillobsidian-canvas-creator
Create Obsidian Canvas files from text content, supporting both MindMap and freeform layouts. Use this skill when users want to visualize content as an interactive canvas, create mind maps, or organize information spatially in Obsidian format.
Also in 4 projects that use this
MicrosoftSkillrvap-brand
Applies the RVAP (Real Value Acceleration Program) brand identity — colors, fonts, logo, and layout patterns — consistently to any GitHub Pages website. Use this skill whenever someone asks to brand, rebrand, apply RVAP/RVAS visual identity, make a site look RVAP, match the brand kit, or transform a GitHub Pages site's look and feel to match RVAP. Also trigger when the user shares an HTML/CSS/MkDocs site and says it should look consistent with other RVAP/RVAS materials, even if they don't explicitly say "brand".
Also in 3 projects that use this
XIYBHKSkillhuashu-design
花叔Design(Huashu-Design)——用HTML做高保真原型、交互Demo、幻灯片、动画、设计变体探索+设计方向顾问+专家评审的一体化设计能力。HTML是工具不是媒介,根据任务embody不同专家(UX设计师/动画师/幻灯片设计师/原型师),避免web design tropes。触发词:做原型、设计Demo、交互原型、HTML演示、动画Demo、设计变体、hi-fi设计、UI mockup、prototype、设计探索、做个HTML页面、做个可视化、app原型、iOS原型、移动应用mockup、导出MP4、导出GIF、60fps视频、设计风格、设计方向、设计哲学、配色方案、视觉风格、推荐风格、选个风格、做个好看的、评审、好不好看、review this design。**主干能力**:Junior Designer工作流(先给假设+reasoning+placeholder再迭代)、反AI slop清单、React+Babel最佳实践、Tweaks变体切换、Speaker Notes演示、Starter Components(幻灯片外壳/变体画布/动画引擎/设备边框)、App原型专属守则(默认从Wikimedia/Met/Unsplash取真图、每台iPhone包AppPhone状态管理器可交互、交付前跑Playwright点击测试)、Playwright验证、HTML动画→MP4/GIF视频导出(25fps基础 + 60fps插帧 + palette优化GIF + 6首场景化BGM + 自动fade)。**需求模糊时的Fallback**:设计方向顾问模式——从5流派×20种设计哲学(Pentagram信息建筑/Field.io运动诗学/Kenya Hara东方极简/Sagmeister实验先锋等)推荐3个差异化方向,展示24个预制showcase(8场景×3风格),并行生成3个视觉Demo让用户选。**交付后可选**:专家级5维度评审(哲学一致性/视觉层级/细节执行/功能性/创新性各打10分+修复清单)。
Also in 4 projects that use this
HK-hubSkilldefuddle
Extract clean markdown content from web pages using Defuddle CLI, removing clutter and navigation to save tokens. Use instead of WebFetch when the user provides a URL to read or analyze, for online documentation, articles, blog posts, or any standard web page.
Also in 5 projects that use this
wangzhuofengSkillobsidian-bases
Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries. Use when working with .base files, creating database-like views of notes, or when the user mentions Bases, table views, card views, filters, or formulas in Obsidian.
Also in 6 projects that use this
Other versions51 projects use a version of this.
Word for word · 2
- danielcdz/claude-skills★ 1100% same
- iden0605/Claude-Skills★ 1100% same
Edited · 1
- austinpeechatt/claude-code-skills★ 298% same
Wrote their own version · 48
- breferrari/obsidian-mind★ 5.4ksame name
- coleam00/excalidraw-diagram-skill★ 4.7ksame name
- axtonliu/axton-obsidian-visual-skills★ 3.6ksame name
- xstongxue/best-skills★ 2.9ksame name
- luanmorenommaciel/agentspec★ 256same name
- walidboulanouar/Ay-Skills★ 90same name
- tenstorrent/tt-xla★ 74same name
- kv0906/cc-skills★ 42same name
- codetesla51/skills★ 32same name
- podo/design-agent-skills★ 32same name
38 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository39 other files it gives its agents.
- add-webhookSkill
- aws-production-deploySkill
- build-in-public-youtubeSkill
- casualize-namesSkill
- classify-leadsSkill
- create-proposalSkill
- cross-niche-outliersSkill
- design-websiteSkill
- euron-qaSkill
- excalidraw-visualsSkill
- generate-reportSkill
- ghost-browserSkill
- gmail-inboxSkill
- gmail-labelSkill
- gmaps-leadsSkill
- image-to-videoSkill
- instantly-autoreplySkill
- instantly-campaignsSkill
- linkedin-carousel-handwrittenSkill
- literature-researchSkill
- local-serverSkill
- mac-controlSkill
- modal-deploySkill
- Nano Banana 2 Image Generation MasterSkill
- onboarding-kickoffSkill
- pan-3d-transitionSkill
- recreate-thumbnailsSkill
- scrape-leadsSkill
- send-telegramSkill
- skill-builderSkill
- skool-monitorSkill
- skool-ragSkill
- thumbnail-generatorSkill
- title-variantsSkill
- upwork-applySkill
- video-editSkill
- welcome-emailSkill
- whisper-voiceSkill
- youtube-outliersSkill
The file
We split this skill into the rules it gives an agent
11 rules. 0 are common, 10 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 43 edited versions we read keep these.
10
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 9
Before generating anything, make sure you know:
- Distinctive: line 14
If the request is vague (e.g., "make a diagram of Docker"), ask 1-2 clarifying questions:
- Distinctive: line 19
If you're not confident about the technical accuracy of the concept, research it before diagramming.
- Distinctive: line 25
Before writing any JSON, sketch the layout mentally:
- Distinctive: line 30
Write down the section plan:
- Distinctive: line 55
If the user asks for changes:
- Distinctive: line 59
If a diagram gets complex (20+ elements), build it section by section to avoid coordinate errors
- Very specific: line 73
Nesting shows containment: If X lives inside Y, X's box is drawn inside Y's box with consistent padding.
- Distinctive: line 85
Always plan coordinates before writing JSON.
- Distinctive: line 147
Every element needs these base fields.
- Distinctive: line 237
Every diagram uses this shell:
“Common” is measured: kept by at least 6 in 10 of the 43 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Workflow
Step 1: Understand the request
Before generating anything, make sure you know:
- What concept or system are they diagramming?
- What are the major components or sections?
- What is the flow or relationship between them?
If the request is vague (e.g., "make a diagram of Docker"), ask 1-2 clarifying questions:
- What specific aspect? (architecture, networking, volumes, etc.)
- What level of detail? (high-level overview vs. detailed internals)
Step 2: Research if needed
If you're not confident about the technical accuracy of the concept, research it before diagramming. Verify:
- Correct component names and relationships
- Proper hierarchy and nesting
- Accurate data flow direction
Step 3: Plan the layout
Before writing any JSON, sketch the layout mentally:
- What are the major sections? (left-to-right or top-to-bottom)
- What is nested inside what?
- What arrows connect what?
Write down the section plan:
[Section A: w=170] --40px gap-- [Section B: w=170] --40px gap-- [Section C: w=640]Step 4: Generate elements
Build elements in order:
- Outer boxes / containers first
- Section header text
- Nested elements (top to bottom within each section)
- Arrows and arrow labels last
Step 5: Save and deliver
- Save to
[concept-slug].excalidrawin the current directory - Show the full JSON in a code block so the user can copy it directly
- Briefly describe what the diagram shows and what each color zone represents
- Tell the user how to use the file:
How to view and edit your diagram:
- Go to excalidraw.com (free, no account needed)
- Option A: Click the menu (top-left hamburger icon) > "Open" > select the
.excalidrawfile- Option B: Copy the JSON code block above, open excalidraw.com, and paste it with Ctrl+V / Cmd+V
- Every element is fully editable -- drag to move, grab handles to resize, double-click to edit text
Step 6: Handle feedback
If the user asks for changes:
- Shifting an element = update x/y on that element + all elements that depend on it
- Changing text = update both
textandoriginalTextfields - Adding a zone = assign it a new color from the palette, keep spacing consistent
- If a diagram gets complex (20+ elements), build it section by section to avoid coordinate errors
Critical Rule: Text Contrast
Text inside colored shapes must be readable. Use #1e1e1e (near-black) or #343a40 (dark charcoal) for all text inside filled shapes. Never use the zone's stroke color for text sitting on that zone's background (e.g., yellow text on a yellow card is unreadable). Reserve the zone's strokeColor for shape borders and arrows only.
Design Principles
Color tells the story: One color per logical zone. Everything in the "input" zone is blue. Everything in the "output" zone is green. The viewer should understand structure before reading a word.
Nesting shows containment: If X lives inside Y, X's box is drawn inside Y's box with consistent padding. Coordinates are absolute, not relative: child_x = parent_x + padding.
Labels are short: 2-5 words per label. Longer explanations become annotations with smaller fontSize and muted color (#868e96).
White space is structure: 15px minimum gap between siblings. 40px minimum between major sections.
Arrows carry intent: Color arrows to match purpose. Label every non-obvious arrow.
Layout System
Always plan coordinates before writing JSON.
- Identify major sections (left-to-right or top-to-bottom)
- Assign fixed width and starting x to each section
- Calculate gaps: 40-60px between major sections, 15-25px between siblings
- Work top-to-bottom within sections:
next_y = current_y + current_height + gap
Padding rules:
- Outer box to inner label: 8-10px top offset
- Outer box to nested box: 10-15px offset on all sides
- Sibling elements: 10-15px gap
Text width trick: Set text width = parent box width. Text centers automatically when textAlign: "center".
Arrow labels: Position as separate text elements, 20-25px above the arrow's midpoint y, with width and x matching the arrow.
Coordinate math example:
Section A: x=30, w=170 -> right edge = 200
Gap: 40px
Section B: x=240, w=170 -> right edge = 410
Gap: 40px
Section C: x=450, w=600 -> right edge = 1050Color System
| Zone | Use for | strokeColor | backgroundColor |
| Blue | Input, source, external services | #1971c2 | #e7f5ff |
| Yellow | Processing, transformation | #f59f00 | #fff9db |
| Green | Output, containers, success | #2f9e44 | #d3f9d8 |
| Purple | Shared layers, infrastructure | #862e9c | #f3d9fa |
| Red | Host OS, warnings, errors | #c92a2a | #ffe3e3 |
| Gray | Hardware, neutral containers | #495057 | #f8f9fa |
For nested elements, vary the fill intensity:
- Outer: lightest (e.g.,
#d3f9d8) - Inner: medium (e.g.,
#8ce99a) - Deep inner: light-medium (e.g.,
#b2f2bb)
Typography Scale
| Role | fontSize | fontFamily |
| Diagram title | 32-36 | 1 (Virgil) |
| Section header | 20-24 | 1 |
| Element label | 16-18 | 1 |
| Annotation | 14-15 | 1 |
| Small note | 12-13 | 1 |
| Code label | 14-16 | 3 (Cascadia) |
Text width = parent box width. Text x/y offset ~8-10px from box x/y for padding.
Element Schema
Every element needs these base fields. Do not omit any.
Base fields (all types)
{
"id": "unique-string",
"type": "rectangle|ellipse|diamond|arrow|line|text|freedraw",
"x": 0, "y": 0,
"width": 100, "height": 50,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [],
"updated": 1,
"link": null,
"locked": false
}Text fields (add to base)
{
"text": "Label text",
"fontSize": 16,
"fontFamily": 1,
"textAlign": "center",
"verticalAlign": "top",
"containerId": null,
"originalText": "Label text",
"lineHeight": 1.25
}Arrow fields (add to base)
{
"points": [[0, 0], [100, 0]],
"lastCommittedPoint": null,
"startBinding": null,
"endBinding": null,
"startArrowhead": null,
"endArrowhead": "arrow"
}Key values
- fontFamily: 1 = Virgil (handwritten, default), 2 = Helvetica, 3 = Cascadia (monospace)
- roughness: 0 = smooth, 1 = slightly rough (default Excalidraw feel), 2 = very rough
- fillStyle:
"solid"for clean diagrams,"hachure"for classic Excalidraw hatching - roundness:
null= sharp corners,{"type": 3}= rounded rectangles,{"type": 2}= curved arrows - strokeStyle:
"solid","dashed"(optional connections),"dotted"
Common Patterns
Labeled box
[Rect: x, y, w, h]
[Title text: x, y+10, w, fontSize=18]
[Subtitle: x, y+38, w, fontSize=14, strokeColor=#868e96]Nested container
[Host rect: x=0, y=0, w=640, h=500]
[Host label: x=0, y=10, w=640]
[Item 1: x=15, y=50, w=190, h=200]
[Item 2: x=225, y=50, w=190, h=200]
[Item 3: x=435, y=50, w=190, h=200]Arrow with label
[Arrow: x=start_x, y=mid_y, width=gap_width, points=[[0,0],[gap_width,0]]]
[Label: x=start_x, y=mid_y-25, width=gap_width, textAlign=center]JSON Wrapper
Every diagram uses this shell:
{
"type": "excalidraw",
"version": 2,
"source": "https://excalidraw.com",
"elements": [ ... ],
"appState": {
"gridSize": null,
"viewBackgroundColor": "#ffffff"
},
"files": {}
}Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

