The problem
A homelab task should not require remembering a command from scratch.
PXC began as a scratch-your-own-itch tool for managing my Proxmox homelab. The Proxmox web UI can take me a few minutes to work through when I need to create a VM. From a phone shell emulator, that kind of panel-based workflow is even less practical.
The alternative, a flags-only CLI, is powerful but puts the burden on memory. I can forget a flag or miss a required step, especially when I am using a phone keyboard. I wanted a terminal interface that preserved the speed of commands without making recall the primary interface.
The interaction model
Guidance by default, flags when I already know the path.
The default flow is deliberately inspired by the sequential simplicity of create-next-app: one question at a time, only the decision currently needed, then the next. It is designed for a regular terminal but is especially useful from a shell emulator on a phone.
PXC still supports flags for a faster, command-driven path. The two modes serve different needs:
- The guided flow helps me complete configuration without missing a step or recalling every option.
- Flags remain available when I already know exactly what I want to create.
Working sketch of the interaction model. It records the decisions behind the guided flow rather than representing a literal terminal screen.
Make the available choices visible.
Instead of requiring me to type infrastructure identifiers from memory, the guided flow auto-discovers available storage pools, network bridges, and ISOs. It also remembers the prior VM configuration and can offer to reuse its CPU, RAM, and network settings for the next VM.
That combination reduces repeated setup work without hiding the underlying decisions. I can accept a known-good starting point, then change the values that need to differ.
Safety model
Destructive actions deserve more than one chance to reconsider.
PXC’s destructive-action flow comes from the risk of making an irreversible infrastructure mistake, not from a particular incident. I am careful with deployments, but careful people still benefit from interfaces that make the target and consequence explicit.
Every destructive operation uses three safeguards:
- A visible confirmation of the target.
- A type-to-confirm check using the VM ID.
- A visible countdown that can be cancelled.
The goal is not to make a valid action difficult. It is to create deliberate pause points before an action that could affect the wrong server. The same safety pattern is applied consistently rather than relying on attention alone.
Interaction-model reconstruction based on the shipped safeguards.
Engineering
A terminal UI built around the environment it manages.
PXC is implemented in TypeScript with React Ink and installed on the Proxmox node. It uses both the Proxmox API and local Proxmox commands, allowing the interface to combine guided interaction with the information and operations available on that node.
React Ink made it possible to bring familiar interface patterns into a terminal renderer: composed UI, stateful steps, and input handling. The implementation matters here because the product decision is inseparable from the medium. The terminal is not treated as a degraded web form; it is the interface I need when I am away from a desktop.
My working architecture sketch. It shows the guided React Ink interface offering questions, saved configuration, and CLI flags on the node, able to use the Proxmox API and node-local commands against the VMs, containers, storage, and networking that node manages. It is a personal sketch, not production documentation, and does not show any specific cluster topology or host details.
Outcome and reflection
A tool I use for my own infrastructure.
PXC is a personal-use project, not an externally benchmarked product. For my own workflow, it replaces a few minutes of web-UI navigation with a guided terminal sequence I can use from a phone shell emulator.
Its most useful lesson is modest: infrastructure tools can make safer behavior easier without removing expert control. Guidance, discovery, remembered configuration, and an escape hatch to flags are all parts of the same design. The right interface depends on whether I need help remembering the path or simply need to move quickly through one I already know.


