正在載入完整 README。 以下為已儲存的摘錄。
Bullswarm is a CLI that sends a coding task to whichever of your installed
agent CLIs — Claude Code, Codex, Grok, OpenCode, or Command Code — currently
has unused subscription quota, then checks the result by its content.
One command runs one task. A second command runs a graph of dependent tasks
across those same CLIs. Every result is judged by what was actually written,
not by whether the process exited 0.檢視完整 README ↗You pay for more than one coding agent: a Claude plan or two, Codex, Grok, maybe another.
Every one of them meters you on a clock — five-hour windows, weekly caps, monthly allowances — and unused quota is simply gone when the window resets.
So one plan runs dry mid-task while the others sit idle. You switch tools by hand just to spend what you already paid for. And the agent that wrote the code is usually the one that decides it is done.
Bullswarm turns the agent CLIs already signed in on your machine into one fleet that your main agent can command.
flowchart LR
you([You]) -->|goal| main["Your main agent<br/>Claude Code · Codex · Grok<br/>+ /bullswarm skill"]
main -->|"bullswarm run · workflow goal"| bs{{"Bullswarm<br/>pace router + workflow kernel"}}
bs --> c["claude -p"]
bs --> x["codex exec"]
bs --> g["grok -p"]
bs --> o["contributed providers"]
c & x & g & o -->|output| v["independent verification"]
v -->|"verdict + evidence"| main
analyze, build, chore). Setup asks each CLI which models it offers and suggests the newest one for each effort level, so you don't have to update settings every time a vendor ships a model.bullswarm run is a one-step workflow: one task to one agent, one automatic retry, and an optional answer checked against a JSON schema. For bigger goals your main agent writes a program from four blocks: steps (each with an optional checked answer), phases that group them, gates where the run waits for you, and loops that repeat steps until a condition holds, such as "until the tests pass". Independent steps run in parallel across agents, and a step can be routed away from the agents that did the work it checks.proven by command (a check Bullswarm ran passed), answer checked (the answer is well formed, which is a claim, not proof), or unproven. A run reports these facts, not a verdict; verified requirements belong to old v2 programs only./bullswarm skill teaches Claude Code, Codex and Grok when to delegate. There's also an early-access Claude Code Mod that shows runs and usage inside Claude Code.workflow add, also straight from a step's answer), continue a waiting gate or give a loop more rounds, rerun a step, or pause and resume it.Home: what's running today, how much quota each plan has left, and what you've spent.
Run: one workflow's plan, which agent took each step, and what it cost.
More screens, including phone-sized ones, are in the gallery.
| Approach | What you give up |
|---|---|
| One agent's built-in subagents or workflows | Everything draws on that one plan's quota, the same vendor grades its own work, and your process is tied to that vendor's feature. |
| An API gateway that re-exposes your subscriptions | Turning a consumer subscription into a generic API endpoint can conflict with provider terms, and you lose each agent's own tools and harness. |
| Switching tools by hand | You become the scheduler, and the quota you did not get to still expires. |
| Bullswarm | Drives each vendor's own headless CLI—claude -p, codex exec, grok -p—the way those CLIs are meant to be scripted, with the accounts you already signed in. Work lands where quota is spare, and a different agent can check it. |
Bullswarm never proxies a subscription as an API and never collects or shares your vendor credentials.
The controller is portable. Claude Code, Codex, Grok, or any capable caller drives the same CLI and durable workflow kernel, so your workflows are not locked into one vendor's orchestration.
Agent plans now come with hard weekly limits, and serious work spans hours rather than prompts. A workflow can run for one to two hours across several agents—builders in parallel, an integrator, then independent acceptance—while you keep handing new goals to your main agent.
With Bullswarm routing by pace, running several goals at once no longer means worrying about wasting one plan's scarce quota: the fleet spends whichever plan is furthest behind.
You need Node.js 22.12 or later and at least one agent CLI you're signed in to (Claude Code, Codex or Grok).
The easiest way to set up is to let your agent do it. Paste this into Claude Code, Codex or Grok:
Install and set up Bullswarm for me:
1. Run `npm i -g bullswarm`.
2. Run `bullswarm setup --yes --strategy --integrate` to find my agent CLIs,
pick models, and install the /bullswarm skill for each agent.
3. Run `bullswarm doctor` and tell me which agents are ready and how much
quota each one has left.
4. Read the installed /bullswarm skill so you know when to use
`bullswarm run` and when to write a workflow.
After that, just give your agent goals as usual. It will hand work to Bullswarm when that helps. Run bullswarm in a terminal to open the dashboard; closing it doesn't stop anything that's running.
To set things up by hand, or to choose models and reasoning yourself, see Getting started.
| Agent CLI | Support | Quota windows tracked | Command it runs |
|---|---|---|---|
| Claude Code | Built in | weekly + 5-hour | claude -p |
| Codex | Built in | weekly | codex exec |
| Grok | Built in | weekly | grok -p |
| OpenCode | Contributed | none | opencode run --auto |
| Command Code | Contributed | weekly + monthly + 5-hour | command-code -p |
Each provider describes how to launch its CLI, read its quota, list its models and read its output. To add one, see Adding a provider.
Bullswarm is open source and gets better through the cases people hit in real use. If you are a person or an agent and you find a real bug or gap in Bullswarm itself, an issue or a pull request is welcome. Nobody is expected to send one.
If you are an agent, check with the person you work for before you post anything. Issues on this repo are public, so leave out task text, file paths, repo or project names, account names, keys and anything else from the person's work. The Bullswarm version, the command, and the error line are usually enough.