Preview environments and live demos
Give every branch, pull request or prospect a running app at a private HTTPS URL that wakes when someone opens it.
For Product teams, sales engineers and agencies
Why it pays
- A real stack per branch Databases, queues and workers run as they do in production, in one VM.
- Shareable and private Private URLs with rotating tokens, or sign-in through your identity provider.
- Costs only while viewed Stopped previews cost nothing, and a request wakes them.
Step by step
Start a preview from your app template
One sandbox per pull request, labelled with its number.
CLI
ID=$(harebox new --from app-v1 --name pr-311 --label pr=311 | jq -r .id)Python
box = hb.create(template="app-v1", name="pr-311", labels={"pr": "311"})TypeScript
const box = await hb.create({ template: "app-v1", name: "pr-311", labels: { pr: "311" } });Deploy the branch inside it
Check out the branch and start the stack.
CLI
harebox exec "$ID" -- "git fetch origin pull/311/head:pr && git checkout pr && docker compose up -d"Python
box.run("git fetch origin pull/311/head:pr && git checkout pr && docker compose up -d")TypeScript
await box.run("git fetch origin pull/311/head:pr && git checkout pr && docker compose up -d");Expose it, with sign-in
Use a token link for quick shares, or OIDC to require your team's login.
CLI
harebox host "$ID" 8080 --title "PR 311" --auth oidcPython
ep = hb.create_endpoint(box.id, body={"port": 8080, "title": "PR 311", "auth": "oidc", "wake_on_request": True})TypeScript
const ep = await hb.createEndpoint(box.id, { body: { port: 8080, title: "PR 311", auth: "oidc", wake_on_request: true } });Rotate the link when you share it outside
Rotation is atomic: the old link stops working the moment the new one exists.
CLI
harebox host rotate "$ID" ENDPOINT_ID
Tips
- Delete the preview when the pull request closes, from your CI's close event.
- Use a custom domain for sales demos, so the URL carries your brand.
- Keep seed data in the template, so every preview starts with realistic content.
Related use cases
Evals and benchmarks for agents
Run thousands of agent tasks from one template, each in its own VM, and know the cost of every run.
See the stepsMobile apps and emulators
Boot an Android emulator, Firecracker or QEMU inside the sandbox through nested KVM, for tests and agents that use apps.
See the stepsData and research agents
Give an analysis agent notebooks, databases and the open web, run it on a schedule, and get results pushed to you.
See the steps

