Zurück zu den Updates
New releaseOct 17, 2026

smolvm v1.30.1

Eine einbettbare, portable, verzweigbare virtuelle Maschine, um Agents sicher lokal auszuführen.

Teilen

smol machines

Discord Release License npm PyPI crates.io

smolvm

Verzweigbare microVMs für KI-Agenten. Bette leichte virtuelle Maschinen in deine Software ein, portable Entwicklungsumgebungen und lokales Sandboxing.

Installation

brew install smol-machines/tap/smolvm                  # macOS (Homebrew)
curl -sSL https://smolmachines.com/install.sh | bash   # macOS + Linux

Windows: Entpacken Sie die windows-x86_64-Release und führen Sie smolvm.exe aus (erfordert die Windows Hypervisor Platform). Coding-Agents: Führen Sie nach der Installation smolvm --help aus, um alle Befehle zu entdecken.

Die Dokumentation für Menschen und Agents befindet sich in docs/, ein Ordner pro Aufgabe: eine README.md mit den Fakten und eine SKILL.md, der ein Agent folgen kann, mit ihren Skripten, neben der Referenzseite für jede Funktion.

Schnellstart

smolvm machine run --net --image alpine -- uname -a          # one-off VM, removed on exit
smolvm machine run --net -it --image alpine -- /bin/sh       # interactive shell

Lokal

Echte VMs mit eigenem Kernel, kostenlos auf deinem Laptop oder deinen eigenen Servern. Sie starten in unter einer Sekunde, und der Arbeitsspeicher ist elastisch, sodass der Host nur das bereitstellt, was der Gast tatsächlich nutzt. Maschinen bleiben über Neustarts hinweg erhalten, und jedes OCI-Image funktioniert, auch solche, die du lokal erstellst.

smolvm machine create --net --name dev && smolvm machine start --name dev
smolvm machine exec --name dev -- apk add git
docker save myapp | smolvm machine run --image - -- ./app    # local image, no registry

Deklariere eine Maschine in einer Smolfile: Image, Ressourcen, Ports, Mounts und Netzwerkrichtlinie in einer eingecheckten Datei.

Einbettbar

Steuere Maschinen aus deinem eigenen Code mit einer einzigen Machine-API. Die SDKs laufen in deinem Prozess ohne Daemon, lokal oder auf smol cloud.

npm install smolmachines     # Node / TypeScript
pip install smolmachines     # Python
cargo add smolmachines       # Rust
import { Machine } from 'smolmachines';

const m = await Machine.create({ image: 'python:3.12-alpine', network: true });
const r = await m.exec(['python3', '-c', 'print(2 ** 10)']);
console.log(r.stdout); // 1024
await m.delete();

Quelle und Dokumentation: smol-machines/smol · smolmachines.com/docs/sdk

Verzweigbar

Speichere eine laufende Maschine mitten in der Ausführung, spule sie zurück oder verzweige sie in Kopien, die vom selben Punkt aus weiterlaufen. Checkpoints erfassen RAM, CPU-Zustand und Festplatten; Branches sind Copy-on-Write-Kinder einer laufenden Maschine.

smolvm machine create --net --name agent --image alpine
smolvm machine start --name agent --branchable
smolvm machine branch --from agent --name try-1                   # live copy-on-write child
smolvm machine checkpoint --name agent -o agent.checkpoint        # save it, processes and all
smolvm machine create --name agent2 --from agent.checkpoint       # resume later or elsewhere

Zurück zu einer früheren Generation mit --from <checkpoint> --at '~N' (siehe machine checkpoint-log) und ohne Verlust der Ausführung mit pause and resume anhalten. Ein auf einem arm64-Mac erstellter Checkpoint wird auf arm64-Linux fortgesetzt, siehe Moving a running machine from a Mac to Linux. Mehr in Branching und incremental checkpoints.

Portabel

Packen Sie eine Maschine, wie Sie sie auch eingerichtet haben, in eine einzige .smolmachine-Datei. Übertragen Sie sie in eine beliebige OCI-Registry oder führen Sie sie als eigenständig ausführbare Datei aus, die in unter 200 ms startet, ohne dass etwas installiert werden muss.

smolvm machine stop --name dev && smolvm pack create --from-vm dev -o dev
smolvm pack push --file dev.smolmachine ghcr.io/you/dev:v1
smolvm pack create --image python:3.12-alpine -o ./python312
./python312 run -- python3 --version

Checkpoints sind ebenfalls portabel: Stelle einen auf einem anderen Host oder in der smol-Cloud wieder her.

Sicher

Jede Workload erhält eine hardware-isolierte VM mit eigenem Kernel. Netzwerk ist standardmäßig deaktiviert, ausgehender Datenverkehr kann auf benannte Hosts beschränkt werden, und Code kann ein Credential verwenden, ohne es jemals zu lesen.

Sicherheit ist eine gemeinsame Verantwortung. smolvm stellt die Grenze bereit: eine separate VM und ein eigener Kernel für jede Workload, wobei nichts den Host erreicht, sofern du es nicht erlaubst. Du entscheidest, was diese Grenze überschreitet. Jeder Ordner, den du einbindest, jeder Port, den du öffnest, jeder Host, den du erlaubst, und jedes Secret oder jeder SSH-Agent, den du weiterleitest, wird zu etwas, das die Workload nutzen kann – gib einer nicht vertrauenswürdigen Workload daher nur das, was sie benötigt.

smolvm machine run --net --image alpine --allow-host registry.npmjs.org -- wget -qO- https://google.com   # blocked
smolvm machine run --net --image alpine --allow-host-pattern registry.npmjs.org -- wget -qO- https://registry.npmjs.org   # exact host only
NOTION_API_KEY=secret_… smolvm machine run --net --image alpine \
  --credential [email protected] -- sh -c 'echo $NOTION_API_KEY'   # a placeholder

Siehe Credential Substitution und das Sicherheitsmodell. Verwenden Sie --allow-host-pattern '*.example.com', um nur Subdomains zu erlauben; --allow-host example.com erlaubt die Apex-Domain und ihre Subdomains. smolvm machine update fügt Einträge hinzu (--allow-host, --allow-host-pattern, --allow-cidr) und entfernt sie (--remove-allow-host, ein Host oder Muster so, wie es hinzugefügt wurde; --remove-allow-cidr), auch auf einer laufenden Maschine, die mit einer Allow-List gestartet wurde: Eine Freigabe gilt für die nächste Verbindung oder Namensauflösung, und die gelernten Adressen eines entfernten Hosts werden mit ihm entfernt.

Funktionsweise

Kategorien