What each agent needs its own of
| Shared, it breaks | Give each agent |
|---|---|
| Files: two agents edit the same file | A git worktree on its own branch |
| The terminal: you can watch only one | A tmux window |
| Ports: two dev servers on 3000 | Its own port: PORT=3001, 3002 |
| A browser profile: only one browser can open it | --isolated or its own --user-data-dir |
| Memory: builds run out of it | A server sized for all the builds at once |
Steps
-
Make a worktree for each task
A worktree is a second folder of the same repository on its own branch. History and remotes stay shared, the files do not.
$ cd ~/your-project $ git worktree add ../wt-auth -b auth $ git worktree add ../wt-billing -b billing $ git worktree add ../wt-docs -b docs $ git worktree list
Claude Code can do this itself: claude --worktree NAME makes .claude/worktrees/NAME on a new branch worktree-NAME. For Codex, codex exec --worktree runs the session in a new Git worktree.
-
Set up each worktree
A worktree is a fresh checkout: install the dependencies again in each one. Copy the
.envtoo: it is not in git. Withclaude --worktree, a .worktreeinclude file copies gitignored files such as .env into each new worktree.$ for d in ../wt-auth ../wt-billing ../wt-docs; do cp .env "$d/" && (cd "$d" && npm ci) done -
Start one tmux session with a window per agent
One session keeps all agents together. Each window starts in its own worktree.
$ tmux new -d -s agents -n auth -c ~/wt-auth $ tmux new-window -t agents -n billing -c ~/wt-billing $ tmux new-window -t agents -n docs -c ~/wt-docs $ tmux attach -t agents
-
Give each agent its task
In each window run the agent and give it one task. Tell it which port to use if it starts a server. Switch windows with
Ctrl+B, then the window number; leave withCtrl+B, thenD.# window auth $ claude "Add password reset. Run the dev server on PORT=3001." # window billing $ codex "Move invoices to the new tax table. Use PORT=3002."
-
Merge and clean up
Review each branch, merge it, then remove the worktree and the branch.
$ git diff main...auth $ git merge auth $ git worktree remove ../wt-auth $ git branch -d auth
Check that it works
Each worktree should show only its own changes, and the server should have memory to spare while all agents build.
$ for d in ../wt-*; do echo "$d"; git -C "$d" status --short; done $ free -h $ ps -eo rss,comm --sort=-rss | head
How big a server
The agents are light; their work is not. On our computer about 400 MB went to each Claude Code session and under 100 MB to Codex. One npm ci or test run can take more than all of them together, and three agents may run three at once. Count the builds, then pick the plan.
| Plan | Size | For an hour of heavy builds |
|---|---|---|
| Plus, $20 | 4 vCPU · 4 GB | Boost to 8 vCPU · 8 GB |
| Pro, $70 | 16 vCPU · 16 GB | Boost to 24 vCPU · 32 GB |
| Max, $200 | 32 vCPU · 48 GB | Boost to 40 vCPU · 64 GB |
The short way: parallel chats in Uno Work
In Uno Work every chat is an agent, and they run side by side on your cloud computer with the laptop closed. Uno Work in the cloud starts with Plus. In Uno Work an agent can start another chat in Claude Code, Codex or OpenCode and hand it a task; you see who started it and can write in it too. On Uno AI, only minutes the AI works count; ten chats in the same minute count as one.
Pro: $70 a month
Many agents, one clean address
Your computer runs in the Netherlands. Its traffic can leave through a static address of a regular internet provider in one of 8 countries. Only your account works from that address.
- From a data-center address
- Sites see a server range shared with thousands of strangers. The agent's browser hits more captchas and blocks.
- From your Clean exit IP
- Sites see a regular internet provider's address in the country you picked. Fewer captchas, and less reason for Claude or ChatGPT to flag your account: nobody else works from it.
What worktrees do not do
- They do not stop merge conflicts. Two agents that change the same lines on two branches still meet at the merge; give them tasks in different parts of the code.
- They do not share a limit fairly. Agents on one Claude plan draw from the same pool: usage limits reset on a rolling five-hour window, paid plans add weekly limits, and Claude Code draws from the same pool.
- They do not copy what git ignores:
.env,node_modulesand build caches start empty in every worktree.
Pick a computer for your team of agents
Every plan is a real Linux computer with root. Pro has room for several agents building at once; boost for the heavy hour.
Small
A Telegram bot, a VPN, a small backend
$5/ month
- 1 vCPU · 1 GB
- 15 GB disk
- 25 GB cloud storage
- 5 boosts a month
Plus
Agents that work with your laptop closed
$20/ month
- 4 vCPU · 4 GB
- 40 GB disk
- 100 GB cloud storage
- Uno Work in the cloud
Pro
A product in production, a second MacBook
$70/ month
- 16 vCPU · 16 GB
- 120 GB disk
- 300 GB cloud storage
- Speed of a MacBook Air M4
Max
A team and many agents at once
$200/ month
- 32 vCPU · 48 GB
- 300 GB disk
- 1,024 GB cloud storage
- 5 public IPv4
Add Uno AI to any plan: 40 h of AI work a month on Small, 100 h on Plus, unlimited on Max. Today: GLM-5.3 Flash and MiMo v2.6 Pro. Or sign in with your own Claude or ChatGPT.
Common problems
"fatal: 'auth' is already checked out"
-b, or remove the old worktree with git worktree remove."Address already in use"
PORT in the task.A build is killed halfway
The browser profile is already in use
A worktree folder is gone but git still lists it
git worktree prune. It removes records of worktrees whose folders no longer exist.