Sessions

An isolated, disposable sandbox VM on a branch named after the session.

A session runs the agent in its own isolated sandbox. The platform cuts a branch named after the session id, provisions a sandbox VM with the repo cloned onto it, and runs OpenCode inside.

  • Isolated — each session has its own VM and branch, so any number run at once (yours, teammates', automations) without interfering. None touch the default branch directly.
  • Statusprovisioning → running → (stopped | failed). The branch is cut and the sandbox requested during provisioning; stopped on explicit stop or idle hibernation.
  • Persistence — the sandbox FS is disposable (re-cloned each boot, torn down on stop/restart). Only what the agent commits and pushes survives, and only a merged change request lands it on the default branch.

Inside the VM the kortix-agent daemon clones to /workspace, supervises OpenCode, and serves a control surface on port 8000 that the dashboard tunnels into. A trigger fire is just an ordinary session. Full runtime detail — status enum, injected env vars, daemon endpoints — is in Session runtime.

Sandbox provider

Daytona is the platform default sandbox provider. A project can be pinned to an alternate provider (currently Platinum) instead, which builds and hosts the same layered image through a different backend — everything above (branch-per-session, /workspace, the daemon, port 8000) behaves the same regardless of provider. Pin or clear a project's provider with the SDK's p.sandbox.setProvider(provider) (null follows the platform default); see The client.

Sessions – Kortix Docs