# Hal0 documentation

**URL:** <https://forum.hal0.dev/t/hal0-documentation/19>\
**Category:** Start here\
**Created:** [August 22, 2026, 6:49am UTC](https://forum.hal0.dev/t/hal0-documentation/19 "2026-08-22T06:49:15Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![system](https://forum.hal0.dev/user_avatar/forum.hal0.dev/system/32/37_2.png) [@system](https://forum.hal0.dev/u/system)\
**Post date:** [August 22, 2026, 6:49am UTC](https://forum.hal0.dev/t/hal0-documentation/19/1 "2026-08-22T06:49:15Z")

</div>

**hal0** turns a Linux box into a polished, OpenAI-compatible inference  
appliance. It is built for the AMD Ryzen AI Max+ 395 (“Strix Halo”) —  
iGPU + XDNA NPU + 128 GB of unified memory — and falls back to portable  
hardware parsers on every other host.

Every inference workload runs as its own **podman container** , supervised  
by a `hal0-slot@<name>.service` systemd unit. A single control plane,  
`hal0-api` on port `8080`, owns the slot state machines, dispatches  
OpenAI-compatible `/v1/*` requests to the right slot, and serves the  
dashboard. There is no shared inference daemon to babysit.

Each capability — `utility`, `embed`, `rerank`, `stt`, `tts`, `img`, `vision`,  
`agent`, and the NPU-conditional `flm-stt` / `flm-embed` slots — runs in its  
own dedicated podman container. `agent` is the capable default/fallback  
anchor and `utility` is the cheap helper used for background jobs like  
memory extraction.

## Hardware support

hal0 is first-class on AMD Strix Halo — the Ryzen AI Max+ 395 (128 GB) and  
the 385 / 390 (64 GB) — with AMD RX 7000-series GPUs also supported. NVIDIA  
RTX 30/40/50 (via CDI + the NVIDIA Container Toolkit) is experimental, and  
CPU-only x86\_64 hosts work as a fallback. There is no minimum-spec gate —  
backend selection degrades to CPU rather than refusing to run.

## What you get

- **OpenAI-compatible `/v1/*` API** — chat, completions, embeddings,  
rerank (`/v1/rerankings`, plus the `/v1/rerank` alias for  
llama.cpp/Cohere-style clients), audio transcription, speech, and image  
generation. Point any OpenAI SDK at `http://localhost:8080/v1` and go.
- **Hardware-aware slots** — each capability gets its own container,  
image, flags, port, and lifecycle, sharing only the GPU through an  
arbiter.
- **Profiles** — the whole tune for a slot: llama-server flags, context  
window, thinking default, vision and MTP (seeds include `chat`, `agent`,  
`utility`, `coding`, `embedding` and `reranking`). A slot names a profile;  
to run one model two ways, make two profiles.
- **Stacks** — named, exportable bundles of slot + profile + model  
assignments (built-in `saber`, `forge`, and `pi`) that you can load,  
clone, and re-apply as a single declarative unit.
- **Hardware-anchored install** — `install.sh` probes your hardware and  
provisions a coherent set of slots, models, and extensions in one pass —  
no separate setup wizard to run afterward.
- **Prewired chat UI** — OpenWebUI on port `3001`, zero config.
- **Signed self-update** — cosign-verified tarballs with one-flag  
rollback.

 ![hal0 dashboard overview](https://forum.hal0.dev/uploads/default/original/1X/32a23cdb0f40c1b0a9bca19da0380311f5862efe.png)  
_The hal0 dashboard — slot status, hardware metrics, and quick actions._

## Start here

- [Install hal0](https://forum.hal0.dev/t/install-hal0-hal0-docs/20): One-line install: fetch, verify, unpack, and bring up the API.
- [Load your first model](https://forum.hal0.dev/t/load-your-first-model/18): Pull a model from Hugging Face and assign it to a slot.
- [Send your first chat](https://forum.hal0.dev/t/send-your-first-chat/17): Chat from OpenWebUI or curl the OpenAI-compatible endpoint.
- [Verify the install](https://forum.hal0.dev/t/verify-the-install/109): The six-step ‘did it work’ checklist: health, models, first chat, dashboard, logs, doctor.
- [Install on bare metal](https://forum.hal0.dev/t/install-on-bare-metal/15): Run the installer directly on a Linux host, no container layer.
- [Install on Proxmox](https://forum.hal0.dev/t/install-on-proxmox/21): Quick-path CT script or the full GPU/NPU passthrough recipe.
- [Install in an Incus container](https://forum.hal0.dev/t/install-in-an-incus-container/132): Unprivileged system container on a bare-metal host: GPU/NPU passthrough, clean host, delete to uninstall.
- [Install in a rootless podman box (opt-in)](https://forum.hal0.dev/t/install-in-a-rootless-podman-box/140): v1.8.0 opt-in: the whole install in one rootless podman container, GPU/NPU passthrough, a host shim, and an uninstall that removes it all.
- [WSL (experimental)](https://forum.hal0.dev/t/quick-start-wsl2-experimental/22): Run hal0 under Windows Subsystem for Linux, CPU-only.
- [GPU drivers and memory](https://forum.hal0.dev/t/gpu-drivers-and-memory/16): Kernel/firmware requirements, GTT sizing, and render-group gids.

> **Caution: Open on the LAN by default, no TLS**
>
> `hal0-api` binds `0.0.0.0:8080` and, until you configure an admin key,  
> treats every request as authenticated by network reachability — the right  
> posture for a trusted LAN appliance. hal0’s own auth is opt-in (see  
> [Authentication](https://forum.hal0.dev/t/authentication-hal0-docs/43)). If hal0 is reachable from anywhere you  
> do not control, front it with a reverse proxy that owns TLS.

## Sections
