Skip to content

nexus-vm-forge — action report

2026-07-24 — Created nexus-vm-forge (TUI VM forge) + Fossil repo

  • Status: ✅ TESTED (syntax clean; --help + check verified on host — qemu/qemu-img/KVM/CPU-virt all green). Interactive create/boot flow 🔵 not yet run end-to-end.
  • What: A stupid-simple, dependency-free pure-bash TUI that creates and remembers QEMU/KVM VMs — point at an ISO, enter RAM / cores / disk size / network / CPU-pass, keeps a per-VM registry as the history.
  • Why: nexus-vm.sh only live-boots an ISO and forgets it. The glibc-VM work (running agy/Antigravity on musl Alpine) proved we need persistent VMs we can keep, list, and re-run. Wanted zero deps (no dialog/whiptail/socat) and a built-in qemu/KVM dependency check.
  • How: Pure bash menu + ANSI; VM defs = plain key=val files in ~/.config/nexus/vms/<name>.vm; disks = ~/VMs/<name>.qcow2 via qemu-img; auto-allocates unique SSH-forward ports (2222+) and VNC displays (:1+); launches with -enable-kvm -cpu host -vga qxl (the fixes learned from the Antigravity VM). Preflight checks qemu-system-x86_64, qemu-img, /dev/kvm (read/write), and vmx/svm CPU flags, printing distro install one-liners if missing. Remove = archive (config always, disk opt-in), never destroy.
  • Files:
  • nexus-vm-forge.sh — the tool
  • nexus-vm-forge.help.md — help
  • README.md, .gitignore, docs/action_report.md
  • Testing: Not yet exercised: full create → install-from-CD → disk-boot cycle; the none network path; multi-VM port collision (logic in place, unproven). Next real test = re-forge the Artix glibc VM through the TUI.
  • Dependencies: bash, coreutils, qemu-system-x86_64, qemu-img, /dev/kvm (optional; falls back to TCG).
  • Repo: Fossil ~/museum/nexus-vm-forge.fossil, checkout ~/git/nexus-vm-forge/. Git mirror later via fossil git export.