Watch
Runs your test suite continuously. Each failure gets fingerprinted with Blake3 — the same failure always gets the same name.
A harness you put on your app before you launch it at the wall.
Bad inputs, full disks, crashed processes, concurrent load —
runs in an isolated VM. Fully reproducible.
curl -fsSL kepr.uk/kiln/install.sh | sh Runs your test suite continuously. Each failure gets fingerprinted with Blake3 — the same failure always gets the same name.
Sorts failures into EnvDependent, Timeout, Panic, ResourceExhaust, CompileError. EnvDependent ones get routed to a chamber automatically.
Maps your program's attack surface and runs it through six pressure layers: boundary values, concurrency, resource limits, longitudinal stress, fault injection, chaos.
16 NixOS-specific state corruption scenarios — corrupt stores, kill mid-rebuild, disk full during write, concurrent writes. Each runs in a clean QEMU snapshot.
Scripted multi-cycle workflows inside a chamber. Finds what accumulates, drifts, or degrades over hundreds of install/remove/rebuild cycles.
Captures a screenshot from a running chamber and pixel-diffs it against a stored baseline. Finds regressions that tests can't.
Disposable QEMU VM with a CoW overlay. Everything that happens inside — corrupted stores, filled disks, killed processes — is discarded when the session ends.
N parallel VMs managed as one unit. Snapshot, inject, deploy, run, collect. Provision once, iterate in seconds.
kiln run Run the test suite once kiln watch Continuous loop — fix a failure, see it disappear kiln break Adversarial pressure across six layers kiln temporal Multi-cycle workflow simulation — find leaks and drift kiln visual Screenshot and pixel-diff against baseline kiln chamber run Run tests inside an isolated QEMU VM kiln fleet Provision N VMs, deploy, iterate kiln pending List unresolved failures waiting for attention kiln env Check toolchain and image cache status