A Linux CLI that embeds a Firecracker microVM (binary, kernel, initrd, rootfs) into a single standalone executable that boots a container in the VM.
smol-machines/smolvm
Embeddable, portable microVMs in Rust for running AI agents and untrusted code locally with hardware isolation.
Open-source alternative to:Docker Desktop
- Stars
- 6,766
- Forks
- 333
- Open issues
- 74
- Last commit
- yesterday
What is it?
smolvm runs each workload in a hardware-virtualized microVM with its own guest kernel, built on libkrun and using Hypervisor.framework on macOS, KVM on Linux, and the Windows Hypervisor Platform on Windows. Images are standard OCI images from registries such as Docker Hub or ghcr.io, so no Docker daemon is needed. Machines can be created, started, exec'd into, and persisted across restarts from the CLI.
The project also provides an embeddable SDK for Node, Python and Rust that drives machines from your own process. It supports branching: live copy-on-write children and checkpoints that capture RAM, CPU state and disks, which can be restored on another host. Machines can be packed into a single .smolmachine file for distribution.
Networking is off by default. Egress can be restricted to named hosts or patterns, and credentials can be substituted so code uses a placeholder rather than the secret itself.
Key features
- 01Hardware-isolated microVMs with their own guest kernel on macOS, Linux and Windows.
- 02Runs standard OCI images without a Docker daemon.
- 03Embeddable SDKs for Node, Python and Rust.
- 04Live branching and checkpoints that capture RAM, CPU and disk state.
- 05Packs machines into portable .smolmachine files.
- 06Networking off by default, with host allow lists and credential substitution.
Use cases
- Running AI agent-generated code in an isolated sandbox on a laptop.
- Creating reproducible portable dev environments from a Smolfile.
- Embedding per-task VMs in an application through the SDK.
- Running pods as microVMs in Kubernetes via a RuntimeClass.
Quick start
- 1
Install with Homebrew (macOS)
brew install smol-machines/tap/smolvm - 2
Run a one-off VM and print its kernel info
smolvm machine run --net --image alpine -- uname -a - 3
Open an interactive shell in a VM
smolvm machine run --net -it --image alpine -- /bin/sh
Things to know
- No GPU acceleration on Windows, per the README.
- Intel Macs have no published release build and are untested.
- Linux needs KVM (/dev/kvm) and Windows needs Windows Hypervisor Platform enabled.
Topics
FAQ
- What is smolvm?
- Embeddable, portable microVMs in Rust for running AI agents and untrusted code locally with hardware isolation. smolvm runs each workload in a hardware-virtualized microVM with its own guest kernel, built on libkrun and using Hypervisor.framework on macOS, KVM on Linux, and the Windows Hypervisor Platform on Windows. Images are standard OCI images from registries such as Docker Hub or ghcr.io, so no Docker daemon is needed. Machines can be created, started, exec'd into, and persisted across restarts from the CLI.
- Is smolvm free to use? What license does it have?
- smolvm is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is smolvm still maintained?
- Actively maintained. The last commit to smolvm was on Oct 19, 2026.
- What can I use smolvm for?
- Running AI agent-generated code in an isolated sandbox on a laptop. Creating reproducible portable dev environments from a Smolfile. Embedding per-task VMs in an application through the SDK. Running pods as microVMs in Kubernetes via a RuntimeClass.
- How do I install smolvm?
- Install with Homebrew (macOS): brew install smol-machines/tap/smolvm Run a one-off VM and print its kernel info: smolvm machine run --net --image alpine -- uname -a Open an interactive shell in a VM: smolvm machine run --net -it --image alpine -- /bin/sh
- Where can I get smolvm?
- The source code and installation instructions are on GitHub: https://github.com/smol-machines/smolvm
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A sandbox platform that runs agent and user code in isolated Firecracker microVMs, controlled through an HTTP API.
A secure Python sandbox written in Rust for running code generated by AI, without containers.
Self-hosted Kubernetes-based infrastructure that runs untrusted code in lightweight VM sandboxes, controlled via a CLI, HTTP API and Python SDK.
A safe, private runtime for autonomous AI agents that enforces file, system call, and network policies per sandbox.
Open-source infrastructure for running AI-generated code in isolated cloud sandboxes, with JavaScript and Python SDKs.