Keep your friends close, your supply chain in a VM.
DVM, short for dev VM, is a small Bash wrapper around Lima for Fedora project VMs. It
keeps project code off the host, creates per-VM SSH keys, supports per-VM GPG signing
subkeys, syncs opt-in host dotfiles as snapshots, and provides an isolated dvm-agent
user for hosted AI coding tools.
- macOS
- Bash
- Lima
- GPG for
dvm gpg ...
Guest support target:
- Lima
template:fedora dnf5available in the guest
For stable installations, use a signed release tag:
git clone https://github.com/eshlox/dvm.git ~/.local/share/dvm-core
cd ~/.local/share/dvm-core
git fetch --tags --force
git tag -v vX.Y.Z
git checkout --detach vX.Y.Z
./install.sh --initThis symlinks:
~/.local/bin/dvm -> <repo>/bin/dvm
Update the core by moving to a newer signed release tag:
cd ~/.local/share/dvm-core
git fetch --tags --force
git tag -v vX.Y.Z
git checkout --detach vX.Y.Z
./install.shDevelopment checkouts may track main and update with git pull --ff-only.
dvm init
dvm new myapp
dvm myapp
git clone git@github.com:example/myapp.git ~/code/myappRerun setup in one VM or every VM:
dvm setup myapp
dvm setup-allRun hosted AI tools through the restricted agent user:
dvm agent setup myapp
dvm agent install myapp codex
dvm agent myapp -- codexdvm init
dvm new <name>
dvm setup <name>
dvm setup-all
dvm enter <name>
dvm ssh <name> [command...]
dvm key <name>
dvm list
dvm rm <name> [--force]
dvm ai create|setup|pull|models|use|status|host ...
dvm agent setup|install|<name> ...
dvm gpg create|install|revoke ...
dvm doctor
dvm completion zsh
dvm <name> is a shortcut for dvm enter <name>.
- Docs index
- VM lifecycle
- Config and dotfiles
- GPG signing subkeys
- Local llama.cpp AI VM
- Hosted AI tools through
dvm agent - Security policy and model
- Contributing
- Maintainer release process
- GitHub security settings
Read SECURITY.md before installing DVM for stable use. Short version:
- install and update from signed release tags
- keep
mainfor development and testing - do not run remote install scripts directly
- keep setup scripts in user-controlled config or dotfiles
- run hosted AI tools through
dvm agent, not the normal VM user
DVM is released under the MIT License.