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 models pre-loaded by design; setup is
where you pick your first ones (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, picked from a short list of curated suggestions ranked to fit your detected RAM (see below). -
Agent model — the model backing the
coderslot used by agent/coding extensions (Hermes’ coding tools, Pi), from the same kind of ranked list, biased toward coder-tagged picks. -
NPU — when an AMD XDNA NPU + FastFlowLM are present, a yes/no prompt records whether to opt in to NPU inference for this install.
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.
Model suggestions
Section titled “Model suggestions”The Main and Agent model steps each show up to three curated picks — largest-that-fits-your-RAM first, with one starred as recommended — filtered to hal0’s curated model catalogue (so anything you pick already validates against the registry; nothing is invented on the fly):
| Column | Shows |
|---|---|
| Model | Display name of the curated pick |
| Size | On-disk size in GB |
| Ctx | Native context length |
| Backend | The runtime profile it launches with (e.g. rocm-dnse, vulkan, cpu-llm) |
The Agent model step ranks coder-tagged models first, falling back to
general chat picks if none fit — the coder slot should never come up
empty just because no dedicated coding model fits your RAM.
The NPU step (step 5) is offered independently of these suggestions, whenever AMD XDNA + FastFlowLM hardware is detected.
| 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). |