Skip to main content
Use a virtual machine for isolated macOS workloads, parallel jobs, and fast create-delete cycles.

Create

Choose an image from the catalog, then replace IMAGE_NAME with its name:
Create discloses the prepaid hold it will place and asks you to confirm before committing. Pass -y (--yes) to skip the prompt in automation. See Billing for funds and readiness. The CLI creates or reuses ~/.ssh/id_ed25519 and sends only its public key. The private key stays on your workstation. Add application ports at creation:
The names ssh, screen, vnc, and desktop, and guest ports 22 and 5900, are reserved for built-in access.

Connect

Open SSH:
Open Apple Screen Sharing:
List published ports:
Forward the web port to local port 18080:
Every connection uses a private, authenticated tunnel. Guest addresses are not public.

Inspect and delete

Deleting a VM keeps its image available.

Use kubectl

After configuring kubectl, create build-vm.yaml. Replace IMAGE_NAME with a catalog name and SSH_PUBLIC_KEY with the contents of ~/.ssh/id_ed25519.pub.
Apply and inspect it:
Use the lifecycle contract when polling. status.publishedPorts contains the supported command for each available port. Run that command instead of constructing a transport URL. Delete the VM:
See Images to choose an image.