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 bytypeandlabels. 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.