Volver a actualizaciones
Nuevo releaseOct 17, 2026

smolvm v1.30.1

Una máquina virtual embebible, portátil y ramificable para ejecutar Agentes de forma segura localmente.

Compartir

smol machines

Discord Release License npm PyPI crates.io

smolvm

microVMs ramificables para agentes de IA. Incorpora máquinas virtuales ligeras en tu software, entornos de desarrollo portátiles y sandboxing local.

Instalar

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

Windows: descomprime el release windows-x86_64 y ejecuta smolvm.exe (requiere la Windows Hypervisor Platform). Agentes de programación: ejecuta smolvm --help después de instalar para descubrir todos los comandos.

La documentación para humanos y agentes está en docs/, una carpeta por tarea: un README.md con los hechos y un SKILL.md que un agente puede seguir, con sus scripts, junto a la página de referencia de cada función.

Inicio rápido

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

Local

Máquinas virtuales reales con su propio kernel, gratuitas en tu portátil o en tus propios servidores. Arrancan en menos de un segundo y la memoria es elástica, por lo que el host solo asigna lo que el invitado utiliza. Las máquinas persisten entre reinicios y funciona cualquier imagen OCI, incluidas las que compiles localmente.

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

Declara una máquina en un Smolfile: imagen, recursos, puertos, montajes y política de red en un único archivo versionado.

Embebible

Controla máquinas desde tu propio código con una única API Machine. Los SDKs se ejecutan en tu proceso sin daemon, de forma local o en 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();

Origen y documentación: smol-machines/smol · smolmachines.com/docs/sdk

Branchable

Guarda una máquina en ejecución a mitad de su ejecución, rebobínala o ramifícala en copias que sigan ejecutándose desde el mismo punto. Los checkpoints capturan la RAM, el estado de la CPU y los discos; las ramas son hijos copy-on-write de una máquina en vivo.

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

Rebobina a una generación anterior con --from <checkpoint> --at '~N' (consulta machine checkpoint-log), y detente sin perder la ejecución con pausa y reanudación. Un checkpoint tomado en un Mac arm64 se reanuda en Linux arm64; consulta Mover una máquina en ejecución de un Mac a Linux. Más en Ramificación y checkpoints incrementales.

Portátil

Empaqueta una máquina, sin importar cómo la configures, en un único archivo .smolmachine. Envíalo a cualquier registro OCI, o ejecútalo como un ejecutable autocontenido que arranca en menos de 200 ms sin nada que instalar.

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

Los checkpoints también son portables: restaura uno en otro host o en smol cloud.

Seguro

Cada carga de trabajo obtiene una VM aislada por hardware con su propio kernel. La red está desactivada por defecto, la salida puede limitarse a hosts nombrados, y el código puede usar una credencial sin llegar a leerla nunca.

La seguridad es una responsabilidad compartida. smolvm proporciona el límite: una VM y un kernel separados para cada carga de trabajo, sin que nada llegue al host a menos que lo permitas. Tú decides qué cruza ese límite. Cada carpeta que montas, puerto que abres, host que permites y secreto o agente SSH que reenvías se convierte en algo que la carga de trabajo puede usar, así que da a una carga de trabajo no confiable solo lo que necesita.

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

Consulta sustitución de credenciales y el modelo de seguridad. Usa --allow-host-pattern '*.example.com' para permitir solo subdominios; --allow-host example.com permite el dominio apex y sus subdominios. smolvm machine update añade (--allow-host, --allow-host-pattern, --allow-cidr) y elimina (--remove-allow-host, un host o patrón tal como se añadió; --remove-allow-cidr) entradas, también en una máquina en ejecución iniciada con una lista de permitidos: una concesión se aplica a la siguiente conexión o resolución, y las direcciones aprendidas de un host eliminado se van con él.

Cómo Funciona

Categorías