drawio
Generate draw.io diagrams as native .drawio files. Optionally export to PNG, SVG, or PDF with the diagram XML embedded (so the exported file remains editable in draw.io).
Works with
1
total installs
1
this week
2.5K
GitHub stars
0
upvotes
Install Skill
Run in your terminal
1
installs
1
this week
2.5K
stars
Installation Guide
How to use drawio on Cursor
AI-first code editor with Composer
Prerequisites
Before installing skills in Cursor, ensure your development environment meets these requirements:
- ›Cursor installed and configured on your machine
- ›Node.js 16+ with npm — verify with
node --version - ›Active project directory where you want to add
drawio
Run the install command
Execute the skills CLI command in your project's root directory to begin installation:
Fetches drawio from jgraph/drawio-mcp and configures it for Cursor.
Select Cursor when prompted
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Verify installation
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate drawio. Access via /drawio in your agent's command palette.
Security Notice
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Documentation
Draw.io Diagram Skill
Generate draw.io diagrams as native .drawio files. Optionally export to PNG, SVG, or PDF with the diagram XML embedded (so the exported file remains editable in draw.io).
How to create a diagram
- Generate draw.io XML in mxGraphModel format for the requested diagram
- Write the XML to a
.drawiofile in the current working directory using the Write tool - If the user requested an export format (png, svg, pdf), locate the draw.io CLI (see below), export with
--embed-diagram, then delete the source.drawiofile. If the CLI is not found, keep the.drawiofile and tell the user they can install the draw.io desktop app to enable export, or open the.drawiofile directly - Open the result — the exported file if exported, or the
.drawiofile otherwise. If the open command fails, print the file path so the user can open it manually
Choosing the output format
Check the user's request for a format preference. Examples:
/drawio create a flowchart→flowchart.drawio/drawio png flowchart for login→login-flow.drawio.png/drawio svg: ER diagram→er-diagram.drawio.svg/drawio pdf architecture overview→architecture-overview.drawio.pdf
If no format is mentioned, just write the .drawio file and open it in draw.io. The user can always ask to export later.
Supported export formats
| Format | Embed XML | Notes |
|---|---|---|
png |
Yes (-e) |
Viewable everywhere, editable in draw.io |
svg |
Yes (-e) |
Scalable, editable in draw.io |
pdf |
Yes (-e) |
Printable, editable in draw.io |
jpg |
No | Lossy, no embedded XML support |
PNG, SVG, and PDF all support --embed-diagram — the exported file contains the full diagram XML, so opening it in draw.io recovers the editable diagram.
draw.io CLI
The draw.io desktop app includes a command-line interface for exporting.
Locating the CLI
First, detect the environment, then locate the CLI accordingly:
WSL2 (Windows Subsystem for Linux)
WSL2 is detected when /proc/version contains microsoft or WSL:
grep -qi microsoft /proc/version 2>/dev/null && echo "WSL2"
On WSL2, use the Windows draw.io Desktop executable via /mnt/c/...:
DRAWIO_CMD=`/mnt/c/Program Files/draw.io/draw.io.exe`
The backtick quoting is required to handle the space in Program Files in bash.
If draw.io is installed in a non-default location, check common alternatives:
# Default install path
`/mnt/c/Program Files/draw.io/draw.io.exe`
# Per-user install (if the above does not exist)
`/mnt/c/Users/$WIN_USER/AppData/Local/Programs/draw.io/draw.io.exe`
macOS
/Applications/draw.io.app/Contents/MacOS/draw.io
Linux (native)
drawio # typically on PATH via snap/apt/flatpak
Windows (native, non-WSL2)
"C:\Program Files\draw.io\draw.io.exe"
Use which drawio (or where drawio on Windows) to check if it's on PATH before falling back to the platform-specific path.
Export command
drawio -x -f <format> -e -b 10 -o <output> <input.drawio>
WSL2 example:
`/mnt/c/Program Files/draw.io/draw.io.exe` -x -f png -e -b 10 -o diagram.drawio.png diagram.drawio
Key flags:
-x/--export: export mode-f/--format: output format (png, svg, pdf, jpg)-e/--embed-diagram: embed diagram XML in the output (PNG, SVG, PDF only)-o/--output: output file path-b/--border: border width around diagram (default: 0)-t/--transparent: transparent background (PNG only)-s/--scale: scale the diagram size--width/--height: fit into specified dimensions (preserves aspect ratio)-a/--all-pages: export all pages (PDF only)-p/--page-index: select a specific page (1-based)
Opening the result
| Environment | Command |
|---|---|
| macOS | open <file> |
| Linux (native) | xdg-open <file> |
| WSL2 | cmd.exe /c start "" "$(wslpath -w <file>)" |
| Windows | start <file> |
WSL2 notes:
wslpath -w <file>converts a WSL2 path (e.g./home/user/diagram.drawio) to a Windows path (e.g.C:\Users\...). This is required becausecmd.execannot resolve/mnt/c/...style paths.- The empty string
""afterstartis required to preventstartfrom interpreting the filename as a window title.
WSL2 example:
cmd.exe /c start "" "$(wslpath -w diagram.drawio)"
File naming
- Use a descriptive filename based on the diagram content (e.g.,
login-flow,database-schema) - Use lowercase with hyphens for multi-word names
- For export, use double extensions:
name.drawio.png,name.drawio.svg,name.drawio.pdf— this signals the file contains embedded diagram XML - After a successful export, delete the intermediate
.drawiofile — the exported file contains the full diagram
XML format
A .drawio file is native mxGraphModel XML. Always generate XML directly — Mermaid and CSV formats require server-side conversion and cannot be saved as native files.
Basic structure
Every diagram must have this structure:
<mxGraphModel adaptiveColors="auto">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<!-- Diagram cells go here with parent="1" -->
</root>
</mxGraphModel>
- Cell
id="0"is the root layer - Cell
id="1"is the default parent layer - All diagram elements use
parent="1"unless using multiple layers
XML reference
For the complete draw.io XML reference including common styles, edge routing, containers, layers, tags, metadata, dark mode colors, and XML well-formedness rules, fetch and follow the instructions at: https://raw.githubusercontent.com/jgraph/drawio-mcp/main/shared/xml-reference.md
Troubleshooting
| Problem | Cause | Solution |
|---|---|---|
| draw.io CLI not found | Desktop app not installed or not on PATH | Keep the .drawio file and tell the user to install the draw.io desktop app, or open the file manually |
| Export produces empty/corrupt file | Invalid XML (e.g. double hyphens in comments, unescaped special characters) | Validate XML well-formedness before writing; see the XML well-formedness section below |
| Diagram opens but looks blank | Missing root cells id="0" and id="1" |
Ensure the basic mxGraphModel structure is complete |
| Edges not rendering | Edge mxCell is self-closing (no child mxGeometry element) | Every edge must have <mxGeometry relative="1" as="geometry" /> as a child element |
| File won't open after export | Incorrect file path or missing file association | Print the absolute file path so the user can open it manually |
CRITICAL: XML well-formedness
- NEVER include ANY XML comments (
<!-- -->) in the output. XML comments are strictly forbidden — they waste tokens, can cause parse errors, and serve no purpose in diagram XML. - Escape special characters in attribute values:
&,<,>," - Always use unique
idvalues for eachmxCell
List & Monetize Your Skill
Submit your Claude Code skill and start earning
Use Cases
User Story & Requirements Generation
Create detailed user stories, acceptance criteria, and feature specs
Example
Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios
Reduce spec writing time by 50%, ensure comprehensive coverage
Competitive Analysis
Research competitors, compare features, identify gaps
Example
Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities
Complete competitive research in 2 hours instead of 2 days
Roadmap Prioritization
Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs
Example
Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale
Make data-driven prioritization decisions faster
Stakeholder Communication
Draft PRDs, status updates, and stakeholder presentations
Example
Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement
Save 3-5 hours/week on communication overhead
Implementation Guide
Prerequisites
- ›Claude Desktop or compatible AI client
- ›Access to product documentation and roadmap tools (Jira, Notion, etc.)
- ›Understanding of product management frameworks (RICE, Jobs-to-be-Done, etc.)
- ›Stakeholder contact information and communication channels
Time Estimate
30-60 minutes to see productivity improvements
Steps
- 1Install product management skill
- 2Start with user story generation for known feature
- 3Progress to competitive analysis: research 2-3 competitors
- 4Use for roadmap prioritization: apply RICE/ICE scoring
- 5Draft stakeholder communications and refine based on feedback
- 6Build template library for recurring PM tasks
- 7Share effective prompts with product team
Common Pitfalls
- ⚠Not validating competitive research—verify facts before sharing
- ⚠Accepting user stories without involving engineering team
- ⚠Over-relying on frameworks without qualitative judgment
- ⚠Not customizing outputs to company culture and communication style
- ⚠Skipping stakeholder validation of generated requirements
Best Practices
✓ Do
- +Validate research and competitive analysis with real data
- +Collaborate with engineering when generating technical requirements
- +Customize frameworks and templates to your company context
- +Use skill for first drafts, refine with stakeholder input
- +Document successful prompt patterns for PM tasks
- +Combine AI efficiency with human judgment and intuition
✗ Don't
- −Don't publish competitive analysis without fact-checking
- −Don't finalize user stories without engineering review
- −Don't make prioritization decisions solely on AI scoring
- −Don't skip customer validation of generated requirements
- −Don't ignore company-specific context and culture
💡 Pro Tips
- ★Provide context: company goals, constraints, customer feedback
- ★Ask for alternatives: 'Show 3 ways to prioritize this roadmap'
- ★Request stakeholder-specific formatting: 'Executive summary vs. engineering spec'
- ★Use skill for 70% generation + 30% customization to company needs
When to Use This
✓ Use when
Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.
✗ Avoid when
Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.
Learning Path
- 1Basic: user stories, feature specs, status updates
- 2Intermediate: competitive analysis, prioritization frameworks, PRDs
- 3Advanced: product strategy, go-to-market planning, OKR setting
- 4Expert: product vision, market positioning, business model innovation
Related Skills
grill-me
356mattpocock/skills
premortem
194parcadei/continuous-claude-v3
deslop
113cursor/plugins
framer-motion
96pproenca/dot-skills
write-a-prd
88mattpocock/skills
travel-planner
83ailabs-393/ai-labs-claude-skills
Reviews
- PPratham Ware★★★★★Dec 28, 2024
Useful defaults in drawio — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- DDiya Martinez★★★★★Dec 28, 2024
Useful defaults in drawio — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- CCarlos Patel★★★★★Dec 16, 2024
I recommend drawio for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- YYash Thakker★★★★★Nov 19, 2024
drawio is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- HHana Thomas★★★★★Nov 19, 2024
drawio is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- HHenry Rao★★★★★Nov 7, 2024
Keeps context tight: drawio is the kind of skill you can hand to a new teammate without a long onboarding doc.
- HHenry Perez★★★★★Oct 26, 2024
drawio is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- DDhruvi Jain★★★★★Oct 10, 2024
Keeps context tight: drawio is the kind of skill you can hand to a new teammate without a long onboarding doc.
- HHana Verma★★★★★Oct 10, 2024
Keeps context tight: drawio is the kind of skill you can hand to a new teammate without a long onboarding doc.
- JJin Choi★★★★★Sep 9, 2024
drawio reduced setup friction for our internal harness; good balance of opinion and flexibility.
showing 1-10 of 25
Discussion
Comments — not star reviews- No comments yet — start the thread.