website/src/content/docs/agent-os/sandbox.mdx
agentOS is not a replacement for sandboxes. It's designed to work alongside them. agentOS makes it easy to integrate agents into your backend with host tools, permissions, the LLM gateway, and orchestration. Sandbox mounting lets you connect a full sandbox environment when the workload needs it.
See agentOS vs Sandbox for a detailed comparison.
sharp, bcrypt, better-sqlite3) that require a full build toolchain.The @rivet-dev/agent-os-sandbox package integrates through two mechanisms:
Both are powered by Sandbox Agent, so you can swap providers without changing agent code.
npm install @rivet-dev/agent-os-sandbox sandbox-agent
import { SandboxAgent } from "sandbox-agent";
import { DockerProvider } from "sandbox-agent/docker";
import { AgentOs } from "@rivet-dev/agent-os-core";
import common from "@rivet-dev/agent-os-common";
import { createSandboxFs, createSandboxToolkit } from "@rivet-dev/agent-os-sandbox";
const sandbox = await SandboxAgent.start({
sandbox: new DockerProvider(),
});
const vm = await AgentOs.create({
software: [common],
mounts: [
{
path: "/sandbox",
driver: createSandboxFs({ client: sandbox }),
},
],
toolKits: [createSandboxToolkit({ client: sandbox })],
});
// Write code via the filesystem. The /sandbox mount maps to the sandbox root.
await vm.writeFile("/sandbox/app/index.ts", 'console.log("hello")');
// Run it via the toolkit. Commands execute inside the sandbox, so paths are
// relative to the sandbox root (/app/index.ts), not the VM mount (/sandbox/app/index.ts).
const result = await vm.exec("agentos-sandbox run-command --command node --json '{\"args\": [\"/app/index.ts\"]}'");
The toolkit exposes these commands inside the VM:
# Run a command synchronously
agentos-sandbox run-command --command "npm install" --cwd "/app"
# Start a background process
agentos-sandbox create-process --command "npm" --json '{"args": ["run", "dev"]}'
# List running processes
agentos-sandbox list-processes
# Get process output
agentos-sandbox get-process-logs --id "proc_abc123"
# Stop or kill a process
agentos-sandbox stop-process --id "proc_abc123"
agentos-sandbox kill-process --id "proc_abc123"
# Send input to an interactive process
agentos-sandbox send-input --id "proc_abc123" --input "yes"
The extension works with any Sandbox Agent provider. See the Sandbox Agent documentation for available providers and setup instructions.