Voltar às atualizações
New releaseOct 17, 2026

smolvm v1.30.1

Uma máquina virtual incorporável, portátil e ramificável para executar Agentes localmente com segurança.

Compartilhar

smol machines

Discord Release License npm PyPI crates.io

smolvm

microVMs ramificáveis para agentes de IA. Incorpore máquinas virtuais leves em seu software, ambientes de desenvolvimento portáteis e sandboxing local.

Instalação

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

Windows: descompacte o windows-x86_64 release e execute smolvm.exe (requer a Windows Hypervisor Platform). Agentes de programação: execute smolvm --help após a instalação para descobrir todos os comandos.

A documentação para humanos e agentes está em docs/, uma pasta por tarefa: um README.md com os fatos e um SKILL.md que um agente pode seguir, com seus scripts, ao lado da página de referência de cada recurso.

Quick Start

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

VMs reais com seu próprio kernel, gratuitas no seu laptop ou nos seus próprios servidores. Elas inicializam em menos de um segundo, e a memória é elástica, então o host só aloca o que o guest utiliza. As máquinas persistem entre reinicializações, e qualquer imagem OCI funciona, incluindo as que você constrói 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

Declare uma máquina num Smolfile: imagem, recursos, portas, montagens e política de rede num único ficheiro versionado.

Embutível

Controle máquinas a partir do seu próprio código com uma única API Machine. Os SDKs são executados no seu processo sem daemon, localmente ou na 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();

Origem e documentação: smol-machines/smol · smolmachines.com/docs/sdk

Branchable

Salve uma máquina em execução no meio da execução, rebobine-a ou ramifique-a em cópias que continuam a ser executadas a partir do mesmo ponto. Os checkpoints capturam a RAM, o estado da CPU e os discos; os branches são filhos copy-on-write de uma máquina em execução.

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

Retroceda para uma geração anterior com --from <checkpoint> --at '~N' (consulte machine checkpoint-log) e pare sem perder a execução com pausar e retomar. Um checkpoint criado num Mac arm64 é retomado num Linux arm64; consulte Mover uma máquina em execução de um Mac para Linux. Mais em Ramificação e checkpoints incrementais.

Portátil

Empacote uma máquina, independentemente de como a configurou, num único ficheiro .smolmachine. Envie-a para qualquer registo OCI ou execute-a como um executável autónomo que arranca em menos de 200 ms sem nada para 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

Os checkpoints também são portáveis: restaure um em outro host ou na smol cloud.

Seguro

Cada workload recebe uma VM isolada por hardware com seu próprio kernel. A rede fica desativada por padrão, a saída pode ser limitada a hosts nomeados, e o código pode usar uma credencial sem nunca lê-la.

A segurança é uma responsabilidade compartilhada. O smolvm fornece o limite: uma VM e um kernel separados para cada workload, sem nada chegando ao host a menos que você permita. Você decide o que cruza esse limite. Cada pasta que você monta, porta que você abre, host que você permite e segredo ou agente SSH que você encaminha torna-se algo que o workload pode usar, então forneça a um workload não confiável apenas o que ele precisa.

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

Consulte substituição de credenciais e o modelo de segurança. Use --allow-host-pattern '*.example.com' para permitir apenas subdomínios; --allow-host example.com permite o domínio apex e seus subdomínios. smolvm machine update adiciona (--allow-host, --allow-host-pattern, --allow-cidr) e remove (--remove-allow-host, um host ou padrão conforme foi adicionado; --remove-allow-cidr) entradas, também em uma máquina em execução iniciada com uma lista de permissões: uma concessão se aplica à próxima conexão ou consulta, e os endereços aprendidos de um host removido vão junto com ele.

Como Funciona

Categorias