Skip to content

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).

Terminal window
hal0 setup

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:

  1. Model storage — the directory every slot container reads and writes model files to. Defaults to /var/lib/hal0/models; override with --storage-dir.

  2. Extensions — opt-in apps and agents, auto-wired on apply:

    ExtensionKindDefault
    Open WebUIappon
    ComfyUIapp (image/video, iGPU)on
    Hermesagent (conversational, with memory)on
    Piagent (coding)off
  3. Main model — the chat model for the chat slot, anchored to a hardware-fit tier (see below).

  4. Agent model — the model backing the bundled agent slot.

  5. 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.

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.

TierFits
hal0-Litesmaller hosts — a tiny chat model only
hal0-Defaultmid-range — chat + embed/rerank + voice
hal0-Prolarger unified memory — adds a coder model + image generation
hal0-Maxhigh-memory Strix Halo — adds the NPU trio
FlagEffect
--autoNon-interactive; apply the recommended defaults.
--storage-dir <path>Model storage directory (default /var/lib/hal0/models).
--no-pullCreate slots + write the sentinel, but download nothing.
--no-extensionsSkip extensions (under --auto).