Run Linux programs in a browser tab
The OxideVM SDK runs unmodified x86-64 Linux programs, such as shells, Node.js, Bun and Python, inside the browser tab of your own web app. No server runs your users’ code: the programs, their files and their processes live in your users’ browsers.
You choose one of two modes. Userspace runs Linux programs directly, without booting a kernel, so a shell is ready almost at once. System boots an unmodified Linux kernel on the same engine. Your app always names the mode, and the SDK never switches to the other one on its own.
Try it
Section titled “Try it”This is a real Linux shell running in this page. Nothing downloads until you press the button.
oxidevm:~$ uname -m && node --versionx86_64v24.18.1oxidevm:~$
Once it’s running, type any command. Good first tries are ls / and cat /etc/os-release.
Your first VM
Section titled “Your first VM”Create a VM, write a file into its workspace and read it back with a Linux program:
import { createVM } from "@oxidevm/sdk";
const vm = await createVM({ mode: "userspace", runtime: { hosting: "frame" } });try { await vm.workspace.writeText("hello.txt", "Hello from Linux\n"); const result = await vm.exec({ command: "cat", args: ["hello.txt"] }); console.log(new TextDecoder().decode(result.stdout)); // Hello from Linux} finally { await vm.dispose();}runtime: { hosting: "frame" } runs the engine in a hidden frame from https://run.oxidevm.dev, so your site serves only your own app. createVM resolves when the VM is ready, so files and processes work right away. The quickstart sets this up in an app from the first install.
Two modes
Section titled “Two modes”| Userspace | System | |
|---|---|---|
mode |
"userspace" |
"system" |
| What runs | Linux x86-64 programs, without a kernel | An unmodified Linux kernel and its programs |
| Start | A shell is ready almost at once | Boots Linux first |
| Files, processes, terminals | Yes | Yes |
| Restore points | Yes | Yes |
Choosing a mode explains when to use which.
Next steps
Section titled “Next steps”- Quickstart: install the SDK, serve the right headers and run your first command.
- Run commands: short commands with
exec, long-running ones withspawn. - Examples: small, complete apps built on the SDK.