Nebius Sandboxes
VM-isolated sandboxes that clone, build and test every submitted repo.
Nebius Sandboxes run the code teams submit. Running strangers' code is the hardest part of judging a hackathon: every repo has its own dependencies and build steps, and none of it can be trusted. Sandboxes give each repo a VM-isolated Linux machine, so the agent can install, build and test it without touching anything else.
Sandboxes are in beta. RoundOne talks to them through the Sandboxes API on Token Factory.
Where it's used#
| Feature | What the sandbox does |
|---|---|
| Sandbox run mechanism | Clones the repo, then installs, builds and runs the tests, or runs the organizer's own Sandbox commands. See Criteria. |
The agent's runCommand tool | On the Balanced and In-depth tiers, with Sandbox run on, the agent runs its own commands to check a claim. |
| Very large repos | The agent normally reads code from a download of the repo. When a repo is too large for that, it reads the sandbox clone instead, without starting a VM. |
Sandbox run needs a repo link in the criterion's inputs. It reads GitHub, GitLab, Bitbucket and Codeberg links.
How a repo runs#
Every command in a sandbox runs on an image and produces a new one, like a commit.
- Clone once. The repo is cloned onto the base image, a Debian bookworm machine with Node 22, npm, corepack, git, curl and python3. Cloning has 4 minutes.
- Fork per step. Each review step starts from its own copy of the cloned image. A step's installs and builds carry over between its own commands, and never reach another step's.
- Run commands. Commands run as root in the repo's folder, with network access. With no Sandbox commands, the agent works out install, build and test steps from the repo's stack. Otherwise it runs the first 8 of yours in order, with 5 minutes each.
- Read without a VM. Searching and reading files in a cloned image goes through the inspect API, so looking around is fast and cheap.
Every command, its output and its exit code are logged on the review step, so an organizer can see exactly what ran on the project page.
When the code can't run#
If the repo doesn't exist or isn't public, the clone fails with "The repo doesn't exist or isn't public." and git's own message. A clone that runs past its time limit fails with "Cloning timed out."
Either way, the step notes "Didn't run the code" with the reason, and the review carries on. The agent judges the code from reading it, and lowers its confidence on anything that needs the code to run.
Set it up#
| Variable | Default | What it does |
|---|---|---|
NEBIUS | None | The Token Factory API key. Sandboxes use the same key as the models. |
NEBIUS_PROJECT_ID | None | The Nebius project sandboxes run in. NEBIUS_AI_PROJECT works as a fallback name. |
NEBIUS_SANDBOX_URL | https://api.tokenfactory.nebius.com/sandboxes | The Sandboxes API. |
NEBIUS_SANDBOX_IMAGE | node:22-bookworm, imported once | The image repos are cloned onto: an image UUID, a tag, or a docker:// reference to import. |
Without NEBIUS or NEBIUS_PROJECT_ID, the code doesn't run, and the step notes which one is missing. The agent still reads the code and scores it.
