Convert BPMN 2.0 XML files into Draw.io native format (.drawio) using the bpmn2drawio Python tool. Renders properly in Draw.io Desktop or web applications. Use this skill when a user wants to visualize a BPMN process in Draw.io, convert BPMN to editable diagrams, or create Draw.io files from process definitions. Triggers on: "convert BPMN to Draw.io", "create drawio from BPMN", "visualize BPMN in Draw.io".
View on GitHubdavistroy/claude-marketplace
bpmn-plugin
January 21, 2026
Select agents to install to:
npx add-skill https://github.com/davistroy/claude-marketplace/blob/main/plugins/bpmn-plugin/skills/bpmn-to-drawio/SKILL.md -a claude-code --skill bpmn-to-drawioInstallation paths:
.claude/skills/bpmn-to-drawio/# BPMN to Draw.io Converter ## Overview This skill converts BPMN 2.0 XML files into Draw.io native format (.drawio) using the `bpmn2drawio` Python tool. The tool provides: - Automatic Graphviz-based layout for files without DI coordinates - Four built-in themes with custom YAML branding support - Visual markers for gateways (X, +, O) and task/event icons - Complete swimlane support with proper hierarchy - Model validation with error recovery ## Conversion Workflow Follow these steps in order. The workflow automatically handles dependency installation. ### Step 1: Set Up Tool Path The tool is bundled at `../tools/bpmn2drawio/` relative to this skill file: ```bash # Determine the plugin directory (adjust path as needed) PLUGIN_DIR="/path/to/plugins/bpmn-plugin" TOOL_SRC="$PLUGIN_DIR/tools/bpmn2drawio/src" ``` ### Step 2: Check and Install Python Dependencies Check for required Python packages and install any that are missing: ```bash # Check which packages are missing python -c "import lxml" 2>/dev/null || echo "lxml: MISSING" python -c "import networkx" 2>/dev/null || echo "networkx: MISSING" python -c "import yaml" 2>/dev/null || echo "pyyaml: MISSING" python -c "import pygraphviz" 2>/dev/null || echo "pygraphviz: MISSING (requires Graphviz)" ``` **If any packages are missing (except pygraphviz), ask the user:** > "The following Python packages are missing: [list]. Install them now with `pip install [packages]`?" If user approves: ```bash pip install lxml networkx pyyaml ``` **Note:** `pygraphviz` is handled separately in Step 3 because it requires Graphviz. ### Step 3: Check Graphviz and pygraphviz **CRITICAL:** Graphviz is required for automatic layout. Check BEFORE any processing: ```bash # Check for Graphviz dot -V 2>/dev/null && echo "Graphviz: OK" || echo "Graphviz: MISSING" ``` **If Graphviz is missing**, display this standardized error: ``` Error: Required dependency 'graphviz' not found /bpmn-to-drawio requires Graphviz for automatic dia