Create a Linux virtual machine from the command line
Create and boot a Linux virtual machine on an Apple silicon Mac with a single 1vm command. Prepared environment recipes install Node.js, Python, Go or Rust and leave a clean snapshot behind, so a development box needs no ISO and no golden image.
Step by step
1vm create dev --recipe nodeDownloads a Debian 13 ARM64 base image, installs and checks Node.js, then leaves the machine stopped on a clean snapshot.
1vm recipe listThe catalog: clean Debian, Node.js, Python, Go and Rust, with the packages each one installs.
1vm start devBoot it. Add --detach to hand it to a helper process and get your shell back.
1vm ssh devAn interactive shell in the guest. `1vm exec dev -- <cmd>` runs one command instead.
Worth knowing
- A recipe machine is prepared once. `1vm recipe status dev --json` reports setup state and the installed tool versions, and `1vm recipe retry dev` re-runs a failed preparation.
- `--no-start` downloads and seeds the machine without booting it, so preparation can run later.
- Free keeps two machines in the library and runs one at a time. Recipes, guests and speed are identical on both tiers.
The long version
This page is the short path. For the whole area in prose — the options, the edge cases and what to do when it does not work — read Your first machine.
Related
Run Windows on Apple silicon
The first-party 1VM engine boots Windows on ARM without QEMU — installed from your own ISO, with the virtio drivers attached.
Read it →Clone a golden image
A linked clone shares blocks with its golden, so ten machines cost roughly one — and each throws away independently.
Read it →Snapshot and restore a VM
A snapshot is an APFS clone, not a copy — take and restore finish in well under a millisecond no matter how big the disk.
Read it →Frequently asked questions
Do I need to download an ISO?
Not for a recipe. `1vm create <name> --recipe <id>` fetches a Debian 13 ARM64 base image itself. You only supply an ISO when you want a distribution the recipes do not cover, with `--iso <path>`.
Which Linux distributions run?
Anything with an ARM64 build. Apple's Virtualization.framework is the default Linux path and is the mature one; `1vm guide linux` prints what is supported and what is not before you commit.
How do I give it more CPU or memory?
At create time with `--cpu <n>`, `--memory 8GiB` and `--disk 64GiB`, or afterwards with `1vm set <vm> <key> <value>`, which applies live where the backend supports it.