mox: a terminal UI for my Proxmox VMs
I run a little Proxmox box for my homelab, and checking on the VMs was always the same small friction: SSH into the node, run qm list, squint. Or open the web UI and click around. What I actually wanted was the k9s experience — a live view in the terminal that just shows me what's running and lets me act on it.
So I built mox: a terminal UI for managing Proxmox VMs, written in Rust.
What it does
The bare mox command drops you into a full-screen dashboard — colored status dots, CPU and memory gauges, keyboard navigation, auto-refreshing every three seconds. If you'd rather script things, mox list prints a plain table (or --json) that pipes cleanly into whatever else you're doing.
The one deliberate constraint
mox talks to the node over SSH, driving Proxmox's own pvesh and qm commands with --output-format json. That's the whole transport. No API tokens to mint, no agent to install — if you can SSH to the node, mox works. It reuses the same automation key I already use to manage the box, so setup was essentially nothing.
That choice kept the dependency tree small too: ratatui and crossterm for the UI, clap, serde, and that's about it. No async runtime — the background refresh is just a standard thread handing updates back over a channel.
The honest part
mox is, more or less, vibe coded. I built it by prompting an AI coding assistant with light steering, and it's early — v0.1.0. It works well for me, but it runs real qm/pvesh commands against your node, including destructive ones. If you try it, point it at a box you can afford to break first.
It started life inside pve, a Bash tool I use to provision cloud-init VMs on the same node, and got extracted once the live-management side wanted to be its own thing.
Try it
Prebuilt binaries for Linux and macOS (x86_64 and arm64) are on the releases page — no Rust toolchain required. Source and details are on GitHub.