drawio · github — GitHub Copilot skill: what it does, how to install
Builds native .drawio diagram files and exports them to PNG, SVG, or PDF with embedded XML.
npx skills add github/awesome-copilot --skill drawioWhat drawio does
This skill writes diagram structures directly into .drawio files using standard mxGraphModel XML syntax. It follows defined visual conventions for external systems, data stores, processing stages, and error paths.
Image conversion relies on the bundled drawio-to-png.mjs script. The script runs the local draw.io desktop CLI when present or switches to a headless browser via puppeteer-core. Running npm install inside the scripts folder is required before the first export run. Because exported PNG, SVG, and PDF files keep embedded XML, you can reopen them later in draw.io for manual edits.
Install this skill when your documentation workflow requires architectural diagrams without drawing them by hand in a browser.
What it helps with
- generate native .drawio XML files from text descriptions
- export diagrams to PNG images for embedding into documents
- produce scalable SVG or PDF diagrams with editable embedded XML
- batch convert a directory of .drawio files into images
Example prompts for the agent
- Create a system architecture diagram in app-design.drawio and export it to PNG
- Generate a database schema diagram as a native .drawio file
- Batch export all .drawio files in the docs folder
How to install drawio
1Skills CLI (Vercel)
npx skills add github/awesome-copilot --skill drawio2GitHub CLI
gh skill install github/awesome-copilot drawio3Manually: put the files in place
.github/skills/drawio/SKILL.md1Skills CLI (Vercel)
npx skills add github/awesome-copilot --skill drawio -a claude-code2Manually: put the files in place
~/.claude/skills/drawio/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/drawio/
Manually: put the files in place
.agents/skills/drawio/SKILL.mdFor all projects use ~/.agents/skills/
Manually: put the files in place
.cursor/skills/drawio/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
Platform CLI
gemini skills install https://github.com/github/awesome-copilot --path skills/drawioManually: put the files in place
.devin/skills/drawio/SKILL.mdThe legacy .windsurf/skills/ path still works
Claude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set554
The whole set →Other versions of drawio
Similar
Questions about drawio
How do I install drawio in GitHub Copilot?
Run npx skills add github/awesome-copilot --skill drawio or gh skill install github/awesome-copilot drawio. Alternatively, save SKILL.md into .github/skills/drawio/.
What does the drawio skill do?
It writes .drawio files with mxGraphModel XML and exports them into PNG, SVG, or PDF. Each rendered image embeds the diagram source so you can edit it later.
What dependencies are needed for image export?
You need Node.js with dependencies installed via npm install in the scripts folder. For rendering, it uses either an installed draw.io desktop app or a Chromium-based browser via puppeteer-core.
Source text
SKILL.md · MIT
--- name: drawio description: Generate draw.io diagrams as .drawio files and export to PNG/SVG/PDF with embedded XML --- # Draw.io Diagram Skill Generate draw.io diagrams as native `.drawio` files and export them to PNG images that can be embedded in Word documents. ## How to Create a Diagram 1. **Generate draw.io XML** in `mxGraphModel` format for the requested diagram 2. **Write the XML** to a `.drawio` file using the create/edit file tool 3. **Export to PNG** using the bundled export script ## Bundled Export Script This skill includes `drawio-to-png.mjs`, a Node.js export script with two rendering backends: 1. **draw.io CLI** (pixel-perfect, fastest) — used automatically if draw.io desktop is installed 2. **Official draw.io viewer in headless browser** (pixel-perfect, needs Chromium/Edge) — fallback when CLI is unavailable ### Usage ```bash # Install dependencies (one-time, from the scripts folder) cd skills/drawio/scripts && npm install # Export a single diagram node skills/drawio/scripts/drawio-to-png.mjs <input.drawio> [output.png] # Export all .drawio files in a directory node skills/drawio/scripts/drawio-to-png.mjs --dir <directory> # Force a specific renderer node skills/drawio/scripts/drawio-to-png.mjs --renderer=cli|viewer|auto <input.drawio> ``` ### Skill Folder Contents | File | Purpose | |------|---------| | `SKILL.md` | This instruction file | | `scripts/drawio-to-png.mjs` | Node.js export script (CLI + browser fallback) | | `scripts/package.json` | Dependencies (`puppeteer-core`) | ## Supported Export Formats | Format | Embed XML | Notes | |--------|-----------|-------| | `png` | Yes | Viewable everywhere, editable in draw.io | | `svg` | Yes | Scalable, editable in draw.io | | `pdf` | Yes | Printable, editable in draw.io | ## Draw.io XML Style Conventions Use these styles for consistent, professional diagrams: ```xml <!-- Primary service (highlighted) --> <mxCell style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=2;arcSize=12;shadow=1;" /> <!-- External system --> <mxCell style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;" /> <!-- Success/processing stage --> <mxCell style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" /> <!-- Warning/quality gate --> <mxCell style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" /> <!-- Error/failure path --> <mxCell style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" /> <!-- Data store (cylinder) --> <mxCell style="shape=cylinder3;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" /> <!-- Arrow --> <mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=1;strokeColor=#6c8ebf;strokeWidth=2;" /> ``` ## Locating the draw.io CLI Try `drawio` first (works if on PATH), then fall back: - **Windows**: `"C:\Program Files\draw.io\draw.io.exe"` - **macOS**: `/Applications/draw.io.app/Contents/MacOS/draw.io` - **Linux**: `drawio` (via snap/apt/flatpak) ### CLI Export Command ```bash drawio -x -f png -e -b 10 -o <output.png> <input.drawio> ``` Flags: `-x` (export), `-f` (format), `-e` (embed diagram XML), `-b` (border), `-o` (output path).
© github · MIT · github/awesome-copilot