Keyed vs anonymous
Set the keyed-workspace TTL per agent:
Concurrency
One live session per workspace: runs on the same session key queue and execute in order, while runs on different workspaces execute in parallel. This makes a session key a safe serialization point — a schedule that updates the same report every morning can never trample itself.Repos
There is no built-in repo concept. A repo is whatever the prompt (or a skill) clones onto the workspace volume.gh is pre-authenticated in every VM, so “clone acme/api and open a PR” just works — and the clone persists on the volume for the next run with the same key.
Files
- Browse and download workspace files via the dashboard, or via the API (
GET /v1/agents/{agent}/workspaces/{key}/files/...) while a VM is up. - Run deliverables — files the agent stages in
~/outputs/are snapshotted onto the run when it finalizes, so they remain available after the VM is gone.
VM lifecycle
- A VM boots when a run, chat, or SSH session starts on the workspace and is destroyed when the execution finishes. The volume always survives.
- Idle workspace VMs are suspended (Firecracker snapshot — no compute) and woken on message, so a live session resumes exactly where it was, mid-turn if necessary.
- An execution’s teardown never kills a VM you are SSH-ed into.