Back to Skills

bpmn-to-drawio

verified

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 GitHub

Marketplace

troys-plugins

davistroy/claude-marketplace

Plugin

bpmn-plugin

workflow

Repository

davistroy/claude-marketplace
1stars

plugins/bpmn-plugin/skills/bpmn-to-drawio/SKILL.md

Last Verified

January 21, 2026

Install Skill

Select agents to install to:

Scope:
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-drawio

Installation paths:

Claude
.claude/skills/bpmn-to-drawio/
Powered by add-skill CLI

Instructions

# 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

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
13654 chars