Skip to main content
Glama

Microsandbox runs untrusted workloads inside fast, local microVMs: AI agents, user code, plugins, CI jobs, dev environments, scrapers, and automation.

  • Hardware Isolation: Hardware-level isolation with tiny virtual machines.

  • Branch & Snapshot: Fork live sandboxes. Save running sandbox state and restore later.

  • Cross Platform: Runs on Linux, macOS, and Windows.

  • OCI Compatible: Runs standard container images from Docker Hub, GHCR, or any OCI registry.

  • Docker-Like Workflows: Familiar image, command, shell, and volume workflows.

  • Instant Startup: Average boot timesboot-time under 100 milliseconds.

  • Embeddable: Spawn VMs right within your code. No setup server. No long-running daemon.

  • Secrets That Can't Leak: Unexploitable secret keys that never enter the VM.

  • Long-Running: Sandboxes can run in detached mode. Great for long-lived sessions.

  • Agent-Ready: Your agents can create their own sandboxes with our Agent Skills and MCP server.

Related MCP server: container-mcp

  Getting Started

  Install the CLI

curl -fsSL https://install.microsandbox.dev | sh        # 🍎 macOS / 🐧 Linux
irm https://install.microsandbox.dev/windows | iex      # πŸͺŸ Windows

brew install superradcompany/tap/microsandbox
npm i -g microsandbox
uv tool install microsandbox
cargo install microsandbox

Start creating sandboxes once installed:

msb run ubuntu

  Install the SDK

npm i microsandbox                                       # 🟦 TypeScript
cargo add microsandbox                                   # πŸ¦€ Rust
uv add microsandbox                                      # 🐍 Python
go get github.com/superradcompany/microsandbox/sdk/go    # 🐹 Go

Requirements:

  • macOS: Apple Silicon.

  • Linux: KVM enabled.

  • Windows: WHP enabled.

Warning: Microsandbox is still beta software. Expect breaking changes, missing features, and rough edges.

  CLI

The msb CLI provides a complete interface for managing sandboxes, snapshots, images, and volumes.

  Run a Command

msb run python -- python3 -c "print('Hello from a microVM!')"

  Named Sandboxes

# Create and start a named sandbox
msb create --name app python
# Execute commands
msb exec app -- python -c "import this"
msb exec app -- curl https://example.com
# Fork a running sandbox.
msb branch app --name experiment
msb exec experiment -- python -c "print('An independent copy!')"
# Save now, resume later
msb snapshot create --from-sandbox app --full -o saved.msb
msb restore saved.msb --name restored
# Lifecycle
msb stop app
msb start app
msb rm app

  Image Management

msb pull python           # Pull an image
msb image ls              # List cached images
msb image rm python       # Remove an image

  Configuration File

msb run --conf sandbox.yaml -- octocat
# sandbox.yaml
image: python:3.12
memory: 64M
network:
  allow:
    - api.github.com
scripts:
  octocat: |
    python - <<'PY'
    import urllib.request

    request = urllib.request.Request(
        "https://api.github.com/octocat",
        headers={"User-Agent": "microsandbox-example"},
    )
    with urllib.request.urlopen(request) as response:
        print(response.read().decode())
    PY

&nbsp;&nbsp;Install & Uninstall Sandboxes

msb install ubuntu               # Install ubuntu sandbox as 'ubuntu' command
ubuntu                           # Opens Ubuntu in a microVM
msb uninstall ubuntu             # Uninstall the ubuntu sandbox

&nbsp;&nbsp;Status & Inspection

msb ls                         # List all sandboxes
msb ps app                     # Show sandbox status
msb inspect app                # Detailed sandbox info
msb metrics app                # Live CPU/memory/network stats
TIP

Run: Β· msb --help for quick help menu. Β· msb --tree for complete command hierarchy and descriptions. Β· msb <command> --tree for a specific command tree.

&nbsp;&nbsp;SDK

The SDK lets you create and control sandboxes directly from your application. Sandbox.builder("...").create() boots a microVM as a child process. No infrastructure required.

&nbsp;&nbsp;Run Code in a Sandbox

import { Sandbox } from "microsandbox";

await using sandbox = await Sandbox.builder("my-sandbox")
  .image("python")
  .cpus(1)
  .memory(512)
  .create();

const output = await sandbox.exec("python", [
  "-c",
  "print('Hello from a microVM!')",
]);

console.log(output.stdout());
use microsandbox::Sandbox;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let sandbox = Sandbox::builder("my-sandbox")
        .image("python")
        .cpus(1)
        .memory(512)
        .create()
        .await?;

    let output = sandbox
        .exec("python", ["-c", "print('Hello from a microVM!')"])
        .await?;

    println!("{}", output.stdout()?);

    sandbox.stop().await?;

    Ok(())
}
import asyncio
from microsandbox import Sandbox

async def main():
    sandbox = await Sandbox.create(
        "my-sandbox",
        image="python",
        cpus=1,
        memory=512,
    )

    output = await sandbox.exec("python", ["-c", "print('Hello from a microVM!')"])

    print(output.stdout_text)

    await sandbox.stop()

asyncio.run(main())
require "microsandbox"

sandbox = Microsandbox::Sandbox.create(
  "my-sandbox",
  image: "python",
  cpus: 1,
  memory: 512,
  network: {
    allowed_hosts: ["api.openai.com"],
    allowed_ports: [443]
  },
  secrets: [{
    env: "OPENAI_API_KEY",
    value: ENV.fetch("OPENAI_API_KEY"),
    allowed_host: "api.openai.com"
  }]
)

