Muster Get started

00Incident response playbooks

Know the next step before the incident.

Draw your playbooks as diagrams, version them like code, run them step by step when it happens, and get the incident report as a PDF. Self-hosted, for security teams.

docker compose up --build

20 s · every frame is the real product

  • 10playbooks ready on day one, mapped to the NIST phases
  • 4 rolesviewer, analyst, editor, admin — checked on every endpoint
  • 1 fileto back up: a SQLite database in your data folder
  • pdf-libthe only runtime dependency. Node 22 or a Docker image

From the diagram
to the report.

The playbook you draw is the one that runs. The run is what the report is made of. Nobody retypes anything at 3 a.m.

01 — Draw

Playbooks as diagrams, not documents.

Actions, decisions and escalations on a canvas that arranges itself. Every step has an owner, an SLA, a NIST phase and a checklist.

  • Keyboard-first: A action, D decision, E escalation, F end
  • Drag a handle onto a step to connect it; undo, redo, auto-arrange
  • Validation before publishing: dead ends, unreachable steps, missing owners
The playbook editor: the Ransomware playbook as a flowchart, with the step Isolate affected hosts selected and its owner, SLA and checklist in the inspector
Editor · PB-001 Ransomware, step S03 selected

02 — Version

Every change reviewed, every run frozen.

One shared draft, immutable published versions. Compare any two on the diagram itself: added, changed and removed steps, field by field.

  • Conflict detection when two editors save at once
  • Restore an old version into the draft in one click
  • Each incident keeps a frozen copy of the version it ran on
Version history: v1 compared with v2, the diff drawn on the diagram and nine listed changes
History · v1 → v2: 6 added, 1 changed, 2 removed

03 — Run

The playbook runs the incident with you.

Declare an incident or a tabletop exercise. Muster shows one step at a time, its tasks and its SLA clock, and asks the decisions as questions.

  • Phase rail, elapsed time and SLA per step
  • Every tick, answer and note goes into a timestamped timeline
  • Live for the whole team: open it in two browsers and watch
  • Exercise clock at ×10, ×60 or ×300 for training
A live exercise: the decision Encryption in progress, with Yes and No choices, the route on the frozen v3 diagram and the timeline
Run · INC-2026-0003, decision S02

04 — Report

The report is already written.

Close the incident and Muster drafts the report: executive summary, timeline, SLA performance, key decisions and the analyst’s notes. Edit, sign, download the PDF.

  • Templates with your logo, accent colour and classification
  • ID patterns like IR-{YYYY}-{SEQ} or {PB}-REG-{YYMMDD}-{SEQ}
  • Rename, hide or reorder sections; Markdown export
The incident report for Encrypted file server, Lyon office, with its executive summary and timeline, next to the editable fields
Reports · generated from the closed exercise

Ten playbooks
on day one.

Written for the incidents a security team actually meets, following the NIST phases. Start from them, then make them yours.

PB-001 Critical

Ransomware

Files encrypted or ransom note found. Contain fast, escalate early, restore from clean backups.

PB-002 Medium

Phishing email

Qualify the reported email, purge it everywhere and check who clicked.

PB-003 High

Compromised account

Cut access, scope what the attacker did, restore safely.

PB-004 High

CEO fraud and payment diversion

Fake executive or supplier, urgent payment. Stop the money first.

PB-005 High

Personal data breach

Contain, assess the risk, notify within 72 hours when required.

PB-006 Medium

Malware on an endpoint

EDR alert on a host. Check execution, contain, hunt for spread.

PB-007 High

DDoS attack

Confirm, mitigate upstream, keep customers informed.

PB-008 Medium

Lost or stolen device

Lock it, wipe it, check what data was on it.

PB-009 High

Insider threat

Stay discreet and work with HR and Legal.

PB-010 Critical

Exploited critical vulnerability

Find exposure, mitigate, hunt for compromise.

Review owners, SLAs and escalation contacts with your team before relying on them. Each one exports to YAML.

Built for the
worst night of the year.

Calm, legible, fast. Everything a team needs while it happens, and everything an auditor asks for afterwards.

Accounts and roles

Viewer, analyst, editor and admin. Local accounts with scrypt hashing, sessions you can revoke, an admin who can never lock themselves out.

Live for everyone

Incident progress, playbook changes and new reports reach every open browser instantly over server-sent events.

PDF on the server

The PDF is rendered from the same data and template as the on-screen preview, so what you approve is what you send.

Audit log

Sign-ins, publications, incident actions and account changes, with who and when. Readable by admins in the app.

Light and dark

A light interface by default and a dark one for the night shift. Reports and PDFs always print light.

Open formats

Playbooks export to YAML, reports to Markdown and PDF. A plain JSON API behind every screen.

The report template editor with the accent colour picker open
Report templates · colour picker with a contrast check
The playbook editor in dark mode
Dark mode · the same editor for the night shift

Small enough
to audit.

Node’s built-in HTTP server and SQLite, a React interface, one runtime dependency. You can read all of it in an afternoon.

muster/
├─ packages/core  types, 10 playbooks, diffs, engine
├─ packages/pdf   report → PDF (pdf-lib)
├─ apps/api       node:http, node:sqlite, roles
├─ apps/web       React interface
├─ scripts/       esbuild, demo launcher
└─ tests/         API, browser walk-through
  • Passwordsscrypt hashes, login rate limiting
  • SessionsHttpOnly, SameSite cookies; Secure behind HTTPS
  • CSRFa required X-Muster header on every write
  • Browserstrict Content-Security-Policy, no third-party scripts
  • Accessrole checks on every endpoint, audit log
  • Dataone SQLite file in your data folder; storage isolated in two files if you need PostgreSQL

Try it in
two minutes.

The demo opens with four accounts, the ten playbooks, a closed incident with its report and an exercise in progress, so every screen has something on it.

$ git clone <your-fork-url>
$ cd muster
$ docker compose up --build
# open http://localhost:8080
Sign in as admin / muster-admin
Solid Geeks: open source the world.