First-run setup
First-run setup is a terminal TUI: hal0 setup. It detects your hardware,
picks a coherent set of slots, models, and extensions, and provisions them —
no browser required. hal0 ships with no default model stack by design; setup is
where you choose one (or skip and configure manually later).
hal0 setupThe flow
Section titled “The flow”hal0 setup is a two-column terminal app: an interactive picker on the left
over an always-on context pane (detected RAM, GPU, NPU) on the right. It walks:
-
Model storage — the directory every slot container reads and writes model files to. Defaults to
/var/lib/hal0/models; override with--storage-dir. -
Extensions — opt-in apps and agents, auto-wired on apply:
Extension Kind Default Open WebUI app on ComfyUI app (image/video, iGPU) on Hermes agent (conversational, with memory) on Pi agent (coding) off -
Main model — the chat model for the
chatslot, anchored to a hardware-fit tier (see below). -
Agent model — the model backing the bundled agent slot.
-
NPU — when an AMD XDNA NPU + FastFlowLM are present, enable the NPU trio (chat + STT + embed passengers on one
flm serve).
Setup then applies your selection — in-process when run at install time, or via
the running API (POST /api/install/apply-selections) when the daemon is up —
creating the slot containers in OFFLINE and seeding background model pulls. It
writes the first-run sentinel on completion.
Hardware-anchored tiers
Section titled “Hardware-anchored tiers”The main-model step is anchored to four tiers; the highest that fits your detected memory is recommended, and tiers that exceed your pool are flagged.
| Tier | Fits |
|---|---|
| hal0-Lite | smaller hosts — a tiny chat model only |
| hal0-Default | mid-range — chat + embed/rerank + voice |
| hal0-Pro | larger unified memory — adds a coder model + image generation |
| hal0-Max | high-memory Strix Halo — adds the NPU trio |
| Flag | Effect |
|---|---|
--auto | Non-interactive; apply the recommended defaults. |
--storage-dir <path> | Model storage directory (default /var/lib/hal0/models). |
--no-pull | Create slots + write the sentinel, but download nothing. |
--no-extensions | Skip extensions (under --auto). |