# cv4pve-cli-tui Textual TUI for [cv4pve-cli](https://github.com/Corsinvest/cv4pve-cli): list Proxmox VE guests (VMs and LXC), start/shutdown/stop/reboot them, and change cores, memory and disk size. It shells out to `cv4pve-cli` and uses its current context (`cv4pve-cli config use `); it stores no credentials itself. Tested with cv4pve-cli 2.4.0. ## Run ```sh uv run cv4pve-tui ``` | Key | Action | |-----|--------| | `s` | start | | `S` | shutdown (confirm) | | `x` | stop - hard power-off (confirm) | | `r` | reboot (confirm) | | `e` | edit cores / memory / grow a disk (disk growth asks again; it cannot be undone) | | `i` | info: backups, backup job, network (config and runtime IPs); `b` there = backup now (snapshot, zstd, storage choice); `a` there = also show backups of earlier guests that had the same VMID | | `t` | shell in a running LXC container (`ssh -t root@ pct enter `) | | `g` | refresh | | `c` | switch cv4pve-cli context (cluster) | | `q` | quit | The shell key needs key-based root SSH to the PVE node (LXC only). Switching context runs `cv4pve-cli config use`, which changes cv4pve-cli's global current context: other shells and scripts follow, and it stays after the app exits. Empty fields in the edit dialog are left unchanged. If a CPU/memory change cannot be hot-plugged, the app tells you it applies at the next reboot. ## Development ```sh uv sync uv run pytest ``` Tests mock `cv4pve-cli`; they never touch a cluster. Design: `docs/plans/guest-tui-mvp.md`.