Your first slot

Reviewed 2026-08-09.

Installing hal0 gets you a running daemon with nothing loaded — a slot is
what actually holds a model in memory and answers requests. This page is
the fast path from “installed” to “one slot, warm, serving.” For the full
install walkthrough (drivers, GTT sizing, package prerequisites), see
Install on bare metal — this page
assumes that part is already done.

  1. Confirm the daemon is up.

    hal0 status
    

    A healthy install reports the API listening on :8080 and zero slots
    loaded — that’s expected on a fresh box.

  2. Pull a small model first. Don’t reach for the biggest model in the
    roster on your first try — pull something that fits comfortably so a
    slow network or a tight memory budget isn’t the thing you’re debugging.

    hal0 model pull qwen3.5-9b-q4kxl
    
  3. Create a slot from it.

    hal0 slot create agent --model qwen3.5-9b-q4kxl
    

    agent is the canonical role most tools default to — pointing a new
    slot at it means anything speaking to hal0/agent (Open WebUI, Hermes,
    a raw curl) works immediately with no further config.

  4. Talk to it.

    curl localhost:8080/v1/chat/completions \
      -H 'Content-Type: application/json' \
      -d '{"model":"hal0/agent","messages":[{"role":"user","content":"hi"}]}'
    

    The first request pays the cold-start cost — offline → starting → warming → ready → serving. Subsequent requests to the same slot are
    fast.

What comes next