Use case · Engineering
Three hundred call sites.
One afternoon.
The billing-v1 client was deprecated two quarters ago. Three hundred call sites still use it, because no engineer has a spare month. A swarm has sixteen spare hours — all at once.
Migrations don't stall because they are hard. They stall because they are three hundred small chores wearing one big ticket. Split the ticket across sixteen workers and the chore part disappears — what remains is the dozen decisions that actually need an engineer.
9:30 AM
The ticket everyone routed around.
An engineer opens the migration ticket that has survived four sprint plannings, and closes it differently this time: one request, one worker per module, and a rubric that defines what “done” means. The migration guide rides along as context.
POST /api/v1/swarms{ "objective": "Migrate every caller of billing-v1 to the v2 client", "tasks": [ "Rewrite call sites in modules/invoices (31 sites)", "Rewrite call sites in modules/payouts (24 sites)", "…one worker per module — 16 modules, 300 sites" ], "evaluation": "Per diff: types pass, tests pass, no behavior change against the fixture suite", "aggregatorTask": "One branch per module; flag any diff scoring below 0.9", "budgetUsd": 10.00}9:32 AM
Sixteen branches grow at once.
Each worker gets a sandboxed checkout, its own module, and nothing else. They rewrite call sites, run the module's tests, and adjust until green — simultaneously, in sixteen isolated sandboxes, never inside anyone's dev machine.
The $10 ceiling is a hard line across the run. A worker stuck in a test loop gets stopped at its share — a stalled module costs cents, not the afternoon.
one call · four workers · one answer
10:20 AM
The judge reads every diff.
An evaluation scores every diff against the rubric: types pass, tests pass, behavior unchanged against the fixtures. 288 call sites clear the bar. Twelve don't — ambiguous retry semantics, a hand-rolled mock, one module where v2 has no equivalent endpoint.
The point isn't that machines review machines. It's that the human's attention is spent only where the judge lost confidence.
evaluation scores · 16 modules
2:40 PM
Nothing merges itself.
Opening pull requests against the repo is an external write, so every branch holds until the engineer approves it — policy, not etiquette. She reads the twelve flagged diffs closely, fixes two by hand, and releases the rest module by module.
By the end of the afternoon the deprecation is a merged set of PRs with an append-only record of who approved what, and when.
policy: external writes require approval
The ticket was scoped at an engineer-month — call it $15,000 of salary nobody could spare. Sixteen workers rewrote 300 call sites in 50 minutes for $6.80, and the engineer spent one afternoon on the twelve diffs that deserved an engineer.
0
call sites migrated in parallel
0
diffs flagged for human review
$0.00
total, against a $10 hard cap
The same shape, everywhere
Anywhere the backlog is many small diffs, a swarm wins.
Dependency upgrades
One worker per package bump — each with its changelog read and its test suite run.
Test backfill
Uncovered modules get a worker each; evaluations reject tests that merely assert the mock.
Lint-debt paydown
Ten thousand warnings sharded by directory and cleared without a human touching one.
Dead-code sweeps
Every suspected-unused export traced across the repo before a removal PR is proposed.
Incident repro hunts
Sixteen hypotheses about a flaky failure tested in parallel sandboxes overnight.
First-pass PR review
Each open PR gets a worker: style, tests, and risky-diff flags before a human looks.
Keep exploring
Give your agent a workforce.
Start free. Spawn your first swarm in minutes. Pay only for the GPU-seconds you use.