12vectors / bench docs for 0.4-alpha
bench docs GitHub ↗
Documentation

Run a team of coding agents. Stay in control.

Your agents can ship faster than you can keep track. bench turns your repo into mission control: every task is a card, every agent works in its own worktree, every change waits as a PR for your review.

The bench board: cards in backlog, to-do, in-progress, review
              and done, three agents working, each card showing its branch
              and the command its agent is running.
bench's own board, on this repo. Three agents at work, each on its own branch — and every one of them stops at review.
Two minutes

Untar it, run it, open the board.

It goes into .task-manager/ inside the repo it manages. One script wires the project and serves the board on port 26071 — pinned, so the url is always the one you bookmarked.

Two questions on the first run: solo or team, and which coding agent runs the headless jobs. What runs your tests is read off the project. Everything else is written into a settings file, commented, for when you want it.

no account, no service, no database. it is python 3 on your own machine.
~/your-repo first run · abridged
$ mkdir .task-manager && curl -L \
  https://github.com/12vectors/bench/releases/latest/download/bench.tar.gz \
  | tar -xz -C .task-manager
$ ./.task-manager/start.sh        # wires the project (idempotent) and serves

  solo or team? [solo]:
  which agent adapter? [claude]:



Task board for ~/your-repo/.task-manager/tasks
  http://127.0.0.1:26071/

Why bench?

Simplicity, and total control bench lives in your codebase — task files in your repo, a board that reads them, nothing in the middle. And it is built to be extended: the app it drives, the agent it launches, the chores it runs are all yours to write, so the workflow it runs is exactly your workflow.
Nothing lives in a scrollback Every agent's task, branch and status on one board — not scattered across chat sessions that forget everything the moment they end.
Parallel when it can be, in order when it must Each agent gets its own git worktree and branch, so five run at once without editing the same file out from under each other. Work that has to land in order is a phase: one branch, its cards worked and merged into it one at a time, and one PR at the end.
Nothing merges without you Finished work arrives as a PR with CI on the card. bench never merges into main — the button stays yours, and you stop being the thing everything queues behind.
Version 0.4-alpha read from manager/core/VERSION when this page was built. update.sh replaces an install with the latest release; BENCH_REF=v2 pins an exact one. Releases ↗