· 8 min read
Scaling coding agents past one machine
One MacBook capped me at two projects with coding agents and a full disk. Agents on a homelab VM and a PC, one client everywhere, took that to five.
If you run Claude Code or Codex all day, your laptop is the ceiling. Three checkouts, three agents running builds, and a MacBook is out of memory and out of disk before lunch. I moved the agents onto machines that have the CPU, the disk and the right OS, and kept one client that sees all of them. I now work on five projects in parallel instead of one or two.
This post is the setup, what changed, and what still hurts.
The laptop was the bottleneck, not the agents
Before: one MacBook, one or two projects, a thread or two each. The limits were boring ones.
Disk first. The MacBook has 500 GB. Rust builds and iOS and macOS builds keep caches that run into tens of gigabytes per project, and every extra worktree brings its own copy. Cleaning disk was a daily job, and there was never enough.
Then memory and CPU for parallel checkouts. Then the lid: close it and a 20-minute run dies. And one OS. Some projects iterate much faster on Linux. My iOS and macOS apps need Xcode. One machine can’t be both.
The pattern: agents on the box, a thin client everywhere
The agents run where the CPU, the disk and the repos are. A small server sits next to them and exposes the sessions. A client, on any device, connects to every server and shows all sessions from all machines in one list. The client is thin on purpose. It never runs an agent; it only steers them.
That split is what makes the rest possible. The machine can be anything, the client can be anything, and a session survives you walking away.
My machines
- Unraid homelab, Linux VM. Most agents live here. Heavy repos stay cloned and warm, so a new thread starts in seconds instead of cloning and installing again.
- Windows PC. Spare CPU and GPU, and the disk the laptop doesn’t have. More agents, more worktrees, more build cache.
- MacBook. Mostly the client. Also Xcode, simulators and the macOS apps, because those can’t leave macOS.
- Phone. Read a diff, answer a permission prompt, queue the next message, from the sofa.
No spare hardware? A VPS does the same job. The server doesn’t care whether the box is under your desk or in a data centre.
Disk pressure is spread rather than solved. Each machine still fills up. It just stops being a daily job on the laptop.
Two subscriptions, one list
I pay for Claude Max 20x and ChatGPT Max 20x, because each is best at something. Claude is still the stronger one for frontend design. Codex is better for general work, science-heavy tasks, and orchestrating other agents. Running both used to mean two apps, two session lists, two sets of habits.
With a control plane, both agents sit in the same list, on whichever machine suits the task. Happier goes further. It lets you switch agents in the middle of a conversation, and it lets an agent from one provider spawn and steer threads on the other. In practice that means Codex plans and delegates the UI work to Claude, and the load lands on two usage limits instead of one. T3 Code has an open pull request for the same thing, but it is fresh and not merged yet.

Why the vendor apps weren’t enough
Claude Code and Codex both have a way to reach a session from a phone, and both have got better. Earlier this year I had trouble opening long remote sessions in Codex; that has improved. In Claude Code you still have to expose each session by hand before the phone can see it. And each app only knows its own agent on its own machine. There is no screen that shows everything running everywhere. For one project on one laptop you don’t need that screen. For five projects on three machines it’s the whole point.

What actually changed
The number first. Before, one MacBook carried one or two projects with a thread or two each. Now five projects run in parallel, most with several threads, and the laptop stays cool.
The bigger change is how I work. I plan a feature up front, then hand the plan to agents on whichever box suits it. They implement it, review the intermediate steps, do a final review, merge the branch, run the tests and record a short video of the result with agent-browser, which drives a browser and writes the session to a WebM or MP4. I get the video and the diff on my phone. On a good day my part is the plan and a yes.
Some of the gain is just Linux. Creating a workspace on the VM, a fresh worktree with dependencies installed, takes a fraction of what it takes on macOS, mostly because of the filesystem. Five projects with several worktrees each made that difference impossible to ignore.
And the two subscriptions now work together instead of side by side. A Codex thread plans and delegates the UI work to Claude. Each reviews the other’s pull request, improves it, and merges when both are happy. The chain runs on its own, or waits for a one-tap approval from the phone.
What still hurts
- Agent setup times four. MCP servers, skills, plugins, hooks and the CLAUDE.md and AGENTS.md files have to exist on every machine, and they drift. Neither Claude Code nor Codex syncs any of it; there is an open feature request for Claude Code. The project-level parts live in each repo, so git carries them. The home-directory parts I’m moving into chezmoi: it runs natively on Windows, templates per OS, and can replay the plugin installs on a fresh box. Until that lands, a machine missing a plugin is a weekly event. Happier is the only one of the three tools that tackles this itself, with MCP servers and a skills library synced through your account and scoped per machine. Settings, hooks and plugins are still on you.
- Disk is spread, not solved. Every box still fills up with build caches.
- Review is the new bottleneck. Five projects means five diffs waiting on me.
If you want to try it
Start with one spare machine and one project you know well. Put the agents there, keep the laptop as the client, and see whether you reach for the laptop less. Add a second machine only when one OS or one disk gets in the way.
The tools I’ve looked at for the server-plus-client part are T3 Code, Paseo and Happier. All three are open source and self-hostable, all three have the same shape, and all three support Claude Code, Codex, OpenCode and others. I run T3 Code today and have an itch to move to Happier for the cross-provider delegation. Pick whichever matches your agents and your phone.