
docker-compose.yaml tasks run unmodified:
uv tool install "harbor[boxd]" installs the same provider from PyPI. Harbor running inside a boxd machine needs no BOXD_API_KEY, because the SDK authenticates from the machine itself.
Every machine Harbor creates is isolated. The agent under test keeps outbound internet for model APIs and package registries. It cannot reach your other machines, and it gets none of your connected integrations or agent logins. Isolation is fixed at creation. Tasks that ask for no-network run with the internet cut off as well.
Each concurrent trial is one machine, so your organization’s machine quota caps --n-concurrent. boxd manage billing shows the quota.
Start trials from a snapshot
For benchmarks, start from a snapshot. Prepare a machine, pull or build the task image on it, save a snapshot, and create every sandbox from it with--ek from_snapshot=<snapshot>. Each trial then restores a machine whose Docker cache already holds the task image instead of building it from scratch.
A snapshot lives in one region, so save it in the region the trials run in. The machine size comes from the snapshot, which means from_snapshot cannot be combined with vcpu or memory.
Provider options
Pass these with--ek <name>=<value>, or under environment.kwargs in a job config. Harbor’s example config documents each one and runs with harbor run -c boxd.yaml.
Harbor’s sandbox reference lists what each provider supports, from Docker Compose to network policies and CPU and memory limits.