001 / Manifest
An open-source orchestrator for Claude Code. Spawns N parallel agents in isolated git worktrees, surfaces structured events as they work, and keeps your main branch untouched until you choose to touch it.
$ npm i -g agent-farm
# inside any clean git repo
$ agent-farm
type & enter spawn a new task
↑ / ↓ select session
tab tail / diff
ctrl+c quit
› fix the JWT expiry bug in src/auth
› add a stress test for the rate limiter
› migrate the user schema to zod v4
02:14 fix-jwt-expiry-bug → Read src/auth/middleware.ts
02:14 fix-jwt-expiry-bug ← 87 lines
02:15 add-stress-test → Write test/limiter.stress.test.ts
02:16 migrate-zod-v4 → Glob src/**/*.ts
02:16 migrate-zod-v4 ← 12 files
$ git cherry-pick agent/fix-jwt-expiry-bug
$ git cherry-pick agent/add-stress-test
# the zod migration went off the rails. dropping it.
$ git worktree remove ../repo-migrate-zod-v4 --force
002 / Mechanism
One prompt becomes one agent. Slugifies an id, branches off
your current HEAD, spawns claude inside a sibling worktree
at ../<repo>-<id>/.
Default cap of three concurrent agents. The fourth waits
for a slot. Adjust with --max. Each agent
runs against its own filesystem, so worktrees never fight.
Spawned with
--output-format stream-json --verbose. Tool
calls, file reads, edits, bash runs and assistant text
stream back as structured events. You read what the agent
actually did.
Diffs render in the right pane. Take the commits you like, drop the ones that went sideways, keep the worktree around for inspection. Main branch stays untouched.
003 / Negation
Five absences, listed plainly. Restraint is the feature.
No server.
There is no agent-farm cloud. No data leaves your machine
that wasn’t already leaving via claude.
No prompt storage.
State lives in .agent-farm/state.json. Wipe
it whenever.
No signup, no plans.
Brings your own claude login. Pro, Max,
Team, API key. Your usage, your bill.
No magic compression.
Ten parallel agents is roughly ten agents’ worth of tokens. Each context is independent on purpose. That is what makes the no-conflict guarantee work.
No bundled chat.
The CLI is a queue and a terminal. The Mac app is a queue, a terminal, and a diff viewer. Nothing else.
004 / Install
The orchestrator is one piece of code. The CLI ships it for terminals; the Mac app ships it with a native UI. Pick the surface that fits the moment.
$ npm i -g agent-farm
$ agent-farm
Node 18+. Works on macOS, Linux, WSL. Source on GitHub.
Download for macOS
Apple Silicon and Intel. Requires claude installed and authenticated.