Cua Docs

CLI Reference

Command Line Interface reference for Lume

A lightweight CLI and local API server to build, run and manage macOS VMs.

Documented against Lume 0.3.10. Run lume --version for your installed version.

For installation steps, see Install Lume.

VM Management#

lume create#

Create a new virtual machine

Arguments:

NameTypeRequiredDescription
<name>StringYesName for the virtual machine

Options:

NameTypeDefaultDescription
--osStringmacOSOperating system to install (macOS or linux)
--cpuInt4Number of CPU cores
--memoryString8GBMemory size (e.g., 8GB)
--disk-sizeString50GBDisk size (e.g., 50GB)
--displayString1024x768Display resolution (e.g., 1024x768)
--ipswString-Path to IPSW file or 'latest' for macOS VMs
--storageString-VM storage location to use
--unattendedString-[Preview] Preset name or path to YAML config file for unattended macOS Setup Assistant automation. Built-in presets: sequoia, tahoe. Only supported for macOS VMs.
--debug-dirString-Custom directory for debug screenshots during unattended setup (defaults to unique folder in system temp)
--vnc-portInt0Port to use for the VNC server during unattended setup. Defaults to 0 (auto-assign)

Flags:

NameDefaultDescription
--debugfalseEnable debug mode for unattended setup - saves screenshots with click coordinates
--no-displayfalseDo not open the VNC client during unattended setup (default: true for unattended)

lume clone#

Clone an existing virtual machine

Arguments:

NameTypeRequiredDescription
<name>StringYesName of the source VM
<new-name>StringYesName for the cloned VM

Options:

NameTypeDefaultDescription
--source-storageString-Source VM storage location
--dest-storageString-Destination VM storage location

lume run#

Run a virtual machine

Arguments:

NameTypeRequiredDescription
<name>StringYesName of the VM or image to run (format: name or name:tag)

Options:

NameTypeDefaultDescription
--shared-dir[String]-Directory to share with the VM (format: path or path:ro or path:rw)
--mountString-For Linux VMs only, attach a read-only disk image
--usb-storage[String]-Disk image to attach as USB mass storage device
--registryStringghcr.ioContainer registry URL
--organizationStringtrycuaOrganization to pull from
--vnc-portInt0Port for VNC server (0 for auto-assign)
--recovery-modeBoolfalseFor macOS VMs only, boot in recovery mode
--storageString-VM storage location to use

Flags:

NameDefaultDescription
-d, --no-displayfalseDo not start the VNC client

lume stop#

Stop a virtual machine

Arguments:

NameTypeRequiredDescription
<name>StringYesName of the VM to stop

Options:

NameTypeDefaultDescription
--storageString-VM storage location to use

lume delete#

Delete a virtual machine

Arguments:

NameTypeRequiredDescription
<name>StringYesName of the VM to delete

Options:

NameTypeDefaultDescription
--storageString-VM storage location to use

Flags:

NameDefaultDescription
--forcefalseForce deletion without confirmation

VM Information and Configuration#

lume get#

Get detailed information about a virtual machine

Arguments:

NameTypeRequiredDescription
<name>StringYesName of the VM

Options:

NameTypeDefaultDescription
-f, --formatStringtextOutput format
--storageString-VM storage location to use

lume set#

Set new values for CPU, memory, and disk size of a virtual machine

Arguments:

NameTypeRequiredDescription
<name>StringYesName of the VM

Options:

NameTypeDefaultDescription
--cpuInt-New number of CPU cores
--memoryString-New memory size (e.g., 8GB)
--disk-sizeString-New disk size (e.g., 100GB)
--displayString-New display resolution
--storageString-VM storage location to use

lume ls#

List virtual machines

Options:

NameTypeDefaultDescription
-f, --formatStringtextOutput format (json or text)
--storageString-Filter by storage location name

Image Management#

lume pull#

Pull a macOS image from GitHub Container Registry

Arguments:

NameTypeRequiredDescription
<image>StringYesImage to pull (format: name:tag)
<name>StringNoName for the resulting VM

Options:

NameTypeDefaultDescription
--registryStringghcr.ioContainer registry URL
--organizationStringtrycuaOrganization to pull from
--storageString-VM storage location to use

lume push#

Push a macOS VM to GitHub Container Registry

Arguments:

NameTypeRequiredDescription
<name>StringYesName of VM to push
<image>StringYesImage tag (format: name:tag)

Options:

NameTypeDefaultDescription
--additional-tags[String]-Additional tags to push
--registryStringghcr.ioContainer registry URL
--organizationStringtrycuaOrganization to push to
--storageString-VM storage location to use
--chunk-size-mbInt512Chunk size for upload in MB

Flags:

NameDefaultDescription
--verbosefalseEnable verbose logging
--dry-runfalsePrepare files without uploading
--reassembletrueVerify integrity by reassembling chunks

lume images#

List available macOS images from local cache

Options:

NameTypeDefaultDescription
--organizationStringtrycuaOrganization to list images for

lume ipsw#

Get macOS restore image IPSW URL

lume prune#

Remove cached images

Guest Access and Setup#

lume ssh#

Connect to a VM via SSH or execute commands remotely

Arguments:

NameTypeRequiredDescription
<name>StringYesName of the virtual machine
<command>[String]NoCommand to execute (omit for interactive shell)

Options:

NameTypeDefaultDescription
-u, --userStringlumeSSH username
-p, --passwordStringlumeSSH password
--storageString-Storage location name or path
-t, --timeoutInt60Command timeout in seconds (0 for no timeout)

lume setup#

[Preview] Run unattended Setup Assistant automation on a macOS VM

Arguments:

NameTypeRequiredDescription
<name>StringYesName of the virtual machine

Options:

NameTypeDefaultDescription
--unattendedString-Preset name or path to YAML config file for unattended macOS Setup Assistant automation. Built-in presets: sequoia, tahoe.
--storageString-VM storage location to use or direct path to VM location
--vnc-portInt0Port to use for the VNC server. Defaults to 0 (auto-assign)
--debug-dirString-Custom directory for debug screenshots (defaults to unique folder in system temp)

Flags:

NameDefaultDescription
--no-displayfalseDo not open the VNC client automatically
--debugfalseEnable debug mode - saves screenshots with click coordinates

Configuration and Server#

lume serve#

Start the VM management server

Options:

NameTypeDefaultDescription
--portInt7777Port to listen on

lume config#

Get or set lume configuration

Subcommands:

  • lume config get - Get current configuration
  • lume config storage - Manage VM storage locations
    • lume config storage add - Add a new VM storage location
    • lume config storage remove - Remove a VM storage location
    • lume config storage list - List all VM storage locations
    • lume config storage default - Set the default VM storage location
  • lume config cache - Manage image cache settings
    • lume config cache status - Show cache status and directory
    • lume config cache dir - Get or set cache directory
    • lume config cache enable - Enable image caching
    • lume config cache disable - Disable image caching

lume logs#

View lume serve logs

Subcommands:

  • lume logs info - View info logs from the daemon
    • -n, --lines - Number of lines to display
  • lume logs error - View error logs from the daemon
    • -n, --lines - Number of lines to display
  • lume logs all - View both info and error logs
    • -n, --lines - Number of lines to display

Global Options#

These options are available for all commands:

  • --help - Show help information
  • --version - Show version number