Teaching, workshops and interviews
Give every student or candidate an identical machine from a template, with a budget, and watch their desktop when they ask for help.
For Instructors, bootcamps and hiring teams
Why it pays
- Everyone starts equal One template means no “works on my machine” in the first hour.
- Help without screen-sharing A read-only spectator view of the desktop shows what the student sees.
- Costs you can predict A budget per class, and auto-stop at the end of the session.
Step by step
Build the course template
Install everything the class needs, then save it.
CLI
harebox new --name course harebox exec current -- ./install-course.sh harebox template save current --name course-2026Start one sandbox per seat
Label them with the class, with a three-hour auto-stop.
CLI
harebox new --from course-2026 --count 30 --label class=nov --ttl 10800Python
hb.create_sandbox_batch(body={"template": "course-2026", "count": 30, "labels": {"class": "nov"}, "ttl_seconds": 10800})TypeScript
await hb.createSandboxBatch({ body: { template: "course-2026", count: 30, labels: { class: "nov" }, ttl_seconds: 10800 } });Cap the class, and watch when asked
A budget on the class label, and a spectator view of one desktop.
CLI
harebox budget new --limit 20 --scope label:class=nov --action stop harebox desktop STUDENT_ID --view spectator
Tips
- Give each student a scoped key limited to their own sandbox.
- For interviews, fork a prepared exercise so every candidate starts at the same point.
- Delete the class's sandboxes afterwards, or keep them stopped for 14 days at no cost.
Related use cases
Agent platforms, a sandbox per customer
Give every user or project of your product its own persistent computer, agent and preview URL, and bill them for exactly what they use.
See the stepsParallel agent fleets
Prepare one environment, fork it into many exact copies, and give each copy its own task. Keep the winner, delete the rest.
See the stepsA coding agent on your repository, with a spending cap
Hand an issue to Claude Code, Codex or OpenCode in a clean VM, follow it live, cap what it can spend, and get a pull request back.
See the steps

