Vista

#Systems

The systems Vista installs in one step. Agents pass the id to create_machine; list_systems returns the same list.

#macOS

idSystemNotes
macoslatestmacOS (newest)Today, macOS 27
macos26macOS 26Newest 26.x
macos15macOS 15Newest 15.x
macos14macOS 14Newest 14.x
macos13macOS 13Newest 13.x

Restore images (.ipsw) come from Apple's CDN. The list of versions comes from ipsw.me, which indexes Apple's images for virtual Macs with their sizes and SHA-256 sums; if it can't be reached, Vista finds the newest image in Apple's own software update catalog. A host can only run macOS versions its own macOS supports, and Apple allows at most two macOS machines running at once.

#Windows

idSystemNotes
windows11Windows 11 for Arm, Pro editionExperimental — see Windows

#Linux

idSystemEditionDesktopNotes
ubuntudesktop2604Ubuntu 26.04 LTSDesktopyesGNOME with a graphical installer
ubuntuserver2604Ubuntu 26.04 LTSServernoText installer; offers to install OpenSSH
ubuntudesktop2404Ubuntu 24.04 LTSDesktopyesGNOME with a graphical installer
ubuntuserver2404Ubuntu 24.04 LTSServernoText installer
fedoraworkstationFedora (newest release)WorkstationyesLive GNOME; install from the desktop. Choose "Start Fedora" at the boot menu to skip the media check
fedoraeverythingFedora (newest release)Everything (network)yesGraphical network installer; pick any edition or desktop
debianDebian 13NetinstnoChoose "Graphical install" at the boot menu for the mouse-driven installer
debiandvdDebian 13DVD (offline)noInstalls without a network connection
kaliKali LinuxInstallernoInstalls Xfce. Choose "Graphical install" at the boot menu
centosCentOS Stream 10Network installyesGraphical Anaconda installer
rockyworkstationRocky Linux 10WorkstationyesLive GNOME with an installer
rockyRocky Linux 10Network installyesGraphical Anaconda installer
almagnomeAlmaLinux 10Live GNOMEyesLive GNOME with an installer
almaAlmaLinux 10Network installyesGraphical Anaconda installer
tumbleweedopenSUSE TumbleweedLive GNOMEyesRolling release
tumbleweednetopenSUSE TumbleweedNetwork installyesRolling release, YaST installer
poposPop!_OS 24.04COSMICyesRenders in software: Linux guests have no 3D acceleration
nixosNixOS 26.05GraphicalyesGNOME with the Calamares installer
nixosminimalNixOS 26.05MinimalnoConsole installer
alpineAlpine LinuxVirtualnoTiny. Log in as root and run setup-alpine
alpinestandardAlpine LinuxStandardnoLog in as root and run setup-alpine

"Desktop" means the default boot reaches a graphical installer or a live desktop.

#BSD

idSystemNotes
freebsdFreeBSD (newest release)Text installer. Experimental on this framework
openbsdOpenBSD (newest release)Text installer. Experimental on this framework
netbsdNetBSD (newest release)Text installer. Experimental on this framework

#Anything else

Any Arm64 ISO that boots with UEFI works through Use an Installer on This Mac… (or installer_path for agents). So does any macOS .ipsw.

#How Vista finds the current installer

No entry names a point release. Each says where its publisher puts the files and how to recognise the right one, and Vista asks at the moment you create a machine. "Ubuntu 26.04" means 26.04.1 the day 26.04.1 is published, with no update to Vista.

KindUsed forHow
Directory listingUbuntu, Fedora, Kali, CentOS, Rocky, AlmaLinux, openSUSE, Alpine, the BSDsRead the publisher's directory index and take the newest file matching a pattern. "Newest" compares the first version number in the name, then every number (so dated snapshots sort too). A {n} in the directory means "the newest numbered release directory", trying the next one down when the newest holds only betas.
Checksum listingDebianDebian's directory pages are unreliable, so the file names come from its SHA256SUMS.
Fixed URLNixOSThe channel's latest-… link.
JSON APIPop!_OSSystem76's build API, which also gives the SHA-256.
ApplemacOSipsw.me's index of virtual Mac images; Apple's catalog as the fallback.
MicrosoftWindows 11Microsoft's software download service, with the handshake its own page performs.

Pages that answer with a server error are retried with backoff.

#Checksums

Vista checks the SHA-256 the publisher lists and discards a download that doesn't match. It reads the three shapes distributions publish: HASH file (GNU), SHA256 (file) = HASH (BSD style, including files wrapped in a PGP signature, as Fedora and AlmaLinux publish them), and one-file .sha256 sums. NetBSD publishes only SHA-512, so its downloads are checked by size alone; so are Windows downloads when Microsoft's page doesn't list a hash.

#The installer cache

With Keep installers on (Settings → Downloads), a finished download is recorded in the library, and the next machine of the same system reuses it. Delete Downloads in Settings removes them. A partly downloaded file is kept as <name>.part in the images folder and resumed next time.

#Adding a system

Systems live in crates/kit/src/catalog/: macOS in macos.rs, Linux and the BSDs in linux.rs, Windows in mod.rs. A Linux entry names its id, family, display name, version, edition, source, checksum file and format, whether it boots to a desktop, and a one-line note for the picker.

Check every entry against the live publishers before sending a change:

cargo test -p vista-kit --test catalog -- --ignored --nocapture

It prints what each entry resolves to today and fails on any that don't. A new family also needs a display name in catalog::family_name and a color and monogram in crates/app/src/ui/glyph.rs.

Edit this page on GitHub