cubeFOR APPLE SILICON
SMALL FOOTPRINT. WHOLE NEW WORLD.

A home for FreeBSD.
Right on your Mac.

Your favorite system. Your everyday machine.
Run FreeBSD on Apple Silicon with a lightweight,
native virtual machine monitor built in Rust.

Apple Silicon · macOS 15+ · 8.4 MB DMG · Notarized by Apple

Cube dashboard managing a running FreeBSD 14.4 ARM64 virtual machine
ACTUAL CUBE DASHBOARD · MANAGE A RUNNING FREEBSD VM
Built for your Mac.Apple SiliconRust + SwiftHypervisor.frameworkFreeBSD ARM64

A FAMILIAR PLACE TO EXPLORE

Your desktop.
Your terminal.
Your workflow.

Bring a different operating system into your day.
Keep the tools and the Mac you already love.

▣

A window into your guest.

Open a FreeBSD desktop in a native Cocoa and Metal window. Or connect through the built-in VNC server.

Explore desktop support ↗
>_

At home in the terminal.

Give your VMs a name. Start them, check their status, and manage their configuration with cubectl.

Meet cubectl ↗
⌘

Connected to your world.

Use NAT or bridged networking. Share host folders with your guest, even when networking is off.

See shared folders ↗

CLOSE TO THE METAL

A small foundation.
A whole operating system.

Cube uses Apple’s Hypervisor.framework directly, with a Rust virtual machine monitor and a Swift menu bar companion. Real hardware virtualization, with the source open to explore.

Look under the hood ↗
FreeBSD
◈   Cube RUST VMM
Hypervisor.framework macOS
Apple Silicon ARM64

YOUR TERMINAL. YOUR FREEBSD.

From first boot
to everyday workflow.

Create a FreeBSD VM, connect over SSH, and share your project files. Keep it all a command away with cubectl.

  • Named VMs with readable JSON configuration
  • SSH access from your Mac’s terminal
  • VirtIO-9P sharing for your project files

Open Cube.app and choose “Open Terminal (Cube Environment)” to use the bundled cube and cubectl commands. Follow the setup guide for your first VM.

Set up Cube and boot your first FreeBSD guest ↗
# Download FreeBSD and install it unattended
% cubectl create freebsd-dev \
    --version 14.4 --unattended \
    --ram 2048 --cpus 2 --ssh-port 2222

# Boot the installed guest
% cubectl start freebsd-dev

The first command downloads the FreeBSD ARM64 disc1 ISO and completes installation before returning. Start Cube’s network service before booting the installed guest. Installation steps ↗

# Connect to your installed, running guest
% cubectl ssh freebsd-dev

# Inside FreeBSD
# uname -sm
FreeBSD arm64

# exit

Requires guest sshd, a reachable SSH endpoint, and valid credentials. The output above is illustrative. SSH setup ↗

# Start a stopped VM with a read-only export
% cubectl start freebsd-dev \
    --share web-root "$HOME/Projects/web"

# Inside FreeBSD, as root
# kldload virtio_p9fs
# mkdir -p /mnt/web
# mount -t p9fs web-root /mnt/web

The Mac directory must exist. To allow changes to the original host files, use --share-rw. Host and guest commands run in separate terminals. Sharing guide ↗

A CLEAR PATH FROM HERE

Less guessing.
More exploring.

A FEW THINGS TO KNOW

What can I run with Cube?+

Cube runs ARM64 FreeBSD guests on Apple Silicon. Explore live shells, persistent installations, and graphical desktops. See the documentation for verified configurations and current limitations.

Is this a ready-to-download Mac app?+

Yes. Download the notarized DMG, open it, and drag Cube.app into Applications. Launch Cube from Applications and follow the setup guide. Developer instructions are in Build from source.

What are the current desktop limits?+

The display uses a simple framebuffer with a fixed boot-time resolution. There is no 3D acceleration, runtime display resizing, or clipboard synchronization. VNC accepts one loopback client at a time.

Can I explore and contribute?+

Yes. Cube is licensed under Apache 2.0. Browse the source, read the architecture and verification guides, or explore the roadmap on GitHub.

Browse all questions →