cubeDOCUMENTATION

CUBE / DOCUMENTATION

Build from source

Developer setup for building Cube, signing local binaries, and running repository helpers.

Prerequisites

Use Apple Silicon and macOS 15 or later. Install Git, Make, Rust with Cargo, Xcode Command Line Tools, dtc, and xz. Installation and verification scripts also require Python 3. Internet access is needed for source and guest media downloads.

xcode-select -p
rustc --version
cargo --version
dtc --version
xz --version

Build and sign the CLI

Run from your normal user account:

git clone https://github.com/darcyliu/cube.git
cd cube
make all
./target/debug/cubectl --help
./target/debug/cube --help

The build signs the local binaries with the hypervisor entitlement. It does not provision the separate networking entitlement required by the app helper.

Expose commands in your terminal

The install-cli target links the development binaries into ~/.local/bin. Keep the checkout and its built binaries in place when using those links.

make install-cli
export PATH="$HOME/.local/bin:$PATH"
cubectl --help
cube --help

For everyday commands, return to Getting started.

Build the app

The app target produces a development app bundle. Networking through that app requires an Apple-granted entitlement, a matching profile, and signing after each rebuild. See the app signing runbook.

make app

Fetch firmware and test an offline boot

These repository targets download UEFI firmware or FreeBSD boot media:

make fetch-uefi
make freebsd-root NET=none

The live-shell target downloads a kernel and mini-memstick image; it does not install FreeBSD. NET=none avoids the need for a running guest network service.

Repository installation helpers

For a source-based automated installation, start the development service in a second terminal. Run the target as your normal user; it invokes sudo only for the service:

make vmnet-service

Then run the installer from the repository in the first terminal. It requires Python 3 and downloads or reuses media:

python3 -B scripts/install-vm.py --version 14.4 --unattended --name freebsd-dev

For the documented XFCE desktop workflow, use a separate VM name:

python3 -B scripts/install-vm.py --version 14.4 --unattended --desktop xfce --name work

Retain the generated credentials and artifacts. Use the exact launch command printed by the installer. Desktop packages require guest internet. The desktop runbook documents verification scope and release-specific behavior.

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 ↓