
Firecracker simplifié. Déployez des microVM sécurisées en millisecondes, de l'installation au shell interactif en une seule commande.
🔥 Boîte à outils pour microVM Firecracker en mode bac à sable
Créez, gérez et connectez-vous à des microVM Firecracker isolées depuis la ligne de commande. Démarrez une VM en mode bac à sable en quelques millisecondes, exécutez des commandes, transférez des fichiers — pas besoin de SSH.
--from-imagebase, node22, node24, python3.13--json pour les scripts et l'automatisation--from-image)curl -fsSL https://vmsan.dev/install | bash
Cette commande télécharge et installe tout dans ~/.vmsan/ :
node22, node24, python3.13) téléchargées en tant qu'artefacts préconstruitsLes installations standard des versions téléchargent les environnements intégrés depuis https://artifacts.vmsan.dev/ et ne nécessitent pas Docker. Les installations depuis les sources construisent encore les environnements localement.
curl -fsSL https://vmsan.dev/install | bash -s -- --uninstall
Si vous voulez compiler depuis les sources :
# Installer les dépendances
bun install
# Compiler l'agent in-VM
cd agent && make install && cd ..
# Compiler la CLI
bun run build
# Lier la version locale
mkdir -p ~/.vmsan/bin
ln -sf "$(pwd)/dist/bin/cli.mjs" ~/.vmsan/bin/vmsan
# Créer et démarrer une VM
vmsan create --runtime node22 --memory 512 --cpus 2
# Créer une VM à partir d'une image Docker
vmsan create --from-image node:22-alpine
# Lister toutes les VM
vmsan list
# Exécuter une commande dans une VM
vmsan exec <vm-id> ls -la
# Exécution interactive avec PTY
vmsan exec -i <vm-id> bash
# Se connecter au shell d'une VM en cours d'exécution
vmsan connect <vm-id>
# Téléverser un fichier vers une VM
vmsan upload <vm-id> ./local-file.txt /remote/path/file.txt
# Télécharger un fichier depuis une VM
vmsan download <vm-id> /remote/path/file.txt ./local-file.txt
# Prendre un instantané d'une VM en cours d'exécution
vmsan snapshot create <vm-id>
# Lister les instantanés
vmsan snapshot list
# Restaurer une VM à partir d'un instantané
vmsan create --snapshot <snapshot-id>
# Arrêter une VM
vmsan stop <vm-id>
# Supprimer une VM
vmsan remove <vm-id>
| Drapeau | Description |
|---|---|
--json | Sortie JSON structurée |
--verbose | Afficher les informations de débogage détaillées |
| Commande | Alias | Description |
|---|---|---|
create | Créer et démarrer une nouvelle microVM | |
list | ls | Lister toutes les VM |
start | Démarrer une VM arrêtée | |
stop | Arrêter une VM en cours d'exécution | |
remove | rm | Supprimer une VM |
exec | Exécuter une commande dans une VM en cours d'exécution | |
connect | Ouvrir un shell interactif sur une VM | |
upload | Téléverser des fichiers vers une VM | |
download | Télécharger des fichiers depuis une VM | |
network | Mettre à jour la politique réseau sur une VM en cours d'exécution | |
snapshot | Gérer les instantanés de VM (créer, lister, supprimer) | |
doctor | Vérifier les prérequis système et l'état de l'installation |
vmsan.toml (prévu en 0.5.0)nftables avec application atomique des règles pour l'isolation réseau (depuis 0.2.0)# Compiler
bun run build
# Lier la version locale
ln -sf "$(pwd)/dist/bin/cli.mjs" ~/.vmsan/bin/vmsan
# Mode développement (surveillance)
bun run dev
# Exécuter les tests
bun run test
# Vérification de types
bun run typecheck
# Lint et formatage
bun run lint
bun run fmt
bin/ Point d'entrée de la CLI
src/
commands/ Sous-commandes de la CLI
services/ Client Firecracker, client agent, service VM
lib/ Utilitaires (jailer, réseau, shell, journalisation)
errors/ Système d'erreurs typé
generated/ Définitions de types de l'API Firecracker
agent/ Agent Go qui s'exécute à l'intérieur de la VM
docs/ Site de documentation (vmsan.dev)
/30 (198.19.{slot}.0/30)L'état est persistant dans ~/.vmsan/ :