Runners & isolation

Where agent code executes: local and remote runners, and the sandbox every run gets.


The control plane (this site) orchestrates runs; runners execute them. A runner prepares a git workspace on the run's branch, supervises the agent, and streams every event back live.

Runners

  • Local runner — in-process with the host; the zero-config default for a single-box setup.
  • Remote runners — register over WebSocket with labels (gpu, macos, …); workflows select them by type and labels. Run them close to your infrastructure.

Every run is sandboxed

Agent code never executes on the host directly. Each run gets a fresh container (Docker) or a gVisor sandbox — the multi-tenant default — with the workspace mounted, scoped credentials injected, and everything torn down when the run ends. Repo access is per-run and repo-scoped: GitHub App installations mint short-lived tokens for exactly the repository the run works on.

State between phases

The run's git branch is the only carrier of state between phases — each phase commits its work, the next phase checks it out. That's what makes runs resumable, reviewable, and reproducible: the branch history is the run history.