The agent should run where the repo is. You should run wherever you are.
SSH plus tmux is not the same product. You get a terminal. You do not get a live web UI speaking Agent Client Protocol to agent stdio, disconnect/resume, or a control plane shaped like supervisor/worker instead of one chat pane.
What ACP buys
ACP (Agent Client Protocol) is the wire between UI and agent process. The UI is not "a website that shells out." It is a client of the agent's protocol — tools, turns, cancellation — over a tailnet so the laptop on the desk and the phone on the train are the same session.
Disconnect should not orphan the worker. Resume should not invent a new context window.
Why not just SSH
- SSH gives you bytes. ACP gives you structured agent state.
- Tmux survives disconnect for a human staring at logs. It does not give a product surface for steer/kill of background jobs.
- A control plane UI is where you put the supervisor — the thing you talk to while workers hold the write lock elsewhere.
Shape
Remote agent sessions with a real UI. Supervisor/worker shaped. Not a single chat pane pretending to be a product.
Source: https://github.com/daniel-farina/grok-remote
This is the same thesis as Talk, don't block — applied to where the UI lives relative to the machine that has the checkout.