Help us improve
Share bugs, ideas, or general feedback.
Generates AWS architecture diagrams in draw.io (.drawio) XML format with left-to-right flow, proper spacing, and official AWS icons.
npx claudepluginhub vidanov/aws-architecture-diagram-skill --plugin aws-architecture-diagramHow this skill is triggered — by the user, by Claude, or both
Slash command
/aws-architecture-diagram:aws-architecture-diagramThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate a draw.io (.drawio) XML file representing an AWS architecture diagram.
references/aws-icons-analytics-ml.mdreferences/aws-icons-common.mdreferences/aws-icons-compute.mdreferences/aws-icons-database.mdreferences/aws-icons-integration.mdreferences/aws-icons-iot-migration-devtools.mdreferences/aws-icons-networking.mdreferences/aws-icons-security.mdreferences/aws-icons-storage.mdtemplates/README.mdtemplates/event-driven-processing.drawiotemplates/serverless-rest-api.drawiotemplates/static-website.drawiotemplates/three-tier-web-app.drawiotemplates/vpc-networking.drawioGenerates validated AWS architecture diagrams as draw.io XML using official AWS icons. Analyzes CloudFormation, CDK, Terraform codebases or brainstorms designs interactively. Exports .drawio with PNG/SVG/PDF options.
Generates AWS architecture diagrams as .drawio XML files using official AWS4 icons for VPC layouts, multi-tier apps, serverless designs with Lambda/EC2/RDS, and network topologies.
Generates Draw.io (.drawio) XML diagrams for architecture, flowcharts, sequence diagrams, ERDs, networks, and C4 models. Supports AWS icons for cloud architectures. Useful for visualizing systems and processes.
Share bugs, ideas, or general feedback.
Generate a draw.io (.drawio) XML file representing an AWS architecture diagram.
pageWidth="2400" pageHeight="1400" minimumdx="2800" dy="1600" for proper viewport<mxCell value="<b>Diagram Title</b><br>Author | Date | Version" style="text;html=1;align=left;verticalAlign=top;whiteSpace=wrap;rounded=0;fontSize=14;spacing=8;" vertex="1" parent="1">
<mxGeometry x="40" y="30" width="420" height="60" as="geometry" />
</mxCell>
mxgraph.aws4 stencil library — the official AWS Architecture Icons (https://aws.amazon.com/architecture/icons/, updated quarterly)sketch=0 on all iconsstrokeColor=#ffffff on all AWS service iconsBase edge style (all edges):
edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;
Rules for edge labels:
verticalAlign=bottom; in the edge stylealign=right; in the edge stylelabelBackgroundColor=#F5F5F5; so labels don't overlap linesvalue attribute entirely (don't use value="")Edge label positioning (prevents overlap with icons):
<mxCell value="Label" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;labelBackgroundColor=#F5F5F5;fontSize=11;" edge="1" source="a" target="b" parent="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
For edges that go to services ABOVE or BELOW the main flow:
exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;Edge types:
strokeWidth=2): primary data flowstrokeWidth=2;dashed=1;): optional/async pathstrokeWidth=2;dashed=1;strokeColor=#DD344C;): error pathWhen NOT to label edges:
Pattern 1: Service-level (resourceIcon frame)
shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.<name>strokeColor=#ffffff — without it, the white glyph disappearsPattern 2: Resource-level (standalone shape)
shape=mxgraph.aws4.<name> directly (no resIcon)strokeColor=none — using #ffffff breaks theseConfusing these patterns guarantees broken icons.
references/aws-icons-compute.md — Lambda, EC2, ECS, EKS, Fargatereferences/aws-icons-database.md — DynamoDB, RDS, Aurora, ElastiCachereferences/aws-icons-integration.md — API Gateway, SQS, SNS, EventBridge, Step Functionsreferences/aws-icons-networking.md — CloudFront, Route 53, VPC, ELBreferences/aws-icons-storage.md — S3, EFS, EBS, Glacier, Backupreferences/aws-icons-security.md — IAM, Cognito, KMS, WAF, Shieldreferences/aws-icons-analytics-ml.md — Kinesis, Athena, Bedrock, SageMakerreferences/aws-icons-common.md — Groups, general resources, edge styles, base templateAlways look up icons from reference files. Never guess icon names.
shape=mxgraph.aws4.group;grIcon=mxgraph.aws4.group_aws_cloud_alt;strokeColor=#232F3E;fillColor=noneshape=mxgraph.aws4.group;grIcon=mxgraph.aws4.group_account;strokeColor=#CD2264;fillColor=noneshape=mxgraph.aws4.group;grIcon=mxgraph.aws4.group_on_premise;strokeColor=#5A6C86;fillColor=nonewhiteSpace=wrap;html=1;fillColor=none;dashed=1;dashPattern=8 8fillColor=nonePlace a full-canvas rectangle as the FIRST element (lowest z-order):
<mxCell value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F5F5F5;strokeColor=none;" vertex="1" parent="1">
<mxGeometry x="0" y="0" width="2400" height="1400" as="geometry" />
</mxCell>
This prevents black background on PNG export. Use strokeColor=none (not E0E0E0).
For complex architectures, use multiple pages (tabs) in one .drawio file:
<mxfile>
<diagram id="overview" name="Overview">...</diagram>
<diagram id="networking" name="Networking Detail">...</diagram>
<diagram id="data-flow" name="Data Flow">...</diagram>
</mxfile>
Place below the title block if the diagram has multiple edge types:
Since draw.io XML can be large, split creation across multiple tool calls:
Before generating, assess the target audience:
If unclear, ask: "Technical audience or executive/non-technical?"
Instead of technical labels, show flow order with circled numbers:
Use edge labels: value="①" with fontSize=14;fontStyle=1;labelBackgroundColor=#ffffff;
After generating the .drawio file, also generate a markdown guide:
.md extension (e.g., serverless-api.drawio + serverless-api.md)After generating XML, mentally verify:
resIcon= value exists in the reference filesstrokeColor=#ffffffstrokeColor=none<mxGeometry relative="1" as="geometry" />.drawioopen command (macOS) or xdg-open (Linux) after creation/Applications/draw.io.app/Contents/MacOS/draw.io -x -f png -e -b 10 -o output.drawio.png input.drawiodrawio -x -f png -e -b 10 -o output.drawio.png input.drawio
Flags: -x export, -f format, -e embed diagram XML, -b 10 bordername.drawio.png (signals embedded XML, re-editable in draw.io)<!-- -->) — they cause parse errors& < > "id values for each mxCell<mxGeometry relative="1" as="geometry" /> as child elementid="0" and id="1" (parent="0")