# Frequently asked questions
Practical answers about compatibility, installation, networking, and everyday use.

## What is Cube?
Cube is a lightweight virtual machine monitor built in Rust on Apple's Hypervisor.framework, with a Swift macOS companion and the cubectl command-line manager. It runs ARM64 guests on Apple Silicon.

## Which Macs can run it?
The documented baseline is Apple Silicon and macOS 15 or later. The project uses the native GICv3 hypervisor APIs introduced with that macOS generation. This setup does not target Intel Macs.

## Which FreeBSD workflows are documented?
The repository documents ARM64 FreeBSD live shells, persistent installations, UEFI/ZFS boot, and graphical desktops. Support varies by workflow: shared-folder testing is documented for FreeBSD 14.4, for example. Consult each guide for the validated configurations.

## Can it emulate an x86 operating system?
Cube uses native ARM64 virtualization. An x86 guest-emulation workflow is not documented by this project.

## Where do I download Cube.app?
[Download the notarized DMG](../downloads/Cube.dmg), open it, and drag Cube.app into Applications. Launch the installed app from Applications. The download requires Apple Silicon and macOS 15 or later. See [Getting started](getting-started.html) for the app and bundled command-line tools.

## Is there a one-command Homebrew install?
These guides use Cube.app and its bundled cube and cubectl commands. Use the direct DMG download; a Homebrew cask is not documented here. Start with [Getting started](getting-started.html).

## Does the first live shell install FreeBSD?
No. Launching a kernel and mini-memstick image with cube boots a live environment. A persistent installation is a separate step; see [Getting started](getting-started.html).

## Does Cube need root privileges?
It depends on the networking path. The CLI network service can run with sudo while guests use vmnet-proxy as your user. The properly provisioned Cube.app helper can run without sudo. An offline guest does not need that network service. See [Networking](networking.html).

## Why does networking fail after rebuilding the app?
The rebuild replaces the bundled helper and clears its provisioning. The unprivileged app networking path requires an Apple-granted entitlement and matching provisioning profile; sign it again after rebuilding. Open the service log for the actual startup error.

## Can a guest use my LAN instead of NAT?
Yes, the service supports a bridged mode on a selected host interface. Stop the current NAT service before starting the bridged service. Guests attached to a restarting service are disconnected. See [Networking](networking.html).

## Can I share files without networking?
Yes. VirtIO-9P sharing works without a guest network interface. The documented tested guest is FreeBSD 14.4 ARM64. Shares are read-only by default and must be mounted inside the guest. See [Shared folders](shared-folders.html).

## Are shared folders copies of my Mac files?
No. They expose the original host directory. A --share-rw export allows guest changes to those host files within the launching user's permissions. Use the default read-only export when edits are unnecessary.

## Can I use a graphical desktop?
The documented FreeBSD desktop workflow supports a native Cocoa/Metal window or VNC. It uses a simple framebuffer. There is no 3D acceleration, runtime display resizing, or clipboard synchronization. See [Desktop and troubleshooting](troubleshooting.html).

## Can I connect to VNC from another computer?
The VNC server binds to loopback and supports one client at a time. Use an SSH tunnel for remote access rather than exposing the VNC listener directly.

## What is the difference between shutdown and stop?
Shutdown asks the guest to power off over configured SSH. Stop terminates the host VM process, allowing backend cleanup before a forced-kill fallback. Prefer a guest shutdown for normal use. Ctrl-] is also a host-side exit, not a clean guest shutdown.

## Where are VM files and logs stored?
VM configurations and disks default to ~/Cube/<NAME>/. Runtime state and logs default to ~/.local/state/cube/<NAME>/. Paths can be configured. New runs replace run logs, so save diagnostic logs before restarting.

## Does Cube support snapshots?
The documented overlay tools inspect and export disk contents offline. That is different from a full VM snapshot containing RAM and device state. Do not treat disk overlays as a documented suspend/resume feature.

## Why is the IP address missing from status?
The manager reports the address learned from guest DHCP. It can be unknown during startup, after a NIC reset, or when the guest uses a static address. A missing address alone does not mean the VM is stopped.

## Is Cube open source?
Yes. Cube is licensed under Apache 2.0. Third-party dependencies and firmware retain their own licenses. Explore the [source repository](https://github.com/darcyliu/cube).
