Why every thread gets its own machine
Worktrees share one disk and one port 3000. Avio cuts a machine per task instead, and that is what makes the preview and the scale possible.
Every local UI over Claude Code or Codex answers the same question the same way. You want ten
agents working at once, so you buy a bigger computer, reach it over your tailnet, and split one
disk into ten worktrees. It works until two of them want port 3000. Or the same database. Or a
node_modules that one of them just half-installed.
Avio’s answer is a machine per thread. When a thread opens, a machine is cut from your home, a persistent box where you signed in to your CLIs once. The thread clones the repository, runs the harness you already pay for, pushes, opens the pull request, and stops at the merge. Ten threads are ten machines. Each one has its own port 3000, its own database, its own preview. Nobody shares a disk.
That is also why the preview exists. The agent runs the dev server on its own machine, and the panel shows it to you through a gate of ours. The agent attaches its own screenshots to the pull request and writes a checklist of what to look at. A teammate can open the same thread and walk that checklist without cloning anything.
The cost of this shape is a start. A machine takes seconds to fork, and an idle one is stopped and resumed on the next message. What you never do is provision the box, patch it, or ssh into it at 2am because a worktree left a lock file behind.
There is no harness of ours in this. The CLI you run is the stock binary, on your own login, driven only by you. The model is your subscription. The machine is our line item.