I built this to watch a grid of AI coding agents build at the same time. It opens up to 6 color-coded iTerm2 windows, one per task, and each one runs Claude Code on a build prompt. Each window builds its task into a single index.html file.
When they finish, one script gathers every build into a local page and prints the tokens, cost and time for each. It's the open-source setup behind SimmonsBench. The benchmark site, scoring and hosting are not included, just the technique.
What it does
- Opens up to 6 named, color-coded terminal windows in a 3 by 2 grid, one per task.
- Runs the same tasks on different models so you can compare the results side by side.
- Routes Anthropic models through your Claude login, and routes open models through OpenRouter.
- Collects all the builds into one local index page with a summary of tokens, cost and time per build.
- Ships six example tasks, and you can add your own as simple markdown files.
How it works
- run.sh opens the windows, sets up each task's prompt and starts Claude Code in each one.
- Each window builds its task and writes DONE when it finishes.
- collect.sh writes an index page linking every build and a summary.json with tokens, cost and time. It runs fully on your machine with no network or deploy.
- Run it again with a second model, and each run lands in its own dated folder so you can compare.
What you need
- macOS with iTerm2
- Claude Code CLI, logged in
- python3 (pyobjc is optional, for multi-monitor setups)
- An OpenRouter key, only if you want to test open models
Install it
git clone https://github.com/per-simmons/simmonsbench-agent-fanout.git
cd simmonsbench-agent-fanout
chmod +x fanout/*.sh
bash fanout/run.sh claude-opus-4-8 pelican-svg landing-page arcade-game
RUN_DIR=$(bash fanout/run.sh claude-opus-4-8 --run-dir)
bash fanout/collect.sh "$RUN_DIR"
open "$RUN_DIR/index.html"The full instructions, and the skill itself, are on GitHub.
Try asking
- “Run the fan-out on Opus 4.8 with the pelican, landing page and arcade game tasks, then collect the results.”
- “Now run the same three tasks on GLM 5.2 through OpenRouter so I can compare.”
- “Add a task that builds a weather dashboard and run it on both models.”
Good to know
- The build windows run Claude with --dangerously-skip-permissions so they don't stop to ask. Only run tasks you trust, and read fanout/run.sh first.
- It only works on macOS with iTerm2, because it uses AppleScript to place the windows.
- The cost summary uses a price table you may need to edit in fanout/collect.sh.




