devvm
Open a shell in this folder’s VM, creating it first
Synopsis
Open a shell in this folder’s VM, at the same path, and create the VM first when the folder has none. devvm shows what a new VM gets, and in a terminal you can customize its toolchains, coding agents, layers, tier, ports and size, which –tools, –agents, –layers, –network, –ports, –cpus, –memory and –disk choose without asking. The VM mounts only this folder read-write, and with –clone it gets its own clone of the repo instead.
devvm [flags]Examples
devvm # open this folder's VM, choosing what a new one gets
devvm --agents claude # create the VM with Claude Code and the toolchains the folder needs
devvm --tools node --agents none --layers docker # create the VM with node and the docker layer alone
devvm --clone # create the VM with its own clone of this repo
devvm ls # list every VMOptions
--agents LIST the LIST of coding agents a new VM gets, such as claude,codex, or none (default: devvm setup's)
--clone create the VM with its own clone of this repo instead of mounting the folder
--cpus N the N CPUs the VM gets (default: devvm size -g, else the image's)
--disk GiB the VM's disk in GiB, at least the image's (default: devvm size -g, else the image's)
--from IMAGE the container IMAGE base starts from, such as node:24, instead of Ubuntu's cloud image (default: $DEVVM_FROM)
-h, --help help for devvm
--here use this folder's own VM, never that of a folder it's inside
--layers LIST the LIST of layers a new VM's image gets, bottom first, such as docker,mine, or none (default: devvm setup's)
--memory GiB the VM's memory in GiB, such as 16 or 16G (default: devvm size -g, else the image's)
--network TIER the network TIER a new VM gets: open, internet, allowlist or none (default: devvm network -g's, else allowlist)
--no-devcontainer create the VM without reading the folder's devcontainer.json
--no-git-protect create the VM without .git protection
--no-input never ask, and fail where devvm would ask, naming the flag that answers it
--parent use the VM of the nearest folder this one is inside, even across a git repo of its own
--ports PORTS the PORTS the VM forwards: all, none or a list like 5173,8000-8010 (default: devvm ports -g, else all)
--ssh-agent create the VM with your SSH agent forwarded, so anything in it can use your keys while you're connected
--ssh-config add devvm's Include line to ~/.ssh/config without asking
--tools LIST the LIST of toolchains a new VM gets, such as node,python, or none (default: those the folder's files call for)
--unsafe-folder mount a folder devvm refuses, such as your home folder
-v, --verbose show the output of the commands devvm runs instead of a status line
--version print devvm's versionDocs
The docs page for devvm explains it in full.
See also
- devvm adopt: Give this folder the VM made for an earlier folder or path
- devvm agent: Fill devvm’s store of the agents’ settings and logins that every VM gets
- devvm build: Build an image and the images under it, unless they’re built
- devvm clone: Show or change whether this folder’s VM has its own clone of the repo
- devvm code: Open this folder’s VM in VS Code over Remote-SSH
- devvm completion: Print the shell completion script for bash, zsh or fish
- devvm desktop: Open this folder’s VM’s desktop in a VNC viewer
- devvm doctor: Check what devvm needs on this machine
- devvm gc: Delete stale images, unused tools, old files and the Nix cache over its cap
- devvm git-protect: Show or change .git protection for this folder’s VM
- devvm group: Show the group this folder’s VM is in
- devvm history: List the saved exports of agents’ history
- devvm host: Get this folder’s VM ready for ssh and editors, and show its host name
- devvm images: List the images and the shared tools
- devvm layer: Make image layers of your own, or change this folder’s VM’s layers
- devvm limactl: Run Lima’s limactl for debugging, which starts VMs unconfined, whatever their tier
- devvm link: List this folder’s VM’s links to your other VMs
- devvm ls: List the project VMs
- devvm network: Show or change the network tier of this folder’s VM
- devvm ports: Show or change which ports this folder’s VM forwards
- devvm rebuild: Build an image again, and delete the old one
- devvm restart: Restart this folder’s VM and open a shell in it
- devvm retention: Show or change what devvm deletes on its own
- devvm rm: Delete this folder’s VM, or a VM whose folder is gone
- devvm secret: List the secrets kept on this machine, for VMs to use
- devvm setup: Choose base’s features, and new VMs’ size, network tier, coding agents and layers
- devvm size: Show or change this folder’s VM’s size
- devvm space: Show what devvm keeps on this machine and the space it takes
- devvm ssh-agent: Show or change SSH agent forwarding for this folder’s VM
- devvm stop: Stop this folder’s VM
- devvm tools: Show or choose this folder’s VM’s shared tools
- devvm update: Bring this folder’s VM up to date, then open a shell in it
- devvm upgrade: Install devvm’s newest release
Last updated on