Observe first
Working today0
changes before you say so
watching
every deploy
changing
nothing yet
Your agents ship code faster than anyone can review it. Working as intended. Then it breaks at 3 a.m., and the one thing nobody kept is why that change existed at all. Drums keeps it — then reproduces the failure, repairs it, and proves the repair. You find out over coffee.
Trusted by teams like
Claude Code and Codex write the repair today, OpenCode next. Drums decides what needs repairing, whether the repair worked, and whether it ships.
Drums starts observing only. Nothing changes until you say so.
Every claim carries how it is known — never one green check.
A repair ships alone only when every claim is verified or observed.
0
changes before you say so
watching
every deploy
changing
nothing yet
5 states
verified · observed · inferred · approved · unresolved
verified or observed
ships alone
inferred
goes to a person
30 days
every repair reversible with one command
The failing request is replayed at the exact revision before anything is written. Attribution is proven, not guessed.
Verified, observed, inferred, approved, unresolved. Every claim says how Drums knows it.
Repairs land as real commits and the evidence chain attaches as a git note. git log is the audit trail.
Each failure class climbs from observe to act alone on its own record, and drops a rung automatically after rollbacks.
Customer data, billing, permissions, and infrastructure always wait for a named person.
Claude Code and Codex write the repair today, OpenCode next. Switching agents changes nothing about the record.
Detect the failure from telemetry, attribute it to the deploy and the change behind it, rebuild that revision, and replay the failing request. Attribution is real, not a guess.
A failure arrives over an event webhook today, with evidence attached. Sentry, PostHog, and OpenTelemetry adapters are next.
The failing stack trace is matched against the deploy that shipped just before it and the files it changed.
An isolated copy of that exact revision is rebuilt at the commit the failure first appeared on.
The captured request runs again. If it doesn’t fail, Drums says so instead of writing a patch.
The PR body, the linked ticket, or the agent prompt behind the change is kept as what it was supposed to do.
signal: POST /api/checkout · 500first_seen: 14:18:31volume: 41 errors in 4 minsessions: 3.1%sources: sentry · posthog · synthetic runclaim: failure_detected observed
deploy: 8f32a1 · "add promo code field" · @mayashipped: 14:12:19 · six minutes before the first errorchanged: 4 files · 2 appear in the failing stack tracelikely: lib/cart/total.tsclaim: attributed_to_deploy inferred
revision: rebuilt at 8f32a1 · 38srequest: captured POST /api/checkout · replayedresult: identical TypeError · exit 1boundary: runs inside your infrastructureclaim: reproduced_in_isolation verified
Your own coding agent writes the fix. Drums hands it the reproduction and the acceptance criteria, then checks the patch against the original failure and the behaviour around it — never against the agent’s report.
How a repair is verifiedEvery claim bound to the exact revision, environment, and actor.
Ship the repair to a small share of traffic, confirm the original failure is gone and nothing else moved, then promote or roll back. Repairs stay reversible with one command for 30 days.
Scheduled work described the way you would describe it to a colleague. Drums runs it, reports what passed, and leaves you one thing to look at.
Mondays 06:00
Nightly
1st of month
On publish
Weekly
Monthly
Monthly
Nightly
Mondays 06:00
Nightly
1st of month
On publish
Weekly
Monthly
Monthly
Nightly
Weekly
Nightly
Weekly
1st of month
Weekly
Weekly
Nightly
Quarterly
Weekly
Nightly
Weekly
1st of month
Weekly
Weekly
Nightly
Quarterly
Provenance on every claim, autonomy earned per failure class, one command that stops everything, and approval required where a mistake would cost the most.
One binary. A CLI, a git remote, an MCP tool inside Claude Code and Codex, and annotations in the editor gutter. git log stays the audit trail.
Run the loop on your own machine, on as many repositories as you like. Observe-only by default, the record stays local, and nothing leaves your boundary.
InstallAn eight-week pilot with a small number of teams — one application and one failure class at a time, with the record reviewed together every week.
Book a callAn annual subscription for production applications after the pilot: private deployment, reproduction inside your own infrastructure, identity-bound approvals, and a signed audit export.
SOC 2 Type I — in progress
Book a callYou read about the repair after it worked — and it stays one command away from undone.
What Drums does, what it refuses to do on its own, and where it stops.
Software that detects its own production failures, works out which change caused them, fixes them, and proves the fix worked — without a person having to notice first. Drums does that as a loop: detect, attribute to a deploy, reproduce at that exact revision, repair with your own coding agent, verify against the reproduction, then propose the change.
It replays the failing request against a container built at the commit that introduced the failure. If it does not fail there, Drums says so and stops rather than guessing. If it does, the reproduction becomes the acceptance test the repair has to pass — so a fix is only called verified when the original failure has actually stopped.
No, not by default. Every repair stops at a pull request and waits. Shipping on its own is earned per failure class: five consecutive clean ships, a human running drums authority promote, and automatic demotion the first time something goes wrong. There is no flag that skips the ladder.
Claude Code and Codex today, OpenCode next. Drums drives the CLI already authenticated on your machine — it never resells model access and never asks for an API key in local mode. Deciding what needs repairing and whether the repair worked is the product; writing the patch is not.
Those tell you something broke. Drums starts where they stop: it takes the error, links it to the deploy that caused it, reproduces it, and fixes it. It consumes your existing telemetry rather than replacing it, and it has no graphs, alert rules, or on-call schedule of its own.
The whole loop — detect, attribute, reproduce, repair, verify, propose — is free forever on your own machine, on as many repositories as you like, with no account. The one paid thing is act-alone authority: letting Drums ship a failure class without waiting for you.