Fast, isolated Linux VMs — the same smol machine on your laptop, in the cloud, or self-hosted.

about

Run any workload in a fast, hardware-isolated Linux VM. The same SDK and the same .smolmachine artifact run identically:

Develop locally, then deploy to the hosted cloud — or self-host with smolvm.

get started

Create an account and claim $10 free usage per month.

Navigate to API Keys page in the console, create a key, and save the key.

export SMOL_CLOUD_TOKEN="smk_your_key_here"
export SMOL_CLOUD_URL="https://api.smolmachines.com"

Create a machine:

curl -X POST $SMOL_CLOUD_URL/v1/machines \
  -H "Authorization: Bearer $SMOL_CLOUD_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "source": {"type": "image", "reference": "alpine"},
    "resources": {"cpus": 1, "memoryMb": 256},
    "name": "my-first-machine",
    "network": {"mode": "open"}
  }'

Run a command:

# the machine starts on the first exec
curl -X POST $SMOL_CLOUD_URL/v1/machines/MACHINE_ID/exec \
  -H "Authorization: Bearer $SMOL_CLOUD_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"command": "echo hello from smol cloud"}'

how it works

Each workload receives hardware isolation, with its own kernel on MacOS Hypervisor, Linux KVM, or Windows Hypervisor Platform. Pack it into a .smolmachine and it runs anywhere with compatible host architecture.

Default provision: 4 vCPUs 8 GiB RAM
Memory is elastic via virtio balloon, the host only commits what the guest actually uses. libkrun VMM + custom libkrunfw kernel. No host daemon — the VMM is linked into the binary.

use this for

RL environments

Every rollout gets its own machine, forked from a live one rather than booted from scratch. Fork a running machine into a batch of episodes, then score them and release the pool.

sandbox untrusted code

Untrusted code runs behind a VM boundary with its own guest kernel, with network off by default. Configure each machine’s network policy and public-access.

persistent agents and workloads

Files, installed packages, and workspace persist across sessions, so a workload picks up where it left off. Memory is elastic, so a machine only holds what the guest is actually using.

consistent infrastructure

Same machine model on your laptop, in smol cloud, or on your own servers. Develop against a local microVM for free, then point the same code at managed machines through the console, REST API, or SDK.

fast time to ready

A job waits on boot + install. Pull a .smolmachine file and the VM comes up ready to work. Start from a pre-built registry environment in the cloud and skip repeated provisioning.

See more examples

comparison

smolvmContainersQEMUFirecracker
IsolationVM per workloadShared KernelSeparate VMSeparate VM
Boot time<200ms~100ms~15-30s<125ms
Architecturelibkrun LibraryDaemonProcessProcess
GPUVulkan + CUDAHost PassthroughVFIONo
macOS nativeYesVia Docker VMYesNo
Portable artifacts.smolmachineImagesNoNo