Miragon AIDesign
bpmn-cliYour agent edits the model, not the XML.
A command line tool and Claude Code plugin for BPMN 2.0. It keeps your hand-drawn layout and checks the deploy rules of Camunda 7, CIB seven, Operaton or Camunda 8 before the engine does.
bpmn new order.bpmn --name "Order handling" --target camunda7created process Process_OrderHandling "Order handling"bpmn add order.bpmn start "Order received"bpmn add order.bpmn service "Reserve stock" \ --after Event_OrderReceivedbpmn add order.bpmn end "Done" --after Activity_ReserveStockwritten: order.bpmnbpmn validate order.bpmn --strictW_C7_DEPLOY_IMPLEMENTATION Activity_ReserveStock:serviceTask Activity_ReserveStock has no implementation(camunda:class, delegateExpression, expression,type=external or a connector); the engines refuse the file(Give it one: `bpmn set <file> Activity_ReserveStockcamunda:type=external camunda:topic=<topic>` (orcamunda:delegateExpression=${...}, camunda:class=...,camunda:expression=${...}).)The problem
Most of the BPMN XML an agent writes is diagram coordinates
When an agent models or changes a process today, it writes the BPMN XML itself. Every coordinate costs tokens and is a chance to break the file, and shapes your team placed by hand in Camunda Modeler get moved. Read as raw XML, a large model no longer fits into the agent's context.
Today
- The agent writes the XML, diagram coordinates included
- Shapes your team placed by hand get moved
- A large model as raw XML no longer fits the agent's context
- The engine finds a missing implementation at deploy time
With bpmn-cli
- The agent names the element and the operation, and bpmn-cli writes the XML
- Your layout stays, and new elements go next to their neighbours
- A compact text view without coordinates, or only the part around one id
- The deploy rules of your engine are checked before you deploy
How it works
Four steps, every element addressed by its id
The agent never touches a coordinate. bpmn-cli draws a new file and keeps an existing drawing.
Read
bpmn show prints the model as compact text without coordinates. With --around <id> it prints one part.
Change
bpmn add, set or connect change one element by its id, and bpmn apply sends several changes as one batch.
Look
bpmn render draws a PNG without a browser. With --problems it numbers the layout problems in the image.
Check
bpmn validate --strict checks the deploy rules and your project's .bpmnlintrc, and exits with code 5 on any warning, so a pipeline stops.
Findings
Each finding names the command that fixes it
For the session at the top of this page, one bpmn set gives the service task an external topic, and the next check passes.
bpmn set order.bpmn Activity_ReserveStock camunda:type=external camunda:topic=reserve-stockbpmn validate order.bpmn --strict # valid, 0 warning(s)What you get
An ordinary BPMN file, checked before the engine sees it
Every change runs one pipeline: load, apply, validate, lay out, then write. The result opens in the tools your team already uses.
Opens where you model
An ordinary .bpmn file with a laid-out diagram, for Camunda Modeler and bpmn-js.
All or nothing
A change that would add a structural error is refused, and the file stays as it was.
Small Git diffs
Elements a change did not touch keep their exact text.
Descriptive ids
New elements get ids such as Activity_ReserveStock, never hashes or running numbers. An id convention in your .bpmnlintrc sets their prefixes and case.
Requirements on the step
With bpmn set <file> <id> doc="...", the agent keeps the requirement text on the step.
Deploy rules per engine
Camunda 7, CIB seven and Operaton share one profile. Camunda 8 has its own, with a FEEL syntax check.
Get started
Start in Claude Code or at the shell
Install the CLI and build a first model, or add the Claude Code plugin. The bpmn-cli docs have both.
Status
Where bpmn-cli stands on 14 October 2026
bpmn-cli is at 0.7.0, released to npm on 14 October 2026. It is pre-1.0, and minor versions still bring breaking changes (0.3.0, 0.4.0, 0.5.0 and 0.7.0 did), so pin the version you run. The repository is public under the MIT licence.
No hosted playground
The CLI runs on your machine through npm or npx.
No MCP server of its own
An agent calls the CLI, and designIQ uses it as a library.
Models what you describe
It captures a described process as a valid model. It does not elicit or prioritise requirements.
Opt-in inside designIQ
designIQ's semantic BPMN editing on bpmn-cli is opt-in since designIQ v5.3.0 and off by default for now.
Proof you can open
Everything here is public
- @miragon/bpmn-cli on npmVersion 0.7.0, with the command bpmn, for Node.js 22.12 or later.Open
- Demo GIFOne bpmn add inserts a task into a small order process.Open
- WalkthroughOne session from an empty file to a validated Camunda 8 model with two pools, with real CLI output.Open
- Claude Code pluginThe skill bpmn and seven eval cases. Their results are not published yet.Open
- designIQ ADR 0009The decision record on why designIQ edits BPMN through bpmn-cli.Open
- Miragon/bpmn-cliThe source under the MIT licence, with the README and changelog.Open
Where it fits
bpmn-cli in the lifecycle
bpmn-cli serves Design, and its deploy checks reach into Implement. It starts from a description in the conversation or from an existing .bpmn file from Camunda Modeler, bpmn-js or a designIQ content repository.
- PhaseDesignbpmn-cli turns a described process into a valid to-be model.Learn more
- Same phasedesignIQYour team models live in the browser. Its opt-in semantic BPMN editing runs on bpmn-cli.Learn more
- From AnalyseanalyzrNo direct connection yet. An as-is model from Analyse arrives as a .bpmn file.Learn more
- Next phaseImplementThe same plugin sets Camunda 7 or Camunda 8 details such as job types, external tasks and mappings by id.Learn more
- Agent skillsSkillsHow the agent combines the bpmn skill with operate in Claude Code.Learn more
- Deploy and testoperateDeploys the model to Camunda 7, CIB seven or Operaton and runs a test instance.Learn more
Docs
The full reference is in the docs
Let your agents model BPMN in your team's repo.
Tell us which engines you deploy to and where your models live today. Together we check whether bpmn-cli fits the way your team works.
Talk to usA 30-minute first call.