Installation
One-Liner
Section titled “One-Liner”curl -fsSL https://raw.githubusercontent.com/auser/mvm/main/install.sh | shPin a Version
Section titled “Pin a Version”MVM_VERSION=v0.7.0 curl -fsSL https://raw.githubusercontent.com/auser/mvm/main/install.sh | shFrom Source
Section titled “From Source”git clone https://github.com/auser/mvm.gitcd mvmcargo build --releasecp target/release/mvmctl ~/.local/bin/Cargo Install
Section titled “Cargo Install”cargo install mvmctlSelf-Update
Section titled “Self-Update”mvmctl updatePrerequisites
Section titled “Prerequisites”- macOS (Apple Silicon or Intel) or Linux (x86_64 or aarch64)
- Homebrew (macOS only — mvmctl will install it if missing)
Backend Auto-Detection
Section titled “Backend Auto-Detection”mvmctl automatically detects your platform at startup and selects the best VM backend:
| Platform | Backend | What happens |
|---|---|---|
Linux with /dev/kvm | Firecracker | Runs directly on KVM. No Lima needed. |
| macOS 26+ (Apple Silicon) | Apple Container | Uses Virtualization.framework. No Lima needed. |
| Docker available | Docker | Container-based fallback. Runs anywhere Docker does. |
| macOS <26 | Lima + Firecracker | Lima VM provides /dev/kvm. Builds and Firecracker run inside Lima. |
Linux without /dev/kvm | Lima + Firecracker | Lima VM as fallback (same as macOS <26). |
First-Time Setup
Section titled “First-Time Setup”After installation, run the setup wizard:
mvmctl initThis walks through platform detection, dependency installation, Lima VM creation (if needed), default network setup, and XDG directory creation. Use --non-interactive for scripted environments.
Running mvmctl dev or mvmctl bootstrap also handles setup automatically — they detect your platform, select the backend, install Lima only if needed, and set up Nix and Firecracker in the right environment.
You can force a specific backend with --hypervisor:
mvmctl up --flake . --hypervisor apple-containermvmctl up --flake . --hypervisor firecrackermvmctl up --flake . --hypervisor dockermvmctl up --flake . --hypervisor qemu # microvm.nixUse mvmctl doctor to check which backends are available on your system.