Glossary

TermDefinitionAliases
labA set of VMs plus the virtual networks connecting them, declared in a lab {} block in vmlab.wcl.
segmentA virtual layer-2 switch. The lab daemon supplies DHCP, DNS, NAT, routing and L3 filtering for it in userspace.network segment
templateA sealed, read-only qcow2 disk image in the store, referenced by <arch>/<name>[@<version>]. Labs boot linked clones of it.
linked cloneA copy-on-write qcow2 overlay a lab VM boots, backed by a template. The template is never written to.clone
storeThe local template store at ~/.local/share/vmlab/templates/. Writes are serialised by the supervisor.template store
provisionA wscript script run on vmlab up (and during template builds) to set a guest up. A failure fails vmlab up.provision script
event handlerA wscript script bound with on "event" {} that reacts to a lifecycle event via fn handle(event, lab). Failures are logged, never fatal.handler
supervisorThe per-user daemon vmlabd, auto-started by the CLI. Owns the lab registry, global segments, store writes and host watchdogs.vmlabd
lab daemonThe per-lab daemon spawned by the supervisor on vmlab up. Owns QEMU, the network fabric, snapshots and the wscript runtime.
profileA named set of hardware defaults (machine, firmware, TPM, disk bus, NIC, display, CPUs/memory) chosen with profile = "...".guest OS profile
scoped provisionA provision "x" { vms = [...] }: it runs against those VMs and gates depends_on on them, so dependents wait for it.
scratch VMA VM booted from a blank disk (template = "scratch") with no template, requiring explicit arch, profile and disk.
OCI artifactHow a template is stored in a registry: a non-runnable artifact (frozen media type) whose qcow2 is chunked into zstd layers.
wscriptvmlab's statically typed, Rust-flavoured scripting language for guest automation. Compiled and type-checked at vmlab validate time.
guest agentThe QEMU guest agent running inside a VM. vm.is_ready() / vm.wait_ready() test it; vm.exec / copy_to / copy_from use it.QEMU guest agent