Skip to content
| Marketplace
Sign in
Visual Studio Code>Visualization>Event Storming ModelerNew to Visual Studio Code? Get it now.
Event Storming Modeler

Event Storming Modeler

Miragon

|
32 installs
| (0) | Free
View and edit Event Storming boards directly in VS Code, backed by plain-text .storm files.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Event Storming for VS Code

VS Marketplace License: MIT

Event Storming is a workshop format for exploring a business domain with sticky notes: domain events on a timeline, the commands that trigger them, and the people, policies and systems around them. This extension lets you create and edit Event Storming boards directly inside VS Code: it opens .storm files (a simple plain-text DSL) in a graphical editor, while the text file stays the source of truth, so save, Git, and diff keep working.

The Event Storming board editor in VS Code

New to Event Storming? Start with eventstorming.com and Alberto Brandolini's book Introducing EventStorming.

Getting started

Install Event Storming Modeler (publisher miragon-gmbh) from the VS Code Marketplace, then start from a filled-in order-checkout example or a blank board. The built-in Get Started with Event Storming walkthrough is the recommended first stop: click its Create board from example button and you have a ready-made board to explore. From there you can open any .storm file.

Prefer commands? Run these from the Command Palette (Cmd/Ctrl+Shift+P, type "Event Storming"):

  • Event Storming: New Board from Example — pick a location, pre-filled with the order-checkout example.
  • Event Storming: New Empty Board — same, but a blank board (also under File > New File…).

Reading a board

Each sticky color has a meaning: Domain Event (orange), Command (blue), Actor (light yellow), Aggregate (yellow), Policy (purple), Read Model (green), External System (pink), Hotspot (red), plus free-text notes and freehand drawings. Time flows left to right — earlier events sit to the left of later ones — and arrows connect the stickies into a story.

Editing a board

  • Custom editor for .storm. Open a board file and you get the full graphical editor, backed by the plain-text file. Open Source to the Side (the button in the editor title of a board) opens the text beside it, Open Board to the Side (in the title of the text editor) does the reverse; editing either re-renders the other live, and VS Code tracks dirty state as you go.
  • Full modeler: the tool palette at the top and the context pad on a selected sticky (append, connect, change type, delete), free movement on an unbounded canvas, inline label editing, and sticky color overrides. With the keyboard, Tab to the palette, pick a sticky with the arrow keys and press Enter: it lands in the middle of the board with its label editor open. Ctrl/Cmd+A selects the whole board.
  • Undo and redo belong to the file. Every change on the canvas is one edit of the document, so Ctrl/Cmd+Z and Ctrl/Cmd+Shift+Z (or Edit > Undo) undo it like a text change, and the canvas keeps its view and selection. Only the lines that changed are rewritten, so a text editor open beside the board keeps its cursor.
  • Menu (top left): the workshop Level and Type captions (the caption on each sticky), Export as PNG, Export as SVG, Export as PNG (4×, transparent) (for slides) and Export as JSON, the same exports as the web app, and Keyboard shortcuts….
  • Zoom (bottom right): zoom out, the current zoom (click for 100%), zoom in and fit. With the board focused, Ctrl/Cmd + +, - and 0 zoom the canvas (not the window), Shift+1 fits.
  • Problems. Lines the parser cannot fully use (an arrow to a missing sticky, an unreadable line) are kept in the file and listed in the Problems view in plain words ("This arrow points to “Nowhere”, which isn't on the board."); the pill at the bottom left counts them and opens that view.
  • Stable sticky ids. A sticky you create or rename on the canvas keeps its id in the text ((id event_3)), so a reload, a peer or a tool that links to it finds the same sticky. Two people who each add a sticky at the same time (on two branches, say) can both get event_1; after the merge the second sticky gets a new id, and a link to it then finds the first.
  • Commands (Command Palette or the … menu of the editor title, while a board is focused): Event Storming: Fit to View, Export as PNG, Export as SVG, Export as PNG (4×, Transparent), Export as JSON, and Open Source to the Side / Open Board to the Side.
  • Empty board: a hint in the middle offers Insert example, which adds the order-checkout example as one undoable edit and keeps the title and comments already in the file.
  • Light canvas in every theme. The board stays light under dark color themes (high contrast is honoured) until the Miragon modelers ship their dark mode together. A style dark line in the file is kept, but the board follows the theme, not the file.
  • Self-hosted fonts — no CDN, offline-capable.

The menu, palette skin, zoom panel, problems pill, status box, empty-board hint and the theme bridge come from @miragon/modeler-shell, the chrome shared by all Miragon modelers.

Development

Building from source and the dev loop are documented in CONTRIBUTING.md.

The extension host bundle (dist/extension.cjs) is about 470 KB minified, nearly all of it zod, which the DSL validation needs for the Problems view. It is loaded once per window when the first board opens; this is accepted rather than moving the diagnostics into the webview. The webview loads its fonts as separate files from dist/fonts, so only the subsets a page uses are fetched.

License

MIT. The extension bundles third-party software (Lucide icons, the Geist fonts, diagram-js and its dependencies, zod); their licenses are in THIRD_PARTY_NOTICES.md, which ships in the extension as well.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft