Skip to main content
vee
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage
Edit page

vm.yaml Reference

Every VM’s full configuration is stored in ~/.vee/vms/<name>/vm.yaml. You can edit this file directly — changes take effect on the next vee start.

Full example

name: linux-gaming
template: passthrough
memory: 16G
cpus: 6
sockets: 1
cores: 3
threads: 2
cpu_model: host

disks:
  - path: /dev/disk/by-id/nvme-CT2000P3PSSD8_...
    size: ""
    format: raw
    interface: virtio
    media: disk
    cache: none
    readonly: false
    passthrough: true

nic:
  mode: bridge
  bridge: br0
  model: virtio-net-pci
  mac: 52:54:54:8d:72:76

gpu:
  mode: passthrough
  pci_addr: "0000:08:00.0"
  extra_vfio_addrs:
    - "0000:08:00.1"
  rom_file: /home/user/.vee/gpu.rom
  anti_detect: true

uefi:
  enabled: true
  vars_path: /home/user/.vee/vms/linux-gaming/OVMF_VARS.fd

spice:
  port: 5930
  disable_ticketing: true

ssh_user: youruser
guest_agent: true

extra_devices:
  - virtio-gpu-pci,edid=on,xres=1920,yres=1080

vga: none

created_at: 2026-01-01T00:00:00Z

Fields

Top-level

FieldTypeDescription
namestringVM name (matches directory name)
templatestringTemplate used to create the VM
backendstringVirtualization backend: qemu (default when empty) or vz (Apple Virtualization.framework for macOS guests on Apple Silicon hosts — experimental, requires a macos: section and the vee-vz-helper binary; #51)
archstringGuest CPU architecture in QEMU naming (aarch64, x86_64). Empty = host-native (hardware-accelerated). A cross-arch value runs the guest under TCG emulation — much slower — resolving the matching system qemu-system-<arch> binary, firmware, and machine type automatically. QEMU backend only. Set by the omarchy template (x86_64-only ISO)
memorystringRAM, e.g. 16G
cpusintTotal vCPU count
socketsintCPU socket topology
coresintCores per socket
threadsintThreads per core (SMT)
cpu_modelstringQEMU CPU model, e.g. host
nestedboolExpose nested virtualization (EL2) to the guest so it can run KVM. arm64 (aarch64) QEMU guests only; under HVF needs QEMU ≥ 11.1 and an M3+ Mac on macOS 15+
ssh_userstringDefault SSH user for vee ssh
guest_agentboolEnable QGA virtio-serial socket
vgastringVGA device type; set to none for passthrough
extra_devices[]stringAdditional -device arguments passed to QEMU
created_attimestampCreation time (set automatically)

macos

Only for backend: vz guests (see macOS guests). Written by the macos template; the blobs are opaque Virtualization.framework values, base64 in JSON and !!binary in YAML — the same encoding macosvm.json uses.

FieldTypeDescription
auxiliary_storagestringAbsolute path to the guest’s auxiliary storage (the NVRAM analog)
hardware_modelbinaryHardware model the guest was restored for
machine_identifierbinaryMachine identity bound to the installed guest
min_cpusintCPU floor from the restore image; vee clamps up to it
min_memory_bytesintMemory floor from the restore image; vee clamps up to it
display_width_px / display_height_px / display_ppiintGuest display size (defaults 1920x1200 @ 80 ppi)

disks[]

FieldDescription
pathDevice path or image file path
sizeImage size (empty for raw block passthrough)
formatqcow2 or raw
interfacevirtio, ide, ahci, nvme (inbox driver on Windows ARM64), usb (mass storage on the VM’s USB controller)
mediadisk or cdrom
cacheQEMU cache mode (none, writeback, etc.)
readonlyMount read-only
passthroughtrue for raw block device passthrough

nic

FieldDescription
modeuser (NAT) or bridge
bridgeHost bridge interface name (bridge mode)
modelQEMU NIC model (virtio-net-pci, e1000, etc.)
macMAC address (assign a stable one for bridge VMs)

gpu

FieldDescription
modenone, virtio (accelerated virtio-gpu), or passthrough (VFIO, Linux host only). apple-gfx is rejected: QEMU’s macOS-guest path is unusable upstream (#50) — run macOS guests on backend: vz instead
pci_addrPrimary GPU PCI address, e.g. 0000:08:00.0 (passthrough)
extra_vfio_addrsAdditional IOMMU group peer addresses (passthrough)
rom_filePath to VBIOS dump (required for AMD Navi)
anti_detectHide virtualization artifacts from anti-cheat
gl_backendHost GL backend for virtio mode: es (ANGLE/Metal, macOS default, stable), core (native, unstable), on (Linux EGL). Empty picks the host default.
venusEnable Vulkan-over-virtio (Venus) on the virtio-gpu-gl device. Experimental; needs a Venus-capable QEMU and a host Vulkan driver (MoltenVK on macOS).
host_memHost memory window for Venus blob resources, e.g. 8G (only with venus: true).

On a macOS host, mode: virtio emits virtio-gpu-gl-pci with -display cocoa,gl=es; mode: passthrough is rejected (VFIO is Linux-only). See docs/macos.md.

uefi

FieldDescription
enabledEnable UEFI boot (OVMF)
vars_pathPath to OVMF_VARS.fd (mutable EFI variables store)

spice

FieldDescription
portHost port for the SPICE display server
disable_ticketingAllow unauthenticated SPICE connections