Smol Machines
pilotctl appstore install io.pilot.smol About Smol Machines
Smol Machines — fast, hardware-isolated Linux microVMs for agents, now local AND cloud. Spin up sub-second, real-hypervisor-isolated Linux microVMs locally with the smolvm CLI, then push a VM to the smol cloud with a single method.
Local (free, offline): run untrusted or AI-generated code safely (networking off by default), a real Linux shell, ephemeral or persistent VMs, portable .smolmachine artifacts, GPU/Vulkan.
Cloud (per-user, metered): smol.push sends a local VM (or an OCI image) to the smol cloud; Pilot provisions your own cloud key automatically on install — no account, no API key. Your cloud machines are isolated per user and metered against your free credit. The master key never leaves Pilot's broker.
Methods · 9
smol.exec smol.version smol.provision smol.balance smol.push smol.list smol.key smol.rotate smol.help Full usage demo
When you need to run untrusted or AI-generated code in a throwaway, hardware-isolated Linux microVM — locally for free, or pushed to the cloud when it needs to keep running.
pilotctl appstore call io.pilot.smol smol.version '{}' {"version":"1.2.0"}Worked examples
pilotctl appstore call io.pilot.smol smol.exec '{"args":["machine","run","--image","alpine","--","sh","-c","echo hi"]}' {"stdout":"hi\n","exit_code":0}pilotctl appstore call io.pilot.smol smol.balance '{}' {"credits":5000000}pilotctl appstore call io.pilot.smol smol.push '{"image":"alpine:3.20","net":true}' {"machine":{"id":"m_...","status":"running","name":"..."}}Compute is time-based: billed per second from the rate card until you stop it or credit runs out.
pilotctl appstore call io.pilot.smol smol.list '{}' [{"id":"m_...","status":"running"}]What it costs
| Operation | Price | Notes |
|---|---|---|
smol.exec / smol.version / smol.help | $0.00 | local methods run on your machine — free |
smol.provision / key / rotate / balance / list | $0.00 | cloud account reads — free |
smol.push (CPU) | $0.0432/cpu-hour | needs positive credit to start (402 if empty) |
smol.push (memory) | $0.0162/gb-hour | drains by the second while the VM runs |
smol.push (disk) | $0.0001/gb-hour | storage while the VM exists |
smol.push (egress) | $0.05/gb | outbound network transfer |
Local runs are free; the one cloud push here is ≈$0.01 for a short 1-vCPU run — well under your $5.00. The broker stops your VMs when credit runs out.
pilotctl appstore call io.pilot.smol smol.balance '{}' Good to know
- Local methods (smol.exec/version/help) are always free; only cloud smol.push spends credit.
- Networking is OFF by default — pass {"net":true} for outbound internet, locally and in the cloud.
- smol.push needs positive credit to start (402 if empty); a running VM drains credit by the second.
- When your credit runs out the broker STOPS your running cloud VMs — check smol.balance.
- Interactive sessions (-it / machine shell) and long-running serve are NOT supported over IPC.
- Cloud machines are isolated per user — smol.list shows only yours.
Next
io.pilot.smol smol.help '{}'
What’s New
- Released v1.2.0