Chaos Toolkit

chaostoolkit.org ↗

A Python command-line toolkit for authoring and running declarative chaos experiments against configured systems.

SI Score
80/100
Pricing
Open Source AI reading, not confirmed
Free plan
Not confirmed
Sign-up required
Not confirmed

Ask SI about Chaos Toolkit

Answers use saved listing facts and recorded sources.
Homepage screenshot
Screenshot of the Chaos Toolkit homepage

What it does

Chaos Toolkit turns chaos experiments into JSON or YAML files that can be versioned and run from a command line or CI pipeline. An experiment can describe a steady-state hypothesis, actions that exercise a target and rollback behavior; extensions connect the core tool to cloud platforms, applications, networks and observability systems. Running an experiment produces a journal of the steps and result. It is a framework for deliberately probing a system, so the user must supply the target, experiment logic and any required extension packages.

Treat experiments like code

The toolkit's main interface is the chaos CLI. Define a JSON or YAML experiment, install the extensions needed for its target, and run the plan against a test environment. The official run guide documents chaos run for a local or HTTP-hosted experiment source, a dry-run option for rehearsing execution, configurable steady-state checks and rollback strategies, and a JSON journal that records the run. A useful first experiment might check a service's normal response, interrupt one dependency through an extension, then confirm that the service recovers. That is an illustrative scenario; this collection did not execute one.

The core CLI does not automatically know how to disrupt every system. The extension catalog covers integrations such as Kubernetes, AWS, application frameworks, network proxies and observability products, and the relevant extension must be installed and configured for the selected target. This modular approach allows teams to keep experiment definitions in source control and place them in CI, while requiring operators to provide their own access, secrets and recovery expectations.

One setup detail needs care: the current repository README recommends Python 3.12 or later and uv, while the older official installation guide still describes Python 3.8 or later and pip. Check the release's current runtime requirement before preparing a shared runner. The core project is Apache-2.0 licensed; no separate hosted service or subscription terms were established for this CLI listing.

Strengths

  • Experiment plans are JSON or YAML files, making them suitable for review, version control and pipeline execution.
  • The run command supports dry runs, steady-state strategies, rollback choices and JSON execution journals.
  • An extension model lets teams connect the CLI to different infrastructure, applications and observability systems.

Watch out for

  • A working Python environment and target-specific extensions are needed; the core CLI does not provide every system integration by itself.
  • The current repository README and older installation guide state different minimum Python versions, so operators should verify requirements for the version they install.

Best for

  • SREs and developers expressing resilience experiments as version-controlled files.
  • Teams that want to execute chaos scenarios from CI or another automated workflow.
  • Engineers who need a customizable CLI and can install the extension for their target system.

Sources