Repolode
smol-machines

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. 1

    Install with Homebrew (macOS)

    brew install smol-machines/tap/smolvm
  2. 2

    Run a one-off VM and print its kernel info

    smolvm machine run --net --image alpine -- uname -a
  3. 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