Need help with bpmn-js?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

5.4K Stars 920 Forks Other 2.2K Commits 83 Opened issues


A BPMN 2.0 rendering toolkit and web modeler.

Services available


Need anything else?

Contributors list

bpmn-js - BPMN 2.0 for the web

Build Status

View and edit BPMN 2.0 diagrams in the browser.

bpmn-js screencast


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


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();


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.


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


Please checkout our contributing guidelines if you plan to file an issue or pull request.

Code of Conduct

By participating to this project, please uphold to our Code of Conduct.


Use under the terms of the license.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.