DuckbootandClaude Opus 5.5 9ff00e425f Show all dialogs and the guest table as titled boxes
The info screen's style now applies everywhere. The guest table sits
in a "Guests" frame with the active context in its bottom border.
Every dialog is a centred box with a title, labelled fields and the
buttons bottom right: confirm (titled by the action), edit resources,
switch context, back up and edit network.

Fixed:
- The network dialog hid most of its fields. In Horizontal rows
  Textual gave Select a width of 1 and Input 100 %, which pushed
  bridge, firewall, the IP mode selects and the gateways off-screen.
  Every field in a row now has an explicit width.
- A guest name or note containing markup, such as "a[/b]", crashed the
  guest table and the dialogs, because DataTable cells and border
  titles were parsed as markup. They are now plain text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 22:18:10 +01:00

cv4pve-cli-tui

Textual TUI for 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 <name>); it stores no credentials itself. Tested with cv4pve-cli 2.4.0.

Run

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
i then n in info: edit network (bridge, VLAN, firewall, IPv4/IPv6; VM IP via cloud-init at next boot); u there = undo the last network change of this guest (this session only)
t shell in a running LXC container (ssh -t root@<node> pct enter <vmid>)
g refresh
c switch cv4pve-cli context (cluster)
q quit

Warning: link changes (bridge, VLAN, firewall) apply immediately on a running guest and can cut its network (and DNS for others if the guest is your DNS server). IP changes on a running container may need a reboot of the container (seen: static -> DHCP gave no IPv4 until a reboot).

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

uv sync
uv run pytest

Tests mock cv4pve-cli; they never touch a cluster. Design: docs/plans/guest-tui-mvp.md.

S
Description
No description provided
Readme
1.3 MiB
0 Stars 1 Watchers 0 Forks
Languages
Python 98.1%
Shell 1.9%