Talk to the foreman.
It splits the work into tasks. brigada gives each task to the agent with the best measured record on your repo among those with quota left, checks and cross-reviews the result, and learns from the outcome.
# install (Go 1.27+) $ go install github.com/Blackfire-AI/brigada/cmd/brigada@latest # pick the foreman, the CLIs that run tasks, the check $ brigada init # talk to the foreman $ brigada attach # engine, jobs, plans, what needs you $ brigada status # which agent actually wins where $ brigada stats
You pay for more than one AI coding subscription. So today, you are the foreman.
- You split the work into agent-sized tasks by hand.
- You pick an agent per task by gut feel, and switch CLIs when one hits its 5-hour or weekly limit.
- You babysit: rerun, paste errors back, decide when to give up.
- You don’t know which agent is actually best on your repo for this kind of task.
- Agents say “done” without running the tests, and nobody from another model family reviews the change.
A crew of agents, one foreman, and a record of who does what best.
brigada sits above the official command-line tools and uses them as workers. The foreman decides; the engine enforces, in code.
brigada attach, or walk away.Plans with dependencies
One of your CLIs, in a brigada-owned session. Your attached chat and the headless turns that wake on events while you’re away are one transcript.
Picks by measured record
Each task goes to the agent with the best record for that kind of task on your repo, among agents that still have quota.
“Done” is not taken on trust
Every task’s own check — tests, lint, any command — runs on the result.
Another model family reads it
A reviewer from a different family than the author reads every change. Fix rounds are capped.
Learns from every task
Every outcome is recorded locally. brigada stats shows which agent actually wins where.
Lands what passed
Each approved task is squashed onto the target branch, your check reruns on the result, and the push follows your push gate.
The loop is brigada’s. The stops are yours.
Every step the check and the cross-family review have already decided runs without you. You choose where the loop waits by writing rules into the project file. The engine enforces a gate; the foreman has no tool to pass one.
Plan
A plan with more tasks than you allow, a class outside your list, or a path you protect waits for you. Everything else starts on its own.
Land
Approved tasks land as soon as their dependencies have. A conflict or a failing check on the landed result is never resolved by a rule.
Push
default: auto
A landed task is pushed at once. Set it to ask to hold pushes until you approve, or never to push yourself.
The CLIs you already pay for. Unmodified.
- Claude Code
- Codex
- Kimi
- opencode
- dsh · experimental
brigada drives the vendors’ unmodified command-line tools, each signed in with your own account, one login per account. It never stores your tokens, and logins are never shared between people. See TERMS.
Reviews need a model family other than the author’s, so offer review-capable agents from at least two families.
One Go binary and a SQLite store, on your machine.
brigada init starts the engine and a detached runner; brigada start brings them back after a reboot. Tasks keep running after the conversation ends, and the plan is also written into the repo, so a foreman session can end or crash without losing work.
Workers run in git worktrees, not containers, each under its CLI’s own permission scope. They inherit your environment, so a check or a test run can still reach your credentials and network: don’t point brigada at a repository you don’t trust.
Three commands to your first plan.
You need:
- Go 1.27 or newer, and
git - a repository with an
originremote - signed-in agent CLIs on
PATH, from at least two model families
Install the binary
go install github.com/Blackfire-AI/brigada/cmd/brigada@latest
Make sure $(go env GOPATH)/bin is on your PATH.
Run brigada init in your repo
brigada init
Pick the foreman model and effort, the CLIs that may run tasks, tasks at once, and the check. Init shows every file it would change; nothing is written until you confirm. --probe writes nothing.
Talk to the foreman
brigada attach
Then brigada status, brigada diff <task> and brigada land <task>. The guide covers the rest.