
Firecracker simplificado. Inicie microVMs seguras em milissegundos, da instalação ao shell interativo em um único comando.
🔥 Conjunto de ferramentas para sandbox microVM Firecracker
Crie, gerencie e conecte-se a microVMs Firecracker isoladas a partir da linha de comando. Inicie uma VM em sandbox em milissegundos, execute comandos, transfira arquivos — sem necessidade de SSH.
--from-imagebase, node22, node24, python3.13--json para scripts e automação--from-image)curl -fsSL https://vmsan.dev/install | bash
Isso baixa e instala tudo em ~/.vmsan/:
node22, node24, python3.13) baixadas como artefatos pré-construídosAs instalações de versão padrão baixam runtimes integrados de https://artifacts.vmsan.dev/ e não exigem Docker. Instalações a partir da fonte ainda constroem runtimes localmente.
curl -fsSL https://vmsan.dev/install | bash -s -- --uninstall
Se você quiser compilar a partir da fonte:
# Instalar dependências
bun install
# Compilar o agente in-VM
cd agent && make install && cd ..
# Compilar a CLI
bun run build
# Vincular compilação local
mkdir -p ~/.vmsan/bin
ln -sf "$(pwd)/dist/bin/cli.mjs" ~/.vmsan/bin/vmsan
# Criar e iniciar uma VM
vmsan create --runtime node22 --memory 512 --cpus 2
# Criar uma VM a partir de uma imagem Docker
vmsan create --from-image node:22-alpine
# Listar todas as VMs
vmsan list
# Executar um comando dentro de uma VM
vmsan exec <vm-id> ls -la
# Execução interativa com PTY
vmsan exec -i <vm-id> bash
# Conectar ao shell de uma VM em execução
vmsan connect <vm-id>
# Fazer upload de um arquivo para uma VM
vmsan upload <vm-id> ./local-file.txt /remote/path/file.txt
# Fazer download de um arquivo de uma VM
vmsan download <vm-id> /remote/path/file.txt ./local-file.txt
# Criar snapshot de uma VM em execução
vmsan snapshot create <vm-id>
# Listar snapshots
vmsan snapshot list
# Restaurar uma VM a partir de um snapshot
vmsan create --snapshot <snapshot-id>
# Parar uma VM
vmsan stop <vm-id>
# Remover uma VM
vmsan remove <vm-id>
| Flag | Descrição |
|---|---|
--json | Saída estruturada em JSON |
--verbose | Exibir saída detalhada de debug |
| Comando | Alias | Descrição |
|---|---|---|
create | Criar e iniciar uma nova microVM | |
list | ls | Listar todas as VMs |
start | Iniciar uma VM parada | |
stop | Parar uma VM em execução | |
remove | rm | Remover uma VM |
exec | Executar um comando dentro de uma VM em execução | |
connect | Abrir um shell interativo para uma VM | |
upload | Fazer upload de arquivos para uma VM | |
download | Fazer download de arquivos de uma VM | |
network | Atualizar política de rede em uma VM em execução | |
snapshot | Gerenciar snapshots da VM (criar, listar, excluir) | |
doctor | Verificar pré-requisitos do sistema e saúde da instalação |
vmsan.toml (planejado para 0.5.0)nftables com aplicação atômica de regras para isolamento de rede (desde 0.2.0)# Compilar
bun run build
# Vincular compilação local
ln -sf "$(pwd)/dist/bin/cli.mjs" ~/.vmsan/bin/vmsan
# Modo de desenvolvimento (watch)
bun run dev
# Executar testes
bun run test
# Verificação de tipos
bun run typecheck
# Lint e formatação
bun run lint
bun run fmt
bin/ Ponto de entrada da CLI
src/
commands/ Subcomandos da CLI
services/ Cliente Firecracker, cliente agente, serviço de VM
lib/ Utilitários (jailer, rede, shell, logging)
errors/ Sistema de erros tipados
generated/ Definições de tipos da API do Firecracker
agent/ Agente Go que executa dentro da VM
docs/ Site de documentação (vmsan.dev)
/30 (198.19.{slot}.0/30)O estado é persistido em ~/.vmsan/:
~/.vmsan/
vms/ Arquivos de estado da VM (JSON)
jailer/ Diretórios chroot
bin/ Binário do agente
kernels/ Imagens do kernel da VM
rootfs/ Sistemas de arquivos raiz base
registry/ Cache de rootfs de imagens Docker
snapshots/ Snapshots da VM