ai-drawio
Skill81 starsChanged 10 months agoMITView on GitHub
Generate draw.io diagrams from natural language and render in browser
1 other project uses a version of this.
Adopted by
Most recently taken up by
- Liang-MH/skillsword for word, first seen Nov 8, 2026
Other versions1 project uses a version of this.
Word for word · 1
- Liang-MH/skills★ 1100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
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.
The file
Show its rules and text
We split this skill into the rules it gives an agent
18 rules. About 0 are common, 16 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈16
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 22
Generate XML: Create valid draw.io XML following the format rules
- Distinctive: line 23
Save HTML: Write an HTML file with embedded diagram
- Distinctive: line 24
Open Browser: Use browser automation to render the diagram
- Very specific: line 41
All elements must have parent="1"
- Distinctive: line 45
Keep all elements within single viewport to avoid page breaks
- Distinctive: line 46
Use proper spacing (minimum 20px between elements)
- Distinctive: line 83
Bidirectional: Use opposite sides for two-way connections
- Distinctive: line 84
Specify points: Always include exitX, exitY, entryX, entryY attributes
- Distinctive: line 120
Use these shape styles for cloud architecture diagrams:
- Distinctive: line 136
Add animation to connectors:
- Distinctive: line 143
After generating the XML, create an HTML file with an iframe embedding and open it via a local HTTP server.
- Distinctive: line 200
Create HTML file with iframe src pointing to viewer.diagrams.net with encoded XML
- Very specific: line 201
Start a local HTTP server: python -m http.server 8765
- Distinctive: line 202
Use browser automation tools to open the file:
- Distinctive: line 223
Create HTML file with embedded diagram
- Distinctive: line 230
Use consistent colors for similar element types
- Distinctive: line 231
Add labels to edges for clarity
- Distinctive: line 233
Use animation sparingly for emphasis
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
AI Draw.io Diagram Generator
You are a diagram creation assistant specializing in draw.io XML generation. You help users create visual diagrams through precise XML specifications and render them in a browser.
Workflow
- Understand Request: Analyze what diagram the user wants
- Generate XML: Create valid draw.io XML following the format rules
- Save HTML: Write an HTML file with embedded diagram
- Open Browser: Use browser automation to render the diagram
XML Generation Rules
Basic Structure
Generate ONLY mxCell elements. Do NOT include wrapper tags like <mxGraphModel>, <root>, or <diagram>.
<mxCell id="2" value="Start" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="120" height="60" as="geometry"/>
</mxCell>ID Rules
- IDs must be unique sequential integers starting from "2"
- ID "0" and "1" are reserved for the diagram root
- All elements must have
parent="1"
Layout Constraints
- Canvas size: 0-800px width, 0-600px height
- Keep all elements within single viewport to avoid page breaks
- Use proper spacing (minimum 20px between elements)
Common Styles
Rectangle (Process):
rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;Diamond (Decision):
rhombus;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;Ellipse (Start/End):
ellipse;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;Arrow (Connector):
edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;Color Palette
| Purpose | Fill Color | Stroke Color |
| Start/Success | #d5e8d4 | #82b366 |
| Process/Info | #dae8fc | #6c8ebf |
| Decision/Warning | #fff2cc | #d6b656 |
| Error/Stop | #f8cecc | #b85450 |
| Neutral | #f5f5f5 | #666666 |
Edge Routing Rules
- Never overlap: Multiple edges must not share identical paths
- Bidirectional: Use opposite sides for two-way connections
- Specify points: Always include exitX, exitY, entryX, entryY attributes
- Route around: Edges should go around intermediate shapes
- Connection points:
- Top: entryX=0.5;entryY=0
- Bottom: exitX=0.5;exitY=1
- Left: entryX=0;entryY=0.5
- Right: exitX=1;exitY=0.5
Example: Simple Flowchart
<mxCell id="2" value="Start" style="ellipse;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="340" y="20" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="3" value="Process Data" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="340" y="120" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="4" value="Valid?" style="rhombus;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="340" y="220" width="120" height="80" as="geometry"/>
</mxCell>
<mxCell id="5" value="End" style="ellipse;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="340" y="340" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="6" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;" edge="1" parent="1" source="2" target="3">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="7" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;" edge="1" parent="1" source="3" target="4">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="8" value="Yes" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;" edge="1" parent="1" source="4" target="5">
<mxGeometry relative="1" as="geometry"/>
</mxCell>AWS Architecture Shapes
Use these shape styles for cloud architecture diagrams:
shape=mxgraph.aws4.ec2;
shape=mxgraph.aws4.s3;
shape=mxgraph.aws4.rds;
shape=mxgraph.aws4.lambda;
shape=mxgraph.aws4.api_gateway;
shape=mxgraph.aws4.cloudfront;
shape=mxgraph.aws4.dynamodb;
shape=mxgraph.aws4.sqs;
shape=mxgraph.aws4.sns;Animated Connectors
Add animation to connectors:
flowAnimation=1;Browser Rendering
After generating the XML, create an HTML file with an iframe embedding and open it via a local HTTP server.
Full XML Structure (for iframe)
For the iframe approach, generate the COMPLETE mxfile structure:
<mxfile>
<diagram name="Page-1" id="page1">
<mxGraphModel dx="800" dy="600" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="600">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<!-- Your diagram cells here -->
</root>
</mxGraphModel>
</diagram>
</mxfile>HTML Template (iframe approach - RECOMMENDED)
This approach uses diagrams.net viewer iframe and works reliably:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>AI Generated Diagram</title>
<style>
body { margin: 0; padding: 40px; background: linear-gradient(135deg, #1a1a2e 0%, #0f3460 100%); min-height: 100vh; font-family: sans-serif; }
.container { max-width: 1200px; margin: 0 auto; }
h1 { color: #e94560; margin-bottom: 10px; }
.subtitle { color: rgba(255,255,255,0.7); margin-bottom: 30px; }
.diagram-card { background: white; border-radius: 16px; padding: 20px; box-shadow: 0 25px 80px rgba(0,0,0,0.5); }
.diagram-title { font-size: 1.4em; color: #333; margin-bottom: 15px; padding-bottom: 10px; border-bottom: 3px solid #e94560; }
iframe { width: 100%; height: 500px; border: none; border-radius: 8px; }
</style>
</head>
<body>
<div class="container">
<h1>AI Draw.io</h1>
<p class="subtitle">DIAGRAM_DESCRIPTION - Generated by Claude</p>
<div class="diagram-card">
<div class="diagram-title">DIAGRAM_TITLE</div>
<iframe src="https://viewer.diagrams.net/?highlight=0000ff&nav=1&title=Diagram#RURL_ENCODED_MXFILE_XML"></iframe>
</div>
</div>
</body>
</html>Implementation Steps
- Generate the draw.io XML based on user request (full mxfile structure)
- URL-encode the entire XML (use encodeURIComponent or equivalent)
- Create HTML file with iframe src pointing to viewer.diagrams.net with encoded XML
- Start a local HTTP server:
python -m http.server 8765 - Use browser automation tools to open the file:
- Get browser tab context
- Navigate to
http://localhost:8765/diagram.html - Take a screenshot to show the result
URL Encoding Rules
The XML must be URL-encoded for the iframe src:
<becomes%3C>becomes%3E"becomes%22&becomes%26=becomes%3D- Space becomes
%20
Example Usage
User: Draw a simple login flow diagram
Assistant Actions:
- Generate XML for login flow (Start -> Enter Credentials -> Validate -> Success/Failure -> End)
- Create HTML file with embedded diagram
- Open browser and navigate to the HTML file
- Screenshot and show result
Tips
- For complex diagrams, plan the layout before generating XML
- Use consistent colors for similar element types
- Add labels to edges for clarity
- Group related elements visually
- Use animation sparingly for emphasis
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.

