Image Library
Prepare restore images before creating a machine.
Start with the desktop app workflow for restore images, virtual machines, disposable
templates, runbooks, and the guest agent. The boa CLI reference follows for
automation and terminal-driven workflows.
The Box of Apples app keeps VM setup, runtime state, disposable clones, automation, and collected artifacts in one place. The app and CLI share the same library, so you can move between visual workflows and scripts without duplicating state.
Prepare restore images before creating a machine.
Create, install, run, pause, inspect, and clean up VM bundles.
Seal known-good baselines and spawn fast disposable runs.
Stage files, execute guest steps, wait for screen state, and collect results.
Use the Image Library to collect and validate the IPSWs you trust before creating or reinstalling VMs.
Create macOS VMs from restore images, install macOS, tune their hardware, and manage runtime state from the VM library.
Templates are the fast path for repeatable experiments: keep a clean baseline, run a temporary copy, and decide later whether it should become permanent.
Console windows are designed for repeated lab sessions, including temporary and sealed VM startup flows.
The guest agent turns a running VM into an automation target. Runbooks make those actions reusable and traceable.
Box of Apples includes the boa command-line tool for managing settings,
restore images, virtual machines, and templates from scripts or headless workflows.
Use a command group and subcommand, then add options for the exact resource you want to inspect or change.
boa <command> <subcommand> [options]
boa settings
boa image
boa vm
boa template
Settings control default VM creation behavior, external IPSW URL handling, and serial randomization.
nat | bridged
asif | raw
integer >= 20
true | false
true | false
boa settings show [--json]
boa settings set <key> <value>
boa settings show
boa settings show --json
boa settings set default-network nat
boa settings set default-disk-size 80
boa settings set default-disk-format asif
boa settings set allow-external-ipsw-urls true
Restore image commands manage the IPSW library used when creating macOS virtual machines.
boa image list [--json]
boa image show --id <image-uuid> [--json]
boa image import <path-to-ipsw> [--json]
boa image discover-latest [--json]
boa image download-latest [--json]
boa image download-url <https-url-to-ipsw> [--json]
boa image delete --id <image-uuid>
boa image reveal --id <image-uuid>
boa image list
boa image discover-latest
boa image download-latest
boa image import ~/Downloads/macOS.ipsw
boa image download-url https://example.com/macOS.ipsw
boa image show --id <image-id>
boa image delete --id <image-id>
boa image reveal --id <image-id>
VM commands cover library inspection, creation, installation, runtime control, lifecycle logs, and conversion of disposable machines into persistent VMs.
boa vm list [--json]
boa vm show --id <vm-uuid> [--json]
boa vm logs --id <vm-uuid> [--json]
boa vm reveal --id <vm-uuid>
boa vm create \
--image <image-uuid> \
[--name <name>] \
[--cpu-count <count>] \
[--memory-mi-b <memory-mib>] \
[--disk-size <gib>] \
[--disk-format asif|raw] \
[--network nat|bridged] \
[--randomize-serial-at-startup] \
[--json]
boa vm install --id <vm-uuid> [--json]
boa vm update \
--id <vm-uuid> \
[--name <name>] \
[--cpu-count <count>] \
[--memory-mi-b <memory-mib>] \
[--network nat|bridged] \
[--audio-output] \
[--audio-input] \
[--randomize-serial-at-startup] \
[--json]
boa vm start [--id <vm-uuid> | --name <name>] [--headless] [--recovery] [--json]
boa vm stop [--id <vm-uuid> | --name <name>] [--json]
boa vm suspend [--id <vm-uuid> | --name <name>] [--json]
boa vm resume [--id <vm-uuid> | --name <name>] [--json]
boa vm delete --id <vm-uuid>
boa vm convert-persistent --id <vm-uuid> [--json]
boa vm create \
--image <image-id> \
--name Tahoe-Lab \
--cpu-count 4 \
--memory-mi-b 8192 \
--disk-size 80 \
--disk-format asif \
--network nat
boa vm install --id <vm-id>
boa vm start --name Tahoe-Lab
boa vm start --name Tahoe-Lab --headless
boa vm start --name Tahoe-Lab --recovery
boa vm stop --name Tahoe-Lab
boa vm suspend --name Tahoe-Lab
boa vm resume --name Tahoe-Lab
boa vm delete --id <vm-id>
Template commands turn a persistent VM into a reusable baseline, then create disposable machines from it for repeatable test runs.
boa template seal --id <vm-id>
boa template list
boa template create-disposable --id <template-id> --name Tahoe-Disposable
boa vm start --name Tahoe-Disposable
boa template unseal --id <template-id>