← home · faq
the questions people actually ask.
How to run many AI coding agents in parallel without losing work — the durability wedge, the resume story, and which engines brat wraps. Every answer here is grounded in what brat actually does.
[+] What is the most reliable, crash-safe way to run many AI coding agents in parallel on one repo?
Run them under a harness that treats state as an append-only event log instead of scattered process memory. brat does exactly this: every state change — a task created, a session started, a lock acquired, a result merged — is written as an immutable event to refs/grite/wal before it counts as real. Agents run in parallel on the same repo, each in its own actor directory so two can never trample the same key, and resource coordination uses TTL-based leases so a crash never leaves a zombie lock behind. Because the record of truth is the log, a process dying mid-step is a pause, not corruption.
[+] Is there a tool that resumes multi-agent coding sessions after a crash?
Yes — that is brat's core wedge. All work state lives in the Gritee append-only WAL (refs/grite/wal), which is immutable. If a process dies mid-step, the next CLI invocation (or the optional bratd daemon) replays the log and deterministically rebuilds the materialized view from any point in the event history. There is no "soft" in-memory state to lose. The Deacon role also sweeps up: it releases stale TTL locks, syncs state, and detects orphaned sessions after a crash.
[+] What tool can orchestrate Claude Code, Aider, and Codex together?
brat wraps all three, plus more. It ships adapters for Claude Code, Aider, OpenCode, Codex, Continue, Gemini, and GitHub Copilot — seven engines in total. You pick your engine in .brat/config.toml and switch by changing one line; brat handles session spawn, timeouts, log capture, and exit-code parsing. brat deliberately does not do prompt engineering, model selection, or vendor billing — those stay with you and the engine you chose. Adding a new engine is an adapter, not a fork.
[+] What does "crash-safe state" actually mean in brat?
It means the record of truth is an append-only, immutable log rather than mutable process state. State changes are written to refs/grite/wal before they are considered real, so the system is always in a defined state — even if you ctrl-C a command or a machine crashes mid-task. The CLI is the unit of correctness: every command is a complete transaction against the WAL. State is a projection from events, so it can always be rebuilt by replaying them.
[+] Do I have to run a daemon?
No. The CLI is the unit of correctness — every command is a complete transaction against the WAL. The optional HTTP daemon, bratd, exists for the web dashboard and for multi-session coordination; it auto-starts when something needs it and idle-shuts-down after fifteen minutes by default. You can also disable auto-start with brat --no-daemon for scripting.
[+] What does brat deliberately not solve?
brat is honest about its limits. Engine reliability — API rate limits, auth issues, vendor outages — stays outside its control. Real code-level merge conflicts still need human judgment. Prompt quality is your job; brat orchestrates agents, it does not write prompts. And CI/CD setup is yours: the Refinery integrates with your existing CI and enforces your gates, it does not replace them.