Skip to main content

FluxVM and microsandbox

microsandbox is an Apache-2.0 microVM runtime from superradcompany, built on libkrun, with a daemonless embeddable SDK. Both aim at running untrusted code and AI-agent workloads in hardware-isolated VMs on a Mac or a Linux box. This page compares what each documents. It is not a benchmark: nobody here ran microsandbox, and every FluxVM cell links to its doc or says what was run.

Legend for FluxVM: Run = exercised live on real hardware; Tests = unit or router tests only; Not run = built but not verified on hardware; No = not available; Behind = microsandbox has it and FluxVM does not.

Sources for microsandbox: its README and release notes (v0.7.x, October 2026; the README says the project is beta).

Capabilitymicrosandbox (as documented)FluxVMStatus
Hardware isolation per sandboxmicroVMs via libkrunvz on Apple Silicon; KVM, Firecracker, Cloud Hypervisor, QEMU on LinuxRun on vz (macos-sandboxes.md); Linux backends Not run here
Startup"average guest boot under 100 ms" (M1, their measurement)create 6.8 s median, first run 26.9 s, on an M4 debug build (benchmarks/agent-session.md)Behind; sub-second is a goal (agent-sessions.md)
Embeddable, no daemonyes: the SDK spawns the VM as a child processno: a daemon (fluxctl serve) is requiredBehind
PlatformsmacOS (Apple Silicon), Linux (KVM), Windows (WHP)macOS (Apple Silicon) and Linux hosts; no Windows hostBehind (Windows)
OCI imagesyes, any registrycontainer sandboxes on vz (oci-sandboxes.md)Tests (live test not yet run on hardware, per that doc)
Fork a running sandboxyesvz Linux guests with no NIC of their own (offline or allow-listed) and the in-tree KVM engine (fork-and-restore.md, macos-sandboxes.md); a NAT sandbox cannot be forked; session fork returns 409 with the reasonRun on vz (2 children in 2.5 s, they diverged); KVM Not run
Snapshots and restorefull snapshots, --cow-mem, generations, branches, archive importmemory+disk and disk-only snapshots, restore; checkpoints per sessionRun on vz (memory restore reverted a file change)
Speculative execution with reviewnot documentedspeculate -> changeset -> approve/reject -> apply, conflict-checked (speculative-execution.md)Tests; not verified on hardware per that doc
Network allow-listhost allow-list in config; CONNECT proxy; 403 denial bodies; published portshost allow-list via the egress proxy on vz (macos-sandboxes.md); eBPF fabric with CIDR/port/DNS/rate rules on Linux (network-fabric.md); HTTP method/path ACL (http-acl.md)allow-list Run on vz (through a session: allowed host 200, other host refused, direct connection no route); eBPF fabric Not run on a real host in this repo
Secrets that never enter the VMyes: host-scoped placeholders, TLS interception, header-scopedcredential broker: per-sandbox header grants injected by the egress proxy (credential-broker.md)Tests; "not yet verified on hardware" per that doc
Rootless process sandboxnot documentedfluxvm-procbox Landlock + seccomp with a learn mode (procbox.md)Tests (Linux)
Volumesyesnamed volumes on QEMU templates and container sandboxes; agent sessions on vz attach a named raw-disk volume (--volume, one VM at a time, no fork). Plain vz VM sandboxes do not take volumes (macos-sandboxes.md)partial
GPUsnot mentionedVFIO GPU sandboxes on QEMU (sandbox-gpus.md)Not run on real GPUs
Config file for a sandboxYAML with scriptsJSON create specs; session policy presetsBehind (no YAML/script format)
Install a sandbox as a commandmsb installnoBehind
SDK languagesTypeScript, Rust, Python, Go, RubyGo, Python and TypeScript SDKs for the sandbox API (session methods: Go and Python only), plus the REST API and MCPBehind
MCP serveryes, plus Agent Skillsfluxctl mcp serve with read/write gating, mcp install for 7 clients, session and changeset tools (mcp.md)Tests; client install steps in install-macos.md
Agent session abstractionnot documented as one object/v1/agents/sessions: workspace + policy + checkpoints + ledger (agent-sessions.md)Run on vz (MVP)
Detached exec jobs, metricsyes (msb metrics)/metrics, netobs, per-VM stats; no detached exec jobspartial
Fleet / many hostsnot documentedcentral, tenants, leases, FluxMesh (fleet-quickstart.md)simulator Run; real multi-Mac fleet Not run
GuidesDocker-in-sandbox, Playwright, Browser Use, GitHub Actions runnerAgent demo with fork and parallel fixes (examples/agent-sandbox-demo); GitHub runner pool via Elvoradifferent set
Maturitybeta, "expect breaking changes"Maturity tiers in the README; MVP for sessionsboth early

Where FluxVM is behind, plainly​

  • Startup time and embeddability. microsandbox boots in under 100 ms by its own measurement and needs no daemon. FluxVM's vz sandbox takes seconds and needs fluxctl serve.
  • Developer ergonomics around the edges: YAML sandbox files with scripts, install as a command, five SDK languages.
  • Windows hosts.

Where FluxVM is different​

  • One control plane over several VMMs (vz, KVM, Firecracker, Cloud Hypervisor, QEMU), with a fleet layer, tenants, quotas and a Mac cloud, rather than one embedded runtime.
  • Review before apply: speculative runs end as a change set a person or agent approves.
  • Network policy depth on Linux: eBPF dataplane, DNS/SNI/CIDR/port rules and flow observability.

Those are design differences, not a claim of being faster or safer. Where a column says Not run, the code exists and the repo's own docs say it has not been verified on hardware.