cubeDOCUMENTATION

CUBE / DOCUMENTATION

Manage your virtual machines

Use cubectl to give guests a name, inspect their state, and control their lifecycle.

Use the installed CLI

Open Cube.app and choose Open Terminal (Cube Environment), or use a terminal with cubectl on PATH. Replace freebsd-dev with the name of a VM you have already installed. Creating a configuration alone does not install an operating system.

cubectl list
cubectl start freebsd-dev
cubectl status freebsd-dev

The native CLI is written in Rust and is also bundled in Cube.app. Python is used by some installation and verification scripts, not by the CLI itself.

Create and install FreeBSD

Use a new VM name and let cubectl download the official FreeBSD ARM64 disc1 ISO. The unattended installer partitions the disk and installs FreeBSD before the command returns:

cubectl create freebsd-dev \
  --version 14.4 --unattended \
  --ram 2048 --cpus 2 --ssh-port 2222

After installation, start the network service as described in Getting started, then boot the installed guest:

cubectl start freebsd-dev

Enable the guest SSH server and configure authentication before using the SSH example. For an interactive installation from a local ISO, consult `cubectl create --help` and eject the installer ISO after setup.

Connect over SSH

The guest needs a running SSH server, a reachable endpoint, and valid credentials. Port forwarding and shutdown connection settings belong in the VM configuration. Consult the CLI help for your build:

cubectl ssh --help
cubectl ssh freebsd-dev

Shut down cleanly

Shutdown requests a guest poweroff over batch-mode SSH. It requires the configured SSH endpoint and authentication to work. By default, a timeout leaves the VM running.

cubectl shutdown freebsd-dev --timeout 120

If the guest is unresponsive, stop terminates the host VM process and allows backend cleanup before its forced-kill fallback. This is not an orderly guest shutdown; use it only when that is the intended action.

cubectl stop freebsd-dev --timeout 10

Find configuration and logs

VM configuration and disks default to ~/Cube/<NAME>/. Runtime state and logs default to ~/.local/state/cube/<NAME>/. Look for vmm.log, console.log, and manager.log. A new run replaces run logs, so save relevant logs before restarting when diagnosing a failure.

JSON paths are relative to the configuration file. Command-line override paths are relative to your current directory. Overrides on start affect that run without rewriting the saved configuration.

Understand resource ownership

Managed VMs reserve writable disks, overlays, and TCP listeners to prevent conflicting use. Read-only media can be shared. If startup reports a conflict, inspect other running VMs rather than deleting lock or state files.

Full VM snapshots containing memory and device state are not covered by the documented disk-overlay workflow. Offline overlay inspection and export operate on disk contents.

Reference

The VM management runbook covers configuration fields, creation, installation, overrides, and lifecycle behavior. The overlay guide explains offline disk tools.

Based on the Cube repository documentation and CLI inspected October 21, 2026. Commands describe documented workflows; guest installs were not rerun for this website update. Download Markdown ↓