Drawio Skill logo

Drawio Skill

CommunityPopular
Agents365-ai
drawio-skill

Create, edit, synchronize, inspect, test, and publish editable draw.io diagrams. Use when the user explicitly requests draw.io/diagrams.net, needs a polished architecture, ERD, UML, sequence, C4, SysML, BPMN, network, swimlane, ML, or infrastructure diagram, wants code/IaC/SQL/OpenAPI/AsyncAPI/Protobuf/GraphQL converted into a diagram, or wants an existing diagram queried, reviewed, diffed, restyled, kept in sync, or made interactive. Prefer Mermaid/PlantUML elsewhere when the requested artifact is diagrams-as-code rather than an editable draw.io file.

Overview

PublisherAgents365-ai
Repositorydrawio-skill
Skill namedrawio-skill
Stars
9.4K
Forks
666
Bundled files
77
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 77 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by Agents365-ai on GitHub. Read the source before you install it.

Installation

Install the Drawio Skill AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 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 after copying so it picks up the new skill.

Use it in TypingMind

Enable Drawio Skill in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Drawio Skill on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Drawio Skill is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Draw.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

RequestRoute
Natural-language diagram with precise stylingRead references/diagram-types.md, then references/xml-authoring.md and author XML
Standard flowchart/mindmap/gantt/timeline/etc. with no special stylingIf draw.io >=30, read references/mermaid-authoring.md and convert Mermaid to native .drawio
Large graph (~15+ nodes) that needs automatic layoutUse autolayout.py; read references/autolayout.md before passing any --layout value
Code, Terraform, K8s, compose, SQL, OpenAPI, AsyncAPI, or CI sourceUse 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 JSONUse 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 layoutUse diagramctl.py sync; read references/diagram-ir.md
Executive/system/deployment/data-flow/security viewsUse diagramctl.py views; read references/diagram-ir.md
Query, architecture policy, review, what-if, or guided walkthroughRead references/semantic-workflows.md
MCP host (Claude Desktop, Cursor, VS Code, Codex) should call these workflowsRegister scripts/diagramctl_mcp.py; read references/mcp.md
Prompt phrasing for a diagram type or semantic workflowRead references/cookbook.md
Enforce architecture rules or visual diffs in GitHub Actions CIRead references/ci-gate.md
Rendered before/after/diff images as a PR review commentUse prdiff.py; read references/pr-bot.md
Existing .drawio to HTML/PPTX/Mermaid/Markdown/animation/runbookRead references/toolbox.md; diagramctl.py transform exposes the existing tools
Pipeline, journey, or subsystem map drawn as a metro/subway mapUse tubemap.py; read references/tubemap.md
Shape, cloud/vendor, AI, or Databricks iconRead references/shapes.md or references/databricks.md; never guess shape names
Learn/apply/manage a visual styleRead references/style-presets.md
Extract a reusable style from an existing diagram or themeRead references/style-extraction.md
Existing image to editable diagram (screenshot, whiteboard photo, legacy PNG)Read references/derasterize.md
Export/platform problemRead 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:

bash
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. When the drawio binary is unavailable or a visual check is inconclusive, verify the renderer's own DOM instead (--dump-dom on the viewer URL, see references/troubleshooting.md): read each edge's <path> segments and label anchor coordinates directly — vision alone both misses geometry defects and hallucinates new ones.

  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.

bash
# 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 0 or 1.
  • 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.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

and 17 more files.

Frequently asked questions

What does the Drawio Skill AI skill do?

Create, edit, synchronize, inspect, test, and publish editable draw.io diagrams. Use when the user explicitly requests draw.io/diagrams.net, needs a polished architecture, ERD, UML, sequence, C4, SysML, BPMN, network, swimlane, ML, or infrastructure diagram, wants code/IaC/SQL/OpenAPI/AsyncAPI/Protobuf/GraphQL converted into a diagram, or wants an existing diagram queried, reviewed, diffed, restyled, kept in sync, or made interactive. Prefer Mermaid/PlantUML elsewhere when the requested artifact is diagrams-as-code rather than an editable draw.io file.

Why use Drawio Skill on TypingMind?

Because you install it once and use it with any model. Drawio Skill is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Drawio Skill in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Agents365-ai/drawio-skill/tree/main/skills/drawio-skill. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Drawio Skill?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Drawio Skill?

As many as you like. As long as a model supports skills, you can use Drawio Skill with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Drawio Skill AI skill free?

Yes. It is published on GitHub by Agents365-ai under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