A Claude Code plugin that lets Claude work with BPMN 2.0 process diagrams (.bpmn XML): read and explain them in plain language, and create or edit them so they come out valid and visually clean in any modeler (Camunda Modeler, bpmn.io, Cawemo…).
FAQ
bpmn is a Claude Code plugin with 1 hand-picked skill for development work, indexed on Flowy. Install it with the command on its page. It includes bpmn. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
> /plugin marketplace add architawr/claude-bpmn-skill> /plugin install bpmn@bpmn-tools
Repo: architawr/claude-bpmn-skill
A Claude Code plugin that lets Claude work with
BPMN 2.0 process diagrams (.bpmn XML): read and explain them in plain
language, and create or edit them so they come out valid and visually clean
in any modeler (Camunda Modeler, bpmn.io, Cawemo…).
The model does the semantic reasoning (what the process means, what to change); a small bundled Node script does the deterministic mechanics — parsing, regenerating layout, validating, and linting control flow.
.bpmn: happy path, decision points, exception/timeout handling.--rebuild.diff two versions (As-Is vs To-Be or edit review) and
find elements by name or type.npm install in its own
folder to fetch bpmn-moddle and bpmn-auto-layout (deps are not committed).This repository is both the plugin and a one-plugin marketplace:
/plugin marketplace add architawr/claude-bpmn-skill
/plugin install bpmn@bpmn-tools
/reload-plugins
The skill is model-invoked: once installed, Claude uses it automatically when you
work with .bpmn files or ask to model/review a process. It is namespaced as
bpmn (the plugin name).
Or, for local development without installing:
claude --plugin-dir ./claude-bpmn-skill
The skill is model-invoked automatically, but the plugin also adds explicit
slash commands (namespaced /bpmn:):
| Command | What it does |
|---|---|
/bpmn:explain <file.bpmn> | Read a diagram and explain it in plain language |
/bpmn:create <description> | Model a new diagram from a text description |
/bpmn:edit <file.bpmn> — <change> | Apply a change, preserving the existing layout, then validate + lint |
/bpmn:validate <file.bpmn> | Structural validation + control-flow lint, with fixes |
/bpmn:diff <old.bpmn> <new.bpmn> | Compare two versions: added / removed / renamed / rewired |
The skill is invoked automatically, but the bundled tool can also be run directly:
node skills/bpmn/scripts/bpmn-tool.mjs summarize <file.bpmn> [--json]
node skills/bpmn/scripts/bpmn-tool.mjs layout <in.bpmn> [out.bpmn] [--rebuild]
node skills/bpmn/scripts/bpmn-tool.mjs validate <file.bpmn>
node skills/bpmn/scripts/bpmn-tool.mjs lint <file.bpmn>
node skills/bpmn/scripts/bpmn-tool.mjs diff <a.bpmn> <b.bpmn>
node skills/bpmn/scripts/bpmn-tool.mjs find <file.bpmn> <term>
Full workflow, modeling conventions and limits are in
skills/bpmn/SKILL.md; element-level XML recipes in
skills/bpmn/references/bpmn-reference.md.
Layout covers single-pool flows, collaborations (all pools + message flows), swimlanes, sub-process drill-down pages, and data objects / annotations / associations. It does not auto-place groups (a group is a purely visual rectangle with no membership in the model). Auto-placement of pools, lanes, data objects, and annotations is approximate — valid and clean, but a user may want to nudge spacing in a modeler. See the reference for details.
MIT © 2026 Artur Karapetyan
.claude-plugin/
marketplace.json
plugin.json
.github/
workflows/
test.yml
.gitignore
CLAUDE.md
commands/
create.md
diff.md
edit.md
explain.md
validate.md
docs/
superpowers/
specs/
2026-05-21-bpmn-full-toolkit-design.md
evals/
check-fixtures.mjs
evals.json
files/
approval-buggy.bpmn
big-process.bpmn
broken-di.bpmn
collab-buggy.bpmn
hiring.bpmn
messy.bpmn
order.bpmn
process-v1.bpmn
process-v2.bpmn
return.bpmn
README.md
trigger-eval.json
LICENSE
README.md
skills/
bpmn/
package-lock.json
package.json
README.md
references/
bpmn-reference.md
scripts/
bpmn-tool.mjs
lib.mjs
SKILL.md
test/
artifacts.test.mjs
collaboration.test.mjs
fidelity.test.mjs
fixtures/
add-boundary.bpmn
added-node.bpmn
bad-boundary.bpmn
bad-events.bpmn
clean-linear-v2.bpmn
clean-linear.bpmn
collab-uneven.bpmn
collab.bpmn
data-artifacts.bpmn
deadend.bpmn
deadlock.bpmn
implicit-split.bpmn
insert-between.bpmn
internal-msgflow.bpmn
lane-gap.bpmn
lanes.bpmn
nostart.bpmn
overlap-di.bpmn
semantics-subprocess.bpmn
stale-di.bpmn
stale-edge.bpmn
subprocess-multiplane.bpmn
unreachable.bpmn
lanes.test.mjs
layout.test.mjs
lint-rules.test.mjs
lint.test.mjs
qa.test.mjs
resync.test.mjs
utils.test.mjs
validate.test.mjs© 2026 Flowy · Free and open source
Built for Claude Code · Not affiliated with Anthropic