OpenViSTAI · Agents · Blockchain · Crypto
Menu
Agent Security & Sandboxing

Smolvm

Smolvm is an embeddable virtual-machine tool for running agent and other code in isolated environments locally or on a user's own servers. It offers a CLI for temporary and persistent machines, application SDKs for Node.js, Python and Rust, and controls for checkpointing, restoring and branching machine state.

Independent OpenViST project profile, based on linked sources.

Smolvm — OpenViST project profile in Agent Security & Sandboxing.
OpenViST project illustration. See the linked sources for product details.
Understand the project

Practical overview

When it fits

Use Smolvm when a task needs a separate virtual machine and guest kernel, particularly for local agent-code execution, disposable environments, or workflows that benefit from checkpointing and branching.

Who it is for

  • Developers who need isolated environments for running agent-generated or other code.
  • Teams embedding virtual-machine creation and execution into developer tools.
  • Users who want portable, checkpointable development or execution environments.

Documented uses

  • Run a command or interactive shell inside a temporary VM.
  • Create and maintain a persistent machine for development or agent work.
  • Control VM creation and command execution from Node.js, Python or Rust applications.
  • Save, resume or branch a running machine’s state for repeatable experiments.
  • Restrict workload networking and control which resources cross the VM boundary.
Before you choose

Requirements & limits

The repository is public and lists an Apache-2.0 license. The README provides installation paths for macOS, Linux and Windows; Windows requires Windows Hypervisor Platform.

  • Smolvm uses hardware-virtualized machines with a guest kernel; the documented host backends are Hypervisor.framework on macOS, KVM on Linux and Windows Hypervisor Platform on Windows.
  • Networking is off by default, and egress can be limited to named hosts.
  • Mounted folders, open ports, allowed hosts and forwarded credentials or SSH agents determine what a workload can access.
  • The SDK packages are documented for Node.js, Python and Rust; the project itself is written in Rust.
  • Branching and checkpoints preserve machine state, while portable machine packs can be pushed to an OCI registry or run as self-contained executables.

Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.

Source-based practical guide

Run a one-off command in an Alpine VM

Launch a temporary VM from an Alpine image and run a command inside it.

Before you start

  • Smolvm installed on a supported host.
  • Network access enabled for this example.

Steps

  1. Run smolvm machine run --net --image alpine -- uname -a.

  2. The VM is removed when the command exits.

Expected outcome

The command runs in a one-off virtual machine that is removed on exit.

Guide limitations

  • This example enables networking; the README says networking is off by default.
  • The documented command runs a single command and does not describe a persistent machine setup.
Source-based practical guide

Install an SDK and create a machine from application code

Install the documented SDK for a chosen language and use the Machine API example to create, execute in and delete a VM.

Before you start

  • Node.js, Python or Rust, depending on the SDK selected.
  • Smolvm’s documented SDK package for that language.

Steps

  1. Install the package with the command below, the command below or the command below, as appropriate.

    Documented command
    npm install smolmachines
    Documented command
    pip install smolmachines
    Documented command
    cargo add smolmachines
  2. Use the README’s TypeScript example to create a machine from python:3.12-alpine with networking enabled.

  3. Execute the example Python expression with m.exec and read its standard output.

  4. Delete the machine with m.delete().

Expected outcome

The example creates a VM through the SDK, runs a Python expression and then deletes the machine.

Guide limitations

  • The example enables networking.
  • The documented SDKs run in the application process with no daemon.
Evidence and transparency

Sources & review

Source record details
Source availability
Active
Sources checked
7 October 2026
Original website title
smol-machines/smolvm · Official homepage title · retained in its source language