Give each agent its own git worktree and branch. Worktrees share one repository but give every agent a separate checkout, so two agents never fight over the same files, index, or branch state. What worktrees alone do not solve is the landing: two finished branches can still conflict with each other when they merge.
How Tempo does it
Every Tempo task gets its own worktree and branch the moment it starts executing, created automatically and torn down after the merge. Your main checkout is never touched; you can keep working in it while agents build next to it.
For the landing, Tempo holds a per-project merge lock: finished tasks merge one at a time, conflicts are resolved before anything reaches main, and the branch and worktree are cleaned up afterwards. You approve the merge; Tempo performs it.
Tempo is in private beta for macOS. Join the waitlist or see how it works.