Quick Start
1. Launch the Dev Environment
Section titled “1. Launch the Dev Environment”mvmctl devThis single command detects your platform and handles everything:
On macOS 26+ (Apple Silicon):
- Uses Apple Virtualization.framework directly — no Lima needed
- Drops you into a dev shell
On macOS <26 or Linux without KVM:
- Installs Lima if not present
- Creates and starts a Lima VM with
/dev/kvm - Installs Nix and Firecracker inside the Lima VM
- Drops you into the Lima VM shell
On Linux with /dev/kvm:
- Skips Lima entirely
- Installs Nix and Firecracker natively on the host
- Drops you into a dev shell
Docker fallback (any platform):
- If no hypervisor or KVM is available, falls back to Docker
- Runs your workload in a container with pause/resume support
Inside the dev shell, your home directory (~) is mounted read/write (Lima) or directly available (native Linux) — your project files are right there. Nix, Firecracker, and /dev/kvm are all available.
Exit the shell with exit or Ctrl+D — the Lima VM (if used) keeps running in the background.
2. Day-to-Day Commands
Section titled “2. Day-to-Day Commands”mvmctl ls # List running VMs (aliases: ps, status)mvmctl dev shell # Open a shell in the Lima VMmvmctl down # Stop all running VMsmvmctl doctor # Check system dependencies and configurationmvmctl console vm # Interactive shell into a running VM (PTY-over-vsock)3. Build and Run
Section titled “3. Build and Run”Build a microVM image and run it in one command:
mvmctl up --flake . --cpus 2 --memory 1024Run in background with port forwarding:
mvmctl up --flake . -d -p 8080:8080Or build separately:
mvmctl build --flake . --profile minimalmvmctl up --flake .4. Templates
Section titled “4. Templates”Build a base image once and share it across machines:
mvmctl template create base-worker \ --flake . \ --profile minimal \ --role worker \ --cpus 2 --mem 1024
mvmctl template build base-workermvmctl up --template base-worker5. Image Catalog
Section titled “5. Image Catalog”Browse and build images without writing Nix flakes yourself:
mvmctl image list # Browse available imagesmvmctl image fetch minimal # Build from catalog (creates template + Nix build)mvmctl up --template minimal6. Interactive Console
Section titled “6. Interactive Console”Access a running VM without SSH — uses PTY-over-vsock:
mvmctl console myvm # Interactive shellmvmctl console myvm --command "ls -la" # One-shot command7. Named Networks
Section titled “7. Named Networks”Create isolated networks for different projects:
mvmctl network create myprojectmvmctl up --flake . --network myprojectmvmctl network list8. Diagnostics & Security
Section titled “8. Diagnostics & Security”mvmctl doctor # Check system dependencies, available backendsmvmctl logs vm1 # View guest console logsmvmctl security status # Security posture evaluationmvmctl cache info # Cache directory disk usageNext Steps
Section titled “Next Steps”- Your First MicroVM — write a Nix flake and boot it
- CLI Commands — full command reference
- Templates — reusable base images
- Troubleshooting — common issues