Skip to content

bpmn-io/bpmn-js

This branch is 1 commit ahead of develop.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

31d5fb2 · Mar 19, 2025
Jan 31, 2025
Aug 21, 2023
Feb 21, 2025
Mar 17, 2025
Jun 7, 2022
Oct 16, 2024
Mar 17, 2025
Apr 19, 2023
Mar 19, 2025
Mar 19, 2025
May 20, 2020
Sep 12, 2024
Oct 16, 2024
Mar 19, 2025
Mar 19, 2025
Sep 29, 2022
Oct 16, 2024
Sep 9, 2024

Repository files navigation

bpmn-js - BPMN 2.0 for the web

Build Status

View and edit BPMN 2.0 diagrams in the browser.

bpmn-js screencast

Installation

Use the library pre-packaged or include it via npm into your node-style web-application.

Usage

To get started, create a bpmn-js instance and render BPMN 2.0 diagrams in the browser:

const xml = '...'; // my BPMN 2.0 xml
const viewer = new BpmnJS({
  container: 'body'
});

try {
  const { warnings } = await viewer.importXML(xml);

  console.log('rendered');
} catch (err) {
  console.log('error rendering', err);
}

Checkout our examples for many more supported usage scenarios.

Dynamic Attach/Detach

You may attach or detach the viewer dynamically to any element on the page, too:

const viewer = new BpmnJS();

// attach it to some element
viewer.attachTo('#container');

// detach the panel
viewer.detach();

Resources

Build and Run

Prepare the project by installing all dependencies:

npm install

Then, depending on your use-case you may run any of the following commands:

# build the library and run all tests
npm run all

# spin up a single local modeler instance
npm start

# run the full development setup
npm run dev

You may need to perform additional project setup when building the latest development snapshot.

Related

bpmn-js builds on top of a few powerful tools:

  • bpmn-moddle: Read / write support for BPMN 2.0 XML in the browsers
  • diagram-js: Diagram rendering and editing toolkit

It is an extensible toolkit, complemented by many additional utilities.

License

Use under the terms of the bpmn.io license.