Skip to content

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 VM

Options

      --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 version

Docs

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