Embrace the Tumult

Rust-native chaos engineering, end to end. Define experiments, run them with real telemetry, keep every result, and turn it into evidence.

$ curl -sSL https://raw.githubusercontent.com/mwigge/tumult/main/install.sh | sh
click to copy
$ docker pull ghcr.io/mwigge/tumult:latest
click to copy
1,300+
Unit Tests
40
MCP Tools
16
Plugins
91
Chaos Actions
0
Unsafe Blocks (production code)
7
Compliance Frameworks

One Platform, End to End

Tumult is a single platform, not a pile of tools. Every part feeds the next, and the loop closes when what you learn shapes the next experiment.

Define
Experiments in TOON, driven from the CLI
Run
Real OpenTelemetry traces on every action
Store
Journals and telemetry in the DuckDB analytics lake
Explore
Web UI, SQL, or plain questions in natural language
Report
Compliance evidence as document-controlled PDFs
Recommend
AI agents over MCP suggest the next experiment

Recommendations feed back into the next experiment definition.

The Parts of the Platform

Each piece does one job and hands off to the next. Here's what fits where.

Define & run

CLI & Plugins

Write experiments in TOON and run them from one static binary. 16 plugins, 91 chaos actions: PostgreSQL, MySQL, Redis, Kafka, Docker, Podman, Pumba network chaos, Kubernetes, SSH, CPU/memory/IO stress. Write your own plugin in any language — it's just scripts and a manifest.

Store & explore

Analytics UI

The daemon (tumultd) ingests OTLP traces, metrics, and logs into an embedded DuckDB store, then serves the web UI from the same binary. KPIs, experiment history, log/trace/metric explorers, run control with a live waterfall and a two-step e-stop. Or just ask a question in plain language over the store.

Prove it

Reports & Compliance

Map experiments to DORA (EU 2022/2554), NIS2, PCI-DSS 4.0, ISO 22301, ISO 27001, SOC 2, and Basel III. R1 executive digests, R2 evidence packs, and R3 game-day reports render as A4 PDFs with document control and hash-chain verification.

Close the loop

MCP Server

40 MCP tools over stdio or Streamable HTTP, with tool annotations, structured output schemas, and tumult:// resources. Any MCP-compatible agent can discover plugins, run experiments, query the analytics lake, and recommend what to test next.

Built to Run Anywhere

Single Binary

One static binary — no Python, no runtime dependencies. Pre-built for macOS (x86_64/aarch64) and Linux (x86_64 gnu/musl, aarch64 musl). Copy it to your PATH and run experiments.

Native OpenTelemetry

Every experiment emits real OTel spans across SSH, Kubernetes, plugins, baselines, analytics, and MCP dispatch. Traces show up in Jaeger, SigNoz, or any OTLP backend — no configuration.

Memory Safe

100% safe Rust across all 22 crates. Zero unsafe blocks in production code. Zero production .unwrap(). Clippy pedantic enforced. cargo-audit on every commit.

GameDay Orchestration

Coordinated campaigns of experiments with shared load, resilience scoring, and compliance article mapping. One command: 4 experiments, DORA/NIS2 evidence, audit-ready journal.

Docker Images

Pre-built on GHCR — no Rust toolchain needed. docker pull ghcr.io/mwigge/tumult. Composable bundles: infra, observability, MCP server, agent fleet. Full e2e in one command.

SigNoz Observability

OTel Collector (contrib) with OTLP + Arrow receivers, span-to-metrics APM, host metrics, Prometheus. Traces flow to SigNoz — dashboards, alerting, log aggregation. No custom build needed.

See It in Action

↗ share this demo: tumult.rs/watch

GameDay: One Command, Evidence Mapped

$ ./scripts/gameday-demo.sh Targets: ✓ postgres ✓ redis ✓ kafka MCP Session: 2609892c-8e73-4587-b96a-56eaf6020ec6 Discovering chaos capabilities: Plugins: 16 | Actions: 91 Running Q2 PostgreSQL Resilience GameDay... Compliance: DORA EU 2022/2554 Art. 11, 24, 25 | NIS2 GameDay: Q2 PostgreSQL Resilience Programme Status: COMPLIANT Resilience Score: 1.00 #1 [PASS] Connection kill under load (2197ms) #2 [PASS] Container pause — total outage (7402ms) #3 [PASS] CPU stress — resource pressure (9331ms) #4 [PASS] Memory stress — resource pressure (9305ms) Score: Pass 1.00 | Recovery 1.00 | Load 1.00 | Compliance 1.00 Store: 67 experiments, 244 activities (DuckDB)

Compliance reports are evidence summaries, not legal or audit attestations.

The Platform, Running

Every screen below is the Tumult analytics UI on the seeded demo stack (docker compose -f docker/docker-compose.kronika.yml up -d) — from sign-in to an approved, executed, e-stopped and reported run. The full click path is in the platform walkthrough.

Tumult analytics overview dashboard — experiment KPIs, pass and deviation rates, fault breakdown
OverviewResilience posture at a glance: hypothesis pass rate, deviation rate, experiments per day, fault breakdown — computed from the store, per window.
Scores page — company score 90.0 with coverage and a domain treemap
Org rollup scoresPer-experiment scores roll up by domain to the company root, with coverage against expected evidence and the weakest member called out.
New run page — pick a registered definition, dry-run the resolved plan, start the run
One-click executionPick a validated definition from the registry, dry-run the exact resolved plan — hypothesis, method, rollbacks — then start.
Approvals queue — an approver reviews a pending T2 run with its content-hash pin
Approval workflowsRisk-tiered runs park behind a quorum with content-hash pinning and segregation of duties — the requester can never approve their own run.
Run detail — deviated run with live telemetry waterfall, consumed approval chain and hash-chained audit trail
Run detailLive telemetry waterfall, the consumed approval chain with the approver's note, and a tamper-evident hash-chained audit trail — one page, whole story.
Aborted run after two-step e-stop — fault span halted mid-method, rollback completed
Two-step e-stopStop a run mid-method: the fault span halts, rollbacks unwind to a clean state, and the stop joins the audit trail with its actor.
Manual evidence register — draft, submitted and verified records with reviewer attribution
Manual evidenceGame days and tabletops enter as attested records with a draft → submitted → verified lifecycle, reviewer ≠ enterer, append-only audit.
Reports page — a generated R2 DORA evidence pack with SHA-256 and PDF download
Evidence packsR1/R2/R3 compliance reports generated from the store as document-controlled PDFs — the R2 pack includes the approval chain (SOC 2 CC8.1).

Architecture

Tumult Architecture — tumult-core engine, CLI, MCP server

Native Observability

Every experiment produces a full trace — hypothesis, actions, probes, rollbacks — visible in SigNoz, Jaeger, or any OTLP backend. No configuration required.

SigNoz showing Tumult experiment trace waterfall

Ready to Build Resilience?

One command to install. One script to run a full GameDay with DORA/NIS2 evidence mapping.


Tumult is open source under the Apache-2.0 license.