Skip to main content

TUI Wizard

The TUI wizard guides you through macOS VM creation in 6 steps. Launch it by running the install script on your Proxmox host:

bash -c "$(curl -fsSL https://raw.githubusercontent.com/lucid-fabrics/osx-proxmox-next/main/install.sh)"

Step 1: Preflight Checks

Automatically validates your Proxmox host before proceeding.

Preflight checks

CheckWhat It Verifies
CPU vendorIntel or AMD detected, applies correct config
VirtualizationVT-x / AMD-V enabled
Root accessRunning as root on Proxmox
DependenciesRequired packages installed
TSC flagsconstant_tsc and nonstop_tsc for clock stability

No user input required. The wizard auto-detects your hardware and moves forward.

note

Xeon and pre-Skylake Intel CPUs are detected automatically. Xeon keeps -cpu host, older consumer Intel gets Penryn mode with e1000 NIC.

Step 2: Choose macOS Version

Select your target macOS version from the list.

Choose macOS version

macOSApple ServicesNotes
Ventura 13WorksLightweight, good for older hardware
Sonoma 14WorksBest tested, most reliable
Sequoia 15Works (with --apple-services)Kernel patch applied automatically
Tahoe 26Works (with --apple-services)Kernel patch applied automatically

SMBIOS identity (serial, UUID, model) is auto-generated when you select a version.

Step 3: Select Storage

Choose a storage target from auto-detected Proxmox storage pools. The wizard scans for available pools (e.g., local-lvm, NAS mounts under /mnt/pve/).

Storage selection

Step 4: VM Configuration

Review and edit VM settings with auto-filled defaults based on your hardware.

VM configuration

FieldDefaultDescription
VMIDNext availableMust be unique, 100-999999
Namemacos-{version}VM display name
CPU CoresAuto-detectedMust be power of 2 (2, 4, 8, 16)
Memory (MB)Auto-detectedMinimum 4096 MB
Disk (GB)Varies by version (80-160)Minimum 64 GB
Network Bridgevmbr0Proxmox bridge interface

Additional options available in this step:

  • Generate SMBIOS -- regenerate identity values
  • Enable Apple Services -- adds vmgenid, static MAC, and PlatformInfo patching
  • Verbose Boot -- shows kernel log instead of Apple logo
  • Existing UUID -- enter a UUID to preserve identity for re-runs
warning

macOS requires power-of-2 CPU core counts. Non-power-of-2 values (6, 12) can cause the kernel to hang at the Apple logo.

Step 5: Dry Run

The wizard auto-downloads any missing assets (OpenCore ISO, recovery image), then previews every qm command that will be executed.

Dry run review

This step shows:

  • Each command with its title and risk level
  • The full qm create, qm set, and qm importdisk sequence
  • SMBIOS values that will be applied
  • Boot order configuration

Nothing is executed yet. Review the commands before proceeding.

note

Smart caching: OpenCore and recovery images are downloaded once and reused. Creating a second VM with the same macOS version skips the download entirely.

Step 6: Install

Executes all commands from the dry-run preview:

  1. Creates the VM with qm create
  2. Builds the OpenCore bootloader (GPT + EFI partition)
  3. Imports OpenCore and recovery disks via qm importdisk
  4. Configures boot order (ide2;virtio0;ide0)
  5. Starts the VM

After completion, open the VM console via Proxmox web UI (noVNC) to continue macOS installation.

Post-Install

After macOS finishes installing, fix the boot order so the main disk boots first:

qm set <vmid> --boot order=virtio0;ide0

Manage Mode

After creating VMs, launch the wizard with the --manage flag to manage existing macOS VMs:

osx-next --manage

Manage mode lists all macOS VMs detected on the host (identified by isa-applesmc in their config) and provides three actions per VM:

ActionWhat It Does
EditOpens an edit form to change cores, memory, name, network bridge, or disk size. Changes are previewed before applying.
Start / StopToggles the VM power state.
DestroyStops and destroys the VM. A config snapshot is saved to generated/snapshots/ before destruction. Rollback hints are shown on failure.

The edit form in manage mode behaves the same as the edit subcommand: the VM is stopped before changes are applied, existing MAC address and NIC model are preserved when changing the bridge, and the VM can optionally be restarted after.