Create named development environments with one CLI across supported providers.
Use Docker by default, Tart for macOS guests on Apple Silicon, or an explicitly selected compatible provider.
Why vm · Quick start · Daily workflow · State and providers · Documentation
Development environments often require different provider commands, state
locations, network setup, and packaging steps. vm gives projects one named
environment model and keeps provider-specific behavior behind explicit
configuration.
Build and install from source, then verify local capabilities:
git clone https://github.com/goobits/vm.git
cd vm
./install.sh
vm --help
vm doctorStart a Linux environment with the default provider:
vm run linux as dev
vm shell dev| Command | Purpose |
|---|---|
vm run <kind> as <name> |
Create or start a named macOS, Linux, or container environment |
vm shell <name> |
Open an interactive shell |
vm exec <name> -- <command> |
Run a command in an environment |
vm restart <name> |
Restart an environment |
vm list |
List managed environments |
vm remove <name> |
Remove an environment |
vm doctor |
Check host and provider capabilities |
State workflows include save, revert, and package operations. Configuration,
tunnels, plugins, databases, secrets, and self-management have dedicated
command groups. Use vm <command> --help for exact syntax.
Docker is the default Linux/container provider. Tart-based macOS environments require Apple Silicon macOS and Tart. Podman support is optional and must be selected where supported.
Save, revert, remove, package, database, secret, and system commands can change durable environment state. Inspect the selected environment and provider before running them. A configuration file does not install or license a missing guest image, platform SDK, or provider.
The maintained installation guide still repeats the unsupported curl-pipe pattern. Use the source checkout installation above until that guide and installer are reconciled.
MIT.