Run untrusted code in a microVM of its own.
OmniRun gives every AI agent, code playground or CI job its own Firecracker VM, restored from a snapshot in under a second. Install it on one Linux box you already own, or use the managed service in the EU.
import { Sandbox } from "@omnirun/sdk"
const sbx = await Sandbox.create({ template: "python-3.11" })
const out = await sbx.commands.run("python -c 'print(6*7)'")
console.log(out.stdout) // 42
await sbx.kill()from omnirun import Sandbox
sbx = Sandbox.create(template="python-3.11")
out = sbx.commands.run("python -c 'print(6*7)'")
print(out.stdout) # 42
sbx.kill()$ curl -X POST https://api.omnirun.io/sandboxes \
-H "Authorization: Bearer $OMNIRUN_API_KEY" \
-d '{"templateID":"python-3.11"}'
{ "sandboxID": "sbx_7f3a9c", "state": "running" }Create, run, tear down. That is the whole lifecycle.
A sandbox is a short-lived virtual machine. You ask for one, use it like a small Linux computer, and throw it away when the job is done.
What runs in every sandbox
A Firecracker microVM under KVM, with its own kernel, disk and network namespace. Not a container.
Restored from a memory snapshot
Pick a template such as python-3.11, node-20 or claude-code. OmniRun restores a warm VM and clones the disk copy-on-write, typically in under a second.
Commands, code and files
Run shell commands, execute code, read and write files, and expose a port as a preview URL. An e2b-style REST API, with SDKs for TypeScript and Python.
Nothing left behind
Killing a sandbox stops the VM, deletes its disk snapshot and removes its network namespace. Sandboxes also stop when their timeout runs out.
Same product, two places to run it.
The API and SDKs are identical. The only choice is who operates the hardware.
You run it on your own box
Install on a single x86_64 Linux machine with KVM. One command sets up storage, networking, the API and the default template.
- Apache-2.0. The server, in-VM agent, gateway, CLI and SDKs.
- One Linux box. x86_64 with KVM. Bare metal is the reliable choice.
- Optional gateway. A single node runs with an admin API key; add the gateway for per-user quotas, metering and more than one node.
We run it in Finland
Tell us what you run, then create an API token and call the API. We operate the hosts, keep templates up to date and handle upgrades.
- Hosted in the EU. All hosts are in Finland.
- Team controls included. Accounts, API tokens, quotas, previews and an audit log.
- Terms agreed with you. There is no public price list. Limits and price fit what you run.
For code you did not write and would not run on your laptop.
Language models, students and pull requests all produce code you cannot fully trust. Give each run a machine of its own.
How isolation worksAI agents
Give an agent a real shell and a file system. Tool calls from Claude Managed Agents can run in OmniRun microVMs on your own infrastructure.
Code playgrounds
Run learners' code in Rust, TypeScript, PHP, SQL and Zig. OmniRun runs the playgrounds on our own learning sites.
CI and evaluation
Run tests and model evaluations in clean, throwaway machines that start fast enough to use one per job.
Platforms and agencies
Offer sandboxes inside your own product, with per-customer tokens, quotas and an audit trail.
One command to install. One call to run.
Install OmniRun on your own Linux box, or talk to us about the managed service.