with one click
ai-drawio
Generate draw.io diagrams from natural language and render in browser
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Generate draw.io diagrams from natural language and render in browser
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | ai-drawio |
| description | Generate draw.io diagrams from natural language and render in browser |
| triggers | ["draw","diagram","flowchart","architecture","mindmap","็ปๅพ","ๆต็จๅพ","ๆถๆๅพ"] |
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.
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>
parent="1"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;
| Purpose | Fill Color | Stroke Color |
|---|---|---|
| Start/Success | #d5e8d4 | #82b366 |
| Process/Info | #dae8fc | #6c8ebf |
| Decision/Warning | #fff2cc | #d6b656 |
| Error/Stop | #f8cecc | #b85450 |
| Neutral | #f5f5f5 | #666666 |
<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>
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;
Add animation to connectors:
flowAnimation=1;
After generating the XML, create an HTML file with an iframe embedding and open it via a local HTTP server.
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>
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>
python -m http.server 8765http://localhost:8765/diagram.htmlThe XML must be URL-encoded for the iframe src:
< becomes %3C> becomes %3E" becomes %22& becomes %26= becomes %3D%20User: Draw a simple login flow diagram
Assistant Actions: