Docs · Reference

The 1vm command line

Full command reference. Every action in the app has a command, because both front ends are clients of the same core.

1vm is not a wrapper around the app, and the app is not a wrapper around 1vm. Both are clients of the same library, which is why nothing you can click is impossible to script.

1vm <command> [options]
1vm --help
1vm snapshot --help

Machines

CommandWhat it does
listEvery machine, with state and address
create <name>Create a machine
info <vm>Everything about one machine
config <vm>Print the machine's definition file
get <vm> [key]Read one setting, or list all dotted keys
set <vm> <key> <value>Change a setting, live where supported
rm <vm> --forceDelete a machine and all its snapshots
clone <vm> <name>Linked clone (--full, --rekey-ssh)
archive <vm>Compress a stopped machine; run again to restore
rollback <vm> on|offDiscard all changes at power-off
duDisk usage across the library
logs <vm>Guest serial and host lifecycle logs

logs takes --source all|guest|host, --lines N and --follow.

Running

CommandWhat it does
start <vm>Run in the foreground; --detach to background it
stop <vm> [--force]Ask the guest to shut down, or pull the plug
pause / resume <vm>Freeze and unfreeze
suspend <vm>Save memory to disk and power off
eject <vm>Detach the installer once the guest boots on its own
console <vm>Open the guest display
configure <vm>Open the settings window
ip <vm>The guest address, bare, for scripting
ports <vm>Listening TCP and UDP ports discovered in the guest
storageOpen the storage window
config-global list|get|setLibrary memory budget and Linux port defaults

start resumes a suspended machine; add --discard-saved-state to cold-boot instead. --hold-on-crash keeps a Windows bug-check painted on screen instead of resetting it away.

Snapshots

CommandWhat it does
snapshot take <vm> [name]Capture state
snapshot list <vm>The snapshot tree
snapshot restore <vm> <ref>Go back to a snapshot
snapshot rm <vm> <ref> [-r]Delete one, or a branch
reset <vm> --forceBack to the clean state
discard-session <vm> --forceBack to the snapshot this boot started from

Docker

CommandWhat it does
engine setupDownload and provision the managed Debian engine
engine start|stop|restartManage the engine VM (stop --force is available)
engine status [--json]State, socket and owned Docker context
engine logsSetup and daemon diagnostics
engine service-stopStop socket activation without deleting data
engine delete --forceDelete the engine and all its container data
docker <args…>The Docker CLI through the private engine socket

engine setup --no-start prepares the disk without the first boot. docker starts a stopped engine on first connection and never changes the selected global Docker context. See Docker.

Host

CommandWhat it does
capabilitiesWhat this Mac can and cannot do
doctorHost, entitlements, library, engines
guide <linux|macos|windows|omarchy>What a guest supports, and what it does not
guide rosettaRunning x86 binaries in a Linux guest
passport [<vm>]Capability matrix as markdown, or --json
macos images|downloadCached restore images, and Apple's latest
debug metrics <vm>Engine performance counters

Guest access

CommandWhat it does
wait-ready <vm>Poll SSH (Linux) or the guest agent (Windows)
exec <vm> -- <cmd…>Run one command in the guest
ssh <vm> [-- <cmd…>]Interactive SSH
ssh enable|disable <vm>Turn Mac-to-guest SSH on or off
ssh config --installAdd the Include line to ~/.ssh/config
ssh keys <vm>Machine key (--regenerate, --print-public)
ssh trust <vm>Pin the guest host key (--relearn)

wait-ready is the one that makes scripts reliable — it blocks until the guest is actually reachable rather than merely running.

Automation

CommandWhat it does
task run -- <cmd…>Clone a golden image, wait, exec, dispose
template pin|unpin|listThe golden image library
golden capture <vm>Record a firmware and first-boot golden
agent gcDelete stopped machines an agent created
mcp serveMCP JSON-RPC on stdio
mcp install-snippet [host]Config JSON for Claude, Cursor or generic

Create options

OptionMeaning
--guest linux|macos|windowsGuest type, default linux
--hypervisor apple|nativeEngine. Windows defaults to native
--cpu <n>CPU count, default 4
--memory <size>e.g. 4GiB, default 4 GiB
--disk <size>e.g. 64GiB, default 64 GiB
--iso <path>Installer media, attached until ejected
--from-folder <path>A host folder as removable install media
--drivers <path>virtio-win ISO for a Windows guest
--restore-image <path|build>macOS restore image
--from <golden>Linked-clone a pinned golden (--full to copy)
--storage virtio-block|nvmeDisk controller; nvme for Windows
--network nat|host-only|bridged:en0Networking
--share tag:/host/path[:ro]Shared folder, repeatable
--clipboardShare the Mac clipboard both directions
--rosettax86 translation in a Linux guest
--agent-readyGenerate an SSH key and cloud-init for exec
--preset omarchyThe Omarchy recipe

Global options

--json for machine-readable output, --quiet / -q for errors only, --force / --yes to skip confirmation, --detach to background a start, and --version.

Exit codes

CodeMeaning
0ok
1failed
2usage
3not found
4wrong state
5unsupported

Destructive commands refuse with exit 4 rather than prompting, unless you pass --force. There are no interactive prompts anywhere, by design.