Configuration
Vee reads a single global configuration file at ~/.vee/config.yaml. It is
created empty on first run, and every key is optional — anything you omit falls
back to a built-in default. Edit the file and the new values take effect on the
next vee command.
The two directories that grow large are the VM storage directory (each VM’s
qcow2 disk images and per-VM state) and the image cache (downloaded ISOs and
cloud base images). Both can live on a different disk or directory of your
choosing:
# ~/.vee/config.yaml
storage_path: /mnt/bigdisk/vee/vms # qcow2 disks + per-VM state
iso_cache_path: /mnt/bigdisk/vee/iso # downloaded ISOs / cloud images
storage_path— parent directory for every VM. Each VM gets its own subdirectory<storage_path>/<name>/. Default:~/.vee/vms.iso_cache_path— wherevee pullcaches installer ISOs and cloud base images. Default:~/.vee/iso.
Vee creates these directories on demand, so a not-yet-existing path is fine as long as your user can write to the target filesystem and it has enough space.
An absolute path (starting with /) is used as written and can point
anywhere. A relative path is resolved against ~/.vee — never against the
directory you ran vee from — so storage_path: vms means ~/.vee/vms.
Changing a path does not move data already on disk. To relocate:
- Stop running VMs (
vee stop <name>). - Move the directory, e.g.
mv ~/.vee/vms /mnt/bigdisk/vee/vms. - Set the matching key to the new absolute path in
~/.vee/config.yaml. - Start a VM to confirm the new location is used.
The image cache can instead simply be re-populated with vee pull.
storage_path moves every VM. To relocate just one VM’s boot disk — say onto a
fast NVMe — pass a directory to vee create:
vee create win --template windows --boot-disk-path /mnt/nvme
The value is a directory; vee keeps its generated disk filename inside it
(/mnt/nvme/disk-win-<size>.qcow2) and persists the path in the VM’s vm.yaml.
Only the boot disk image moves — the VM’s metadata, logs, and sockets stay under
<storage_path>/<name>/. This differs from --boot-disk, which boots from a raw
host block device via passthrough; with a raw --boot-disk there is no managed
qcow2 disk to relocate.
The same file also configures firmware/binary paths (ovmf_code_path,
qemu_binary_path, …), VM defaults (default_memory, default_cpus,
default_disk_size, …), and the pacman mirror. See
the full reference in the repo.