← home · compare
brat vs raw tmux + scripts
DIY: panes, shell, and willpower
This is what most people actually do today: a tmux session with eight panes, each one running claude or aider on a feature branch, with a bash script that spawns and reaps them. It works, it's zero-install, and it's how brat started in our own usage. brat is what we built once the spreadsheet of "which pane is on what" got bigger than our screen.
| feature | brat | raw tmux + scripts | winner |
|---|---|---|---|
| Surface area | CLI + roles + WAL + optional web UI | Whatever your shell knows | brat |
| State | Append-only events in git refs | Scrollback + your memory | brat |
| Resumability | Replay from the WAL | Re-read scrollback if it's still there | brat |
| Lock coordination | TTL leases enforced by the harness | Hope | brat |
| Visibility | brat status, web dashboard, mayor chat | Eyeballing panes | brat |
| Onboarding | Rust 1.75+ install, learn vocab | You already know it | raw tmux + scripts |
| Best for | Fleets of >5 agents on shared codebase | 1–2 agents, isolated branches | tie |
| Cost | Open source, MIT | Free | tie |
pick brat when
- ▸You've outgrown tracking sessions by counting tmux panes
- ▸You want to ask "what is task #14 doing" without grepping a scrollback
- ▸You want the state to survive when your laptop sleeps mid-task
- ▸You want a merge queue instead of "whichever branch I rebase first wins"
- ▸You're moving from one agent at a time to ten or fifty at a time
pick raw tmux + scripts when
- ▸You run one or two agents at a time and they don't share files
- ▸You like seeing every log in front of you, all the time
- ▸You don't want any new dependencies
- ▸The orchestration is small enough to fit in your head — leave it there
still deciding?
These are not zero-sum. Run brat for the agent fleet on your main repo, keep raw tmux + scripts for what it's already good at, and let the tools earn the work they do best.