drawio-skill
Agents365-ai/drawio-skill · Agent Skill
Creates, edits, and synchronizes draw.io diagrams. Suitable for architectures, ERD, UML, BPMN, and other schematics. Converts code into diagrams.
Jump to install ↓Overview
| Publisher | |
|---|---|
| Repository | Agents365-ai/drawio-skill ↗ |
| Skill folder | drawio-skill |
| Stars | 9,126 |
| Bundled files | 1 |
| License | MIT |
| Last updated | September 2, 2026 |
| Links | Skill source ↗ · Repository ↗ |
Mozgi check
What we found in the skill files. Details come with a subscription.
Installation
A skill is a folder with a SKILL.md file. Pick your agent and run the commands in a terminal (macOS, Linux or Git Bash on Windows) from your project root.
Copy the prompt into Claude, Codex or another assistant: it will review the skill and install it for you.
Install the “drawio-skill” skill from mozgi.io (https://mozgi.io/skills/drawio-skill/) for me. 1. Download the archive: https://mozgi.io/skills/drawio-skill/download If it fails, take the skill folder from the source: https://github.com/Agents365-ai/drawio-skill/tree/main/skills/drawio-skill 2. Read SKILL.md and the other files. Check the skill is safe: no hidden commands, no sending data elsewhere, no scripts doing something other than described. If anything looks suspicious, stop and tell me. 3. Put the “drawio-skill” folder into your agent's skills folder: .claude/skills/ for Claude Code, .agents/skills/ for Codex, .cursor/skills/ for Cursor, .gemini/skills/ for Gemini CLI. Inside the project if we are in one, otherwise in the home folder (~/.claude/skills/ etc.). 4. Make sure <skills folder>/drawio-skill/SKILL.md exists. 5. Briefly tell me what this skill does and offer to try it on my task. If you cannot do a step yourself, tell me what to click or type.
git clone --depth 1 --branch main https://github.com/Agents365-ai/drawio-skill.git /tmp/drawio-skill mkdir -p .claude/skills cp -r /tmp/drawio-skill/skills/drawio-skill .claude/skills/drawio-skill
Restart Claude Code — the skill appears in the list; call it manually with /drawio-skill. For all projects use ~/.claude/skills.
git clone --depth 1 --branch main https://github.com/Agents365-ai/drawio-skill.git /tmp/drawio-skill mkdir -p .agents/skills cp -r /tmp/drawio-skill/skills/drawio-skill .agents/skills/drawio-skill
Codex looks for skills in .agents/skills from the current folder up to the repo root; call one with /skills or $drawio-skill. For all projects use ~/.agents/skills.
git clone --depth 1 --branch main https://github.com/Agents365-ai/drawio-skill.git /tmp/drawio-skill mkdir -p .cursor/skills cp -r /tmp/drawio-skill/skills/drawio-skill .cursor/skills/drawio-skill
Cursor picks the skill up on start; call it with “/” in Agent chat. Cursor also reads .claude/skills and .agents/skills. For all projects use ~/.cursor/skills.
git clone --depth 1 --branch main https://github.com/Agents365-ai/drawio-skill.git /tmp/drawio-skill mkdir -p .gemini/skills cp -r /tmp/drawio-skill/skills/drawio-skill .gemini/skills/drawio-skill
Gemini CLI offers to activate the skill when a task matches — you approve it. For all projects use ~/.gemini/skills.
Read SKILL.md and any companion files before deciding whether to install. Click a file to preview it.
SKILL.md contents
Original author text · read-onlyDraw.io Architecture Studio
Produce editable .drawio artifacts, not flattened pictures. The preferred
entrypoint is scripts/diagramctl.py, which unifies generation, incremental
sync, multi-view projection, semantic queries/tests/reviews, failure analysis,
and accessible publishing over a shared Diagram IR.
Choose the workflow
| Request | Route |
| --- | --- |
| Natural-language diagram with precise styling | Read references/diagram-types.md, then references/xml-authoring.md and author XML |
| Standard flowchart/mindmap/gantt/timeline/etc. with no special styling | If draw.io >=30, read references/mermaid-authoring.md and convert Mermaid to native .drawio |
| Large graph (~15+ nodes) that needs automatic layout | Use autolayout.py; read references/autolayout.md before passing any --layout value |
| Code, Terraform, K8s, compose, SQL, OpenAPI, AsyncAPI, or CI source | Use diagramctl.py build; read references/diagram-ir.md |
| Protocol Buffers schema (.proto) | Use protoimports.py or diagramctl.py build; read references/toolbox.md |
| GraphQL SDL schema (.graphql/.gql) or introspection JSON | Use graphqlerd.py or diagramctl.py build; read references/toolbox.md |
| Running cluster/stack/cloud (actual state, not declared config) | Read references/live-infra.md, then use tfstate.py, dockerimports.py, or k8simports.py - |
| Update a generated diagram without losing manual layout | Use diagramctl.py sync; read references/diagram-ir.md |
| Executive/system/deployment/data-flow/security views | Use diagramctl.py views; read references/diagram-ir.md |
| Query, architecture policy, review, what-if, or guided walkthrough | Read references/semantic-workflows.md |
| MCP host (Claude Desktop, Cursor, VS Code, Codex) should call these workflows | Register scripts/diagramctl_mcp.py; read references/mcp.md |
| Prompt phrasing for a diagram type or semantic workflow | Read references/cookbook.md |
| Enforce architecture rules or visual diffs in GitHub Actions CI | Read references/ci-gate.md |
| Rendered before/after/diff images as a PR review comment | Use prdiff.py; read references/pr-bot.md |
| Existing .drawio to HTML/PPTX/Mermaid/Markdown/animation/runbook | Read references/toolbox.md; diagramctl.py transform exposes the existing tools |
| Pipeline, journey, or subsystem map drawn as a metro/subway map | Use tubemap.py; read references/tubemap.md |
| Shape, cloud/vendor, AI, or Databricks icon | Read references/shapes.md or references/databricks.md; never guess shape names |
| Learn/apply/manage a visual style | Read references/style-presets.md |
| Extract a reusable style from an existing diagram or theme | Read references/style-extraction.md |
| Existing image to editable diagram (screenshot, whiteboard photo, legacy PNG) | Read references/derasterize.md |
| Export/platform problem | Read references/troubleshooting.md; for access/network questions read references/security.md |
Unified CLI
Run from this skill directory, or replace scripts/ with the absolute path to
this skill's scripts directory:
python3 scripts/diagramctl.py doctor
python3 scripts/diagramctl.py build model.json --from ir -o architecture.drawio
python3 scripts/diagramctl.py build ./infra --from terraform --group \
--ir-output architecture.ir.json -o architecture.drawio
python3 scripts/diagramctl.py sync architecture.drawio ./infra --from terraform \
-o architecture.next.drawio
python3 scripts/diagramctl.py views architecture.ir.json \
--views executive,system,deployment,dataflow,security -o views.drawio
python3 scripts/diagramctl.py test architecture.drawio --rules policy.yml
python3 scripts/diagramctl.py review architecture.drawio -o review.md
python3 scripts/diagramctl.py query architecture.drawio --from internet --to orders-db
python3 scripts/diagramctl.py whatif architecture.ir.json --fail kafka \
--drawio kafka-failure.drawio -o impact.json
python3 scripts/diagramctl.py story architecture.ir.json -o walkthrough.html
doctor does not launch GUI tools unless --probe is passed. Core semantic
commands are offline and stdlib-only.
Creation workflow
1. Infer the diagram type, audience, scope, output format, and location from the
request. Ask only when a missing choice materially changes the result;
default to PNG plus .drawio in the working directory.
2. Select the authoring route from the table above. For a data-backed diagram,
prefer Diagram IR and preserve provenance. For a large graph, use an importer
or autolayout.py; do not hand-place more than roughly fifteen nodes.
3. Resolve an explicitly named style preset, or the user's default preset, as
documented in references/style-presets.md. Structural diagram conventions
and visual presets compose; they do not replace each other.
4. Generate the .drawio, then run structural validation:
```bash
python3 scripts/validate.py diagram.drawio --score
```
When semantic metadata or an architecture policy is in scope, also run
diagramctl.py test. Do not present inferred semantic findings as verified
runtime facts.
5. Export a draft PNG without embedded XML and inspect it visually. Fix obvious
overlap, clipping, disconnected edges, edge-through-node routing, stacked
edges, and unreadable labels. Stop automatic vision repair after two rounds.
6. Show the draft and apply targeted edits. Preserve existing geometry for
local changes. Use sync for source-backed changes and write a reviewable
output; use --prune only when deletion was requested.
7. After approval, create final requested formats and report both editable
source and export paths.
Export invariants
Resolve the available binary once (drawio, draw.io, the macOS app path, or
the Windows executable) and use that exact binary for the run.
# Draft for visual inspection: never use -e here
drawio -x -f png --width 2000 -o diagram.png diagram.drawio
# Final editable PNG
drawio -x -f png -e -s 2 -o diagram.drawio.png diagram.drawio
python3 scripts/repair_png.py diagram.drawio.png
# Final editable SVG/PDF
drawio -x -f svg -e --embed-svg-images -o diagram.svg diagram.drawio
drawio -x -f pdf -e -o diagram.pdf diagram.drawio
Do not combine --width and -s. Embedded PNG exports require
repair_png.py; draft PNGs used by vision must not use -e. On Linux headless,
follow references/troubleshooting.md rather than improvising Electron flags.
If the CLI crashes in a macOS sandbox, try one permitted escalated run, then use
encode_drawio_url.py or deliver XML; do not repeatedly launch it.
Editing and identity
- Use stable semantic IDs and never reuse reserved IDs
0or1. - Every edge requires
<mxGeometry relative="1" as="geometry"/>. - For a local edit, change the matching cell only; for a global direction
change, regenerate/re-layout the page.
- Keep provenance,
data-model-id, semantic properties, manual geometry, and
manual styles intact unless the user requests otherwise.
- When reconciling, retain removals as reviewable faded elements by default.
- For edges stacked at a boundary, run
edgeports.py; add waypoints when an
edge still crosses an unrelated shape. There is no CLI-only edge rerouter
that preserves node positions.
Quality and trust
An attractive diagram can still be wrong. Prefer source-backed relationships,
show provenance where useful, distinguish exact extraction from AI inference,
and keep architecture review findings framed as prompts. Story HTML must remain
self-contained, keyboard usable, and include a text alternative. Never include
secrets in node properties or provenance because they are embedded in outputs.
For all focused scripts and composition patterns, read references/toolbox.md;
load only the task-specific reference needed for the current request.
Frequently asked questions
What does the drawio-skill skill do?
Creates, edits, and synchronizes draw.io diagrams. Suitable for architectures, ERD, UML, BPMN, and other schematics. Converts code into diagrams.
How do I install drawio-skill?
Open the “Installation” block on this page and pick your agent — Claude Code, Codex, Cursor or Gemini CLI — for ready-made commands that copy the skill folder to the right place. Or copy the prompt from the “Via assistant” tab and let the assistant review and install the skill.
Which AI models work with drawio-skill?
Skills are plain Markdown instructions (the Agent Skills format), so drawio-skill works with any agent that reads SKILL.md: Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and more. The model loads the instructions only when a task matches the skill's description.
Is drawio-skill free?
The skill is published openly by Agents365-ai under the MIT license. The skill itself costs nothing — you only pay your AI provider for the tokens you use.
Is it safe to install skills?
A skill is a set of instructions your agent will follow, so read SKILL.md and its companion files before installing. Scripts in the skill folder only run if your agent runs them — keep an eye on what it does and do not grant unnecessary permissions.
How is a skill different from an MCP server or a plugin?
An MCP server or plugin gives the model new tools — code that runs and returns a result. A skill gives it knowledge and process: how to approach a task, which steps to follow and what good output looks like. It needs no server or API key.