Docs · Getting started

Your first machine

Creating, starting and reaching a virtual machine, from the app and from the command line.

From the app

Open New Machine, pick a guest type and a hardware profile, and attach an installer if the guest needs one. Profiles are fitted to your Mac: the numbers are scaled against live host metrics, so the machine you create is one the host can actually run. A split meter shows what the guest gets and what macOS keeps.

The Installation Assistant offers four routes in, accepts a dragged ISO anywhere in the window, and states each guest's limits before you commit to the install rather than after it.

From the command line

1vm create dev --guest linux --iso ~/Downloads/ubuntu-arm64.iso
1vm start dev

start runs the machine in the foreground and owns it. Add --detach to hand it to a helper process instead, which is what you want in a script.

The defaults for create are 4 CPUs, 4 GiB of memory and a 64 GiB sparse disk. Override them:

1vm create big --cpu 8 --memory 16GiB --disk 256GiB

The disk figure is a ceiling, not an allocation — a 256 GiB disk consumes only what the guest actually writes.

Installer media

Installer media stays attached across reboots, because a Windows or Linux installer typically reboots midway and still needs its source. When the guest boots on its own, detach it:

1vm eject dev

Reaching the guest

1vm list          # every machine, with state and address
1vm ip dev        # just the address, for scripting
1vm console dev   # open the guest display
1vm info dev      # everything about one machine

For a Linux guest, 1vm ssh dev opens an interactive session and 1vm exec dev -- uname -a runs a single command. Windows guests route the same exec through the guest agent instead of SSH.

To make SSH work without configuring anything by hand:

1vm ssh enable dev
1vm ssh config --install    # adds an Include line to ~/.ssh/config
ssh dev

Stopping

1vm stop dev             # ask the guest to shut down
1vm stop dev --force     # pull the plug
1vm suspend dev          # write memory to disk and power off
1vm start dev            # resumes from that saved memory

suspend is not a snapshot. It saves the running state so the next start picks up where you left off; add --discard-saved-state to cold-boot instead.

Next

Take a snapshot before you change anything — see Snapshots and rollback. It is the habit the whole product is built around.