Xubuntu Dev VM
This is a Xubuntu virtual machine on Proxmox pve2 in the study that serves as my main development environment, replacing the need for a dedicated physical workstation. It's designed to be lightweight, remotely accessible from anywhere, and — most importantly — completely disposable, which is what makes it a safe place to let AI coding agents operate with far more autonomy than I'd otherwise allow.
Why a disposable VM is the biggest advantage
- Daily backups as a safety net — the VM is backed up once a day through Proxmox. If an AI agent breaks the system, misconfigures something critical, or deletes the wrong files, I simply restore yesterday's snapshot rather than manually debugging the damage.
- No irreplaceable local data — nothing important lives only on this VM. All actual project code lives in Git repositories, so after a restore I just
git pulleverything back and I'm exactly where I left off, minus whatever the agent broke. - Higher trust, more autonomy for AI agents — because the worst-case outcome is "restore a snapshot and re-pull," I can give coding agents like OpenCode much broader permissions on this machine than I would on a system holding unique, unbacked-up state. The blast radius of a mistake is capped at "lose a few hours of uncommitted work," never at "lose data."
- Cheap to rebuild from scratch — if the VM ever gets into a truly bad state, standing up a fresh Xubuntu VM and re-cloning repos is a short, well-understood process rather than an emergency.
Remote workflow via SSH
- Herdr — manages my development workspaces over SSH, letting me organize and switch between multiple project contexts on the VM without manually juggling terminal sessions.
- OpenCode — the AI coding agent I run inside these workspaces; it's the main reason the VM's disposability matters, since it can act with elevated freedom knowing any damage is trivially reversible.
- lazygit — terminal UI for Git, used for fast commit/branch/diff workflows directly inside the SSH session without leaving the terminal.
Graphical fallback via Chrome Remote Desktop
- Full desktop access — when a GUI IDE is preferable to terminal-based editing, Chrome Remote Desktop connects straight into the Xubuntu desktop from any device.
- WebStorm — used for TypeScript projects that benefit from a full IDE (refactoring tools, debugging, integrated test runners).
- PyCharm — used the same way for Python projects.
This setup deliberately treats the dev VM as ephemeral infrastructure, not a pet — the philosophy is: keep state in Git, keep the VM replaceable, and let daily backups absorb the risk of giving an AI agent real write access to the system.