An AI-powered architecture diagramming tool that converts natural language prompts into professional cloud diagrams for AWS, Azure, Google Cloud (GCP), and common DevOps tooling.
- Multi-Cloud Native — deep support for AWS, Azure, GCP, and DevOps icons (Terraform, GitHub, Jenkins)
- NVIDIA AI Engine — powered by
meta/llama-3.3-70b-instructvia NVIDIA's free API; no cloud account required - Dual Output Pipeline — PNG preview rendered by Python + native Draw.io XML for full editability
- Terraform IaC — one-click generation of production-ready HCL from any diagram
- Interactive Canvas — drag, edit, and re-sync nodes via React Flow
- Rate-Limited API — 20 req/min per IP; CORS locked to configured origin
| Layer | Technology |
|---|---|
| Frontend | React 18, TypeScript, Vite, Tailwind CSS, Framer Motion |
| Backend | Node.js, Express, TSX |
| AI Engine | NVIDIA API (OpenAI-compatible) — meta/llama-3.3-70b-instruct |
| Diagram Engine | Python diagrams library + Graphviz |
| Export | Draw.io XML (dagre layout), PNG (base64) |
| Infrastructure | Docker & Docker Compose |
- Node.js 18+
- Python 3.10+ with
pip install diagrams - Graphviz:
brew install graphviz/apt-get install graphviz - A free NVIDIA API key from build.nvidia.com
# 1. Clone and install
git clone <repo-url> && cd aws-diagram-ui
npm install
# 2. Configure environment
cp .env.example .env
# Edit .env and set NVIDIA_API_KEY=your_key_here
# 3. Start backend (terminal 1)
npm run server
# 4. Start frontend (terminal 2)
npm run devOpen http://localhost:5173.
The Docker image bundles Python, Graphviz, and all dependencies.
docker run -p 3001:3000 \
-e NVIDIA_API_KEY=your_key_here \
-e NODE_ENV=production \
ashishkasaudhan/aws-diagram-ui:latestOr with Docker Compose for persistent diagram storage:
services:
skyarch:
image: ashishkasaudhan/aws-diagram-ui:latest
ports:
- "3001:3000"
environment:
- NVIDIA_API_KEY=your_key_here
- NODE_ENV=production
volumes:
- ./generated-diagrams:/app/generated-diagramsdocker-compose up -dOpen http://localhost:3001.
| Variable | Description | Default |
|---|---|---|
NVIDIA_API_KEY |
Free API key from build.nvidia.com | (required) |
NVIDIA_MODEL |
Model to use | meta/llama-3.3-70b-instruct |
CORS_ORIGIN |
Allowed frontend origin | http://localhost:5173 |
PORT |
Backend server port | 3001 |
NODE_ENV |
Set to production to serve built frontend |
(unset) |
- Prompt — user describes architecture in plain English
- AI (NVIDIA) — LLM returns a structured JSON (
nodes,edges,clusters) - Python code gen —
utils/pythonConvert.tsconverts JSON todiagramsPython code - MCP render —
universal_diagram_mcp.pyinjects imports and runs Graphviz → PNG - Draw.io gen —
src/utils/drawioGenerator.tsconverts same JSON to Draw.io XML (dagre layout) - Response — PNG (base64) + Draw.io XML + original JSON sent to frontend
INSTALLED_IMPORTS = {
# ...
"MWAA": "diagrams.aws.analytics", # add here
}BAD_ALIASES = {
# ...
"Airflow": "MWAA",
}Add the new type to the NODE TYPES section of the generateDiagramCode system prompt so the AI knows it can use it.
- Generate a diagram.
- Click Export DOT to download the
.drawiofile. - Open in draw.io — File > Open from > Device.
- All shapes are native Draw.io vector icons — fully editable with connectors.
See docs/INTEGRATION_GUIDE.md for full REST API documentation.
| Doc | Description |
|---|---|
| Integration Guide | REST API reference and integration patterns |
| Solution Architecture | Technical deep-dive into the MCP and AI pipeline |
| Docker Instructions | Containerized setup details |
| Troubleshooting | Common issues and fixes |
| Roadmap | Planned features |
MIT