output = sandbox.exec("python", ["-c", "print('Hello from a microVM!')"])
puts output.stdout

sandbox.stop

See the Ruby SDK guide for installation, lifecycle, networking, and backend details.

package main

import (
    "context"
    "fmt"
    "log"

    microsandbox "github.com/superradcompany/microsandbox/sdk/go"
)

func main() {
    ctx := context.Background()

    // Downloads the microsandbox runtime to ~/.microsandbox/ on first run.
    if _, err := microsandbox.EnsureRuntime(ctx, microsandbox.RuntimeConfig{}, microsandbox.InstallOptions{}); err != nil {
        log.Fatal(err)
    }

    sandbox, err := microsandbox.CreateSandbox(ctx, "my-sandbox",
        microsandbox.WithImage("python"),
        microsandbox.WithCPUs(1),
        microsandbox.WithMemory(512),
    )
    if err != nil {
        log.Fatal(err)
    }
    defer sandbox.Stop(ctx)

    output, err := sandbox.Exec(ctx, "python", []string{"-c", "print('Hello from a microVM!')"})
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println(output.Stdout())
}

The first call to create() pulls the image if it isn't cached locally, so it may take longer depending on your connection. Subsequent runs reuse the cache.

&nbsp;&nbsp;Examples

Practical ways to put microsandbox to work:

β€’ Docker in a Sandbox: Run Docker without touching the host daemon. β€’ OpenCode: Give a coding agent an isolated project workspace. β€’ Browser Use: Run an AI browser agent inside a microVM. β€’ Playwright: Run headless browser jobs inside a microVM. β€’ Warm Workers: Snapshot a toolchain and launch clean workers. β€’ Migration Rehearsal: Test a database migration, then restore the baseline. β€’ GitHub Actions Runner: Run each self-hosted job in a disposable microVM. β€’ Documents to PDF: Convert untrusted documents in a fresh offline worker.

&nbsp;&nbsp;Community Showcase

&nbsp;&nbsp;Agent frameworks & runtimes

β€’ Eve by Vercel: Agent framework that ships microsandbox as a sandbox backend. β€’ Agentic Coding Quickstart by U.S. GSA: From zero to a running AI coding agent with USAi in minutes. β€’ Condukt and Once by Tuist: Elixir agentic engine, and cacheable actions that run in fresh sandboxes. β€’ langchain-microsandbox by kenwoodjw: Microsandbox integration for LangChain Deep Agents. β€’ Smithers by Smithers: Agent workflows with full observability, rewind, fork, and replay. β€’ AgentConnect: Bring multiple AI agents into your team's chats, issues, and pull requests. β€’ wrap by Tobi LΓΌtke: Run coding agents and project commands in isolated Arch Linux microVMs. β€’ Agent VM by Wiren Board: Run AI agents in safe VMs scoped to a local folder.

&nbsp;&nbsp;Tools & infrastructure

β€’ h5i by h5i: Secure, auditable browser for AI agents, written in pure Rust. β€’ Devsy by Devsy: Deploy devcontainers onto any cloud, Kubernetes cluster, or Docker host. β€’ OpenWork by Different AI: Open-source Claude Cowork alternative with a microsandbox image.

&nbsp;&nbsp;Guides & showcases

β€’ Awesome Microsandbox by ya-luotao: Curated list of SDKs, integrations, tools, and resources. β€’ msb-omarchy by ya-luotao: Omarchy desktop with graphics inside a microVM on Apple Silicon.

&nbsp;&nbsp;AI Agents

&nbsp;&nbsp;Agent Skills

Teach any AI coding agent how to use microsandbox by installing the Agent Skills. Works with Claude Code, Cursor, Codex, Gemini CLI, GitHub Copilot, and more.

npx skills add superradcompany/skills

&nbsp;&nbsp;MCP Server

Connect any MCP-compatible agent to microsandbox with the MCP server. Provides structured tool calls for sandbox lifecycle, command execution, filesystem access, volumes, and monitoring.

# Claude Code
claude mcp add --transport stdio microsandbox -- npx -y microsandbox-mcp

&nbsp;&nbsp;Documentation

For guides, API references, and examples, visit the microsandbox documentation.

&nbsp;&nbsp;Contributing

Interested in contributing to microsandbox? Check out our CONTRIBUTING.md for guidelines and DEVELOPMENT.md for build, test, and release instructions.

&nbsp;&nbsp;License

This project is licensed under the Apache License 2.0.

&nbsp;&nbsp;Acknowledgements

Special thanks to all our contributors, testers, and community members who help make microsandbox better every day! We'd like to thank the following projects and communities that made microsandbox possible: libkrun and smoltcp

  1. Boot time refers to guest boot on an M1 machine.

    ↩

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides a local, isolated Linux VM sandbox for AI agents using Apple's Virtualization.framework, enabling fast command execution (~60ms) and package management without cloud costs.
    35
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Ephemeral MicroVM-isolated code execution for AI agents. Run Python, Node, or bash β€” fresh hardware-isolated VM per call, hard-purged after. No state persists between calls.
    1
    33 npm
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables secure execution of bash, Python, and Node.js code in isolated Firecracker microVMs with configurable timeouts and no network access.
    -