Skip to content

SimmonsBench Agent Fanout

Opens six AI coding agents side by side, each building a task, then totals up tokens, cost and time.

  • Claude Code
  • iTerm2
  • OpenRouter
View on GitHub · ★ 4
A wall of six vintage monitors, each showing a different half-built app, facing an empty office chair.

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

  1. run.sh opens the windows, sets up each task's prompt and starts Claude Code in each one.
  2. Each window builds its task and writes DONE when it finishes.
  3. 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.
  4. 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

Terminal
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.

Written by

Pat Simmons. Pat tests AI models and tools on the AI for Mortals YouTube channel.

Explore more.

Stories, builds, skills and videos on the same idea.
Search everything

AI FOR MORTALS.

Your daily AI edge that will make everyone wonder how you do it all.

Every weekday, the practical AI updates that matter, and exactly what to do with them.

The latest in AI, in plain English. Free, every weekday.