Skip to content
Using devvm

Using devvm

These pages cover what you change as you work, such as the images VMs are made from, their ports and size, your coding agents, and the editors you connect with.

  • Coding agents: the supported agents, which are Claude Code, Codex and opencode, the config they get in a VM, their logins, and their history.
  • Toolchains: node, python, rust and go, with what each brings, the files that choose it, its version files, its global installs and its allowlist.
  • SSH and editors: reaching VMs by name from ssh and VS Code, and forwarding your SSH agent.
  • Ports and size: the ports a VM forwards to your machine, and its CPUs, memory and disk.
  • Managing VMs: restarting, stopping, deleting and listing VMs, and what devvm does in a subfolder or when a project folder is made again, moved, deleted or on a disk that isn’t connected.
  • Images and tools: base, the desktop, docker and nix layers and your own layers, how the shared tools work, which image a new VM gets, and rebuilding, listing and deleting images.
  • Customizing images: your own layers, and the optional features in every VM, such as oh-my-bash and fzf.
  • Settings and files: your settings and the commands that write them, devvm’s state, and the environment variables devvm reads.
  • Working on a clone: --clone, which gives a VM its own clone of the repo instead of mounting the folder.
  • devcontainer.json: what a new VM takes from a project’s devcontainer.json, and what devvm refuses.
  • Links between VMs: devvm link, which lets a program in one VM reach a service in another by name, as in postgres://db:5432/app, once that VM publishes the port.
  • A VM’s desktop: the desktop layer, and opening a VM’s desktop in Screen Sharing with devvm desktop.
  • Starting from a container image: --from, which starts base from node:24, alpine:3 or your own image.
  • What devvm keeps on this machine: everything devvm, its tools and its backends keep outside your project folders, and how each is cleaned up.
  • The command line: the help, flags and their values, the questions devvm asks and what answers them, --json for scripts, and shell completion.
  • Upgrading and uninstalling: devvm upgrade, switching between Homebrew and the install script, and removing devvm with everything it keeps.
  • Troubleshooting: what to do when a command or a build fails, a request is blocked, or a VM won’t start.
  • Known limits: what devvm can’t do, in one list.
Last updated on