Route bounded coding work across whichever installed agent CLI has quota to spare.
A pool is one installed agent CLI, or one account of that CLI. A lane
is the nature of the work: analyze (read-only), build (edits), or
chore (mechanical edits). The kernel is Bullswarm’s own runtime, not an
agent.
ok:true requires passing verification (see the verdict shape below).quotaWindow: weekly for claude-code, codex and grok; monthly
for command-code and the relay pools), overridable per pool with
bullswarm strategy set-subscription <pool> --quota-window <weekly|monthly>
— bullswarm pools names it in the meter column. A provider that reports
usage but no reset date (the Relay wallets since 2026-09-03) is paced from
a reset the operator declares with --resets-at <iso>, rolled forward one
window at a time once it passes; bullswarm pools marks that row
declared-reset, and a reset the provider does report always wins. The
5-hour window never paces — it gates. A pool whose 5-hour forecast is at
or above 75% and ahead of the share of that window already elapsed is
chosen only when no eligible pool below that line exists; a pool whose
forecast is at or above 90% is not dispatched at all. The 90% burst gate
ignores the clock.The full routing mechanics behind rules 2 and 4 — pace, 5-hour headroom, expiring-soon urgency, in-flight load, and quarantine — are gathered in Routing.
{
"ok": true,
"keepOnClaude": false,
"why": "verified",
"pick": { "pool": "grok", "command": ["grok", "-p", "..."] },
"contentUsableDespiteExit": false,
"outFile": "/tmp/dlg.out"
}
keepOnClaude: true — router says do it in-session; nothing ran (ok is
also true in this case, but there is no outFile to read)ok: true and keepOnClaude: false — verified output, read the fileok: false — why names the failed gatecontentUsableDespiteExit: true — non-zero exit but complete output; read
before re-running