Hermes installs and bootstraps itself on first run, prewired to the local /v1 API. hal0-brain is the second: a resident operator you ask about the box in plain language, from the dashboard or a headless terminal.
Your Strix Halo box,
running real /v1/*
inference.
Every modality — agents, chat, speech, images, memory — served from a single OpenAI-compatible API on your Strix Halo box or any Linux machine.
Six engines,
one /v1/* surface.
Chat, embeddings, rerank, speech both ways and image generation — each served by the engine that suits it, on the accelerator that suits it, all behind one OpenAI-compatible API. The picker only offers a backend your hardware can actually honour.
More than models.
A whole AI stack.
Agents, tools, memory, voice and image generation ship in the box and come up wired to each other — not a model runner you then spend a weekend assembling a platform around.
Two Streamable-HTTP servers mount straight onto the API: models, slots, memory, stacks, bench, telemetry and the updater, all reachable by any MCP client. The 54 destructive ones return pending_approval and wait for a human.
Opt-in Hindsight-backed memory with a 26-tool surface. The engine runs embedded and loopback-only, embeddings included, so recall costs nothing and reaches no one. Banks are scoped per agent, and destructive operations write an attributable audit row.
One stt slot and one tts slot, each resolving by device: Moonshine on CPU or whisper-v3:turbo on the XDNA NPU for listening, Kokoro (CPU) or Qwen3-TTS (GPU) for speaking. Switch the engine, not the plumbing.
POST /v1/images/generations runs SDXL, SD 1.5 or Flux through a ComfyUI engine. Generating flips the iGPU into exclusive image mode and back, so chat and images share one accelerator without fighting over it.
One command brings up the API, a coherent set of slots, Open WebUI on :3001, ComfyUI and the agent — lifecycle-managed as extensions, with cosign-verified updates and one-flag rollback from day one.
One box,
three day jobs.
The same install serves all three at once — the slots share the accelerator instead of taking turns with it.
Point your editor at your own box
Aim any OpenAI-compatible client at :8080/v1 — chat, completions, and a dedicated coder slot. Your code never leaves the LAN, and there's no per-token bill.
Retrieval grounded on your data
Embeddings, reranking, and a bundled agent with opt-in memory and MCP tools — a full RAG stack that runs on your hardware, not someone else's server.
Speech and images, one control plane
Transcription, text-to-speech, and local image generation behind the same API — STT on the XDNA NPU, TTS switchable between Kokoro (CPU) and Qwen3-TTS (GPU), ComfyUI on the iGPU, switched cleanly so they share the box.
what this box does
| model | params | decode ▼ | prefill | gb |
|---|---|---|---|---|
| qwen3.5-0.8b | 0.8B | 169.8 | 6248 | 0.6 |
| chadrock3-6-35b-uncensored-mtp-strix-lean | 35B MoE | 102.1 | 890 | 19 |
| chadrock-35b-ace-saber | 35B-A3B | 100.5 | 903 | 19 |
| qwopus3-5-4b-coder-mtp-q6-k | 4B | 85.0 | 889 | 3.6 |
| qwen3.6-35b-a3b-crown-halo-mtp-dynamic | 35B-A3B | 84.4 | 873 | 22.6 |
Strix Halo native.
Not Strix-Halo-only.
The probe is UMA-aware on Strix Halo and falls back to portable parsers on every other host. The dashboard only labels memory "unified" when it actually is. Linux + systemd is the only hard requirement.
The orchestration layer
around your inference engine.
Slots survive hal0-api restarts. Embeddings, rerank, STT, TTS, and image gen all sit behind the same/v1/* surface. UMA-aware hardware probe and slot-fit warnings are first-class, not a slash command in a chat window.
Competitor capabilities reflect each project's published docs as of June 2026 and move fast — treat this as a snapshot, not a live scorecard.
Chat, image gen, agents, and memory —
one console.
Slots, models, local image generation, agent memory, an agent task board, MCP, and logs — every surface in one React operator console. SSE-backed, dark by default. Real screenshots from a live hal0 instance.




Plus a Hermes agent that lives on the box, an Operator Board kanban wired to it, an MCP server + client, and a live XDNA NPU view — see theroadmap for everything shipped.
Agents that
live on the box.
Hermes installs and bootstraps itself on first run — confined by its own systemd unit, prewired to the local /v1 API and hal0's MCP servers, with opt-in memory. Reach it from Telegram or Discord; it chains tool calls unattended for hours and writes each run back to memory.
- Self-bootstraps: env probe → model wiring → MCP memory → persona.
hal0-agent@hermes.service— NoNewPrivileges, ProtectSystem=strict, a pinned ReadWritePaths set, and the terminal off by default.- Gated tools clear an approval bell; every call is audited.

A resident operator, not a chatbot
hal0's own small always-on model, wired to hal0's admin catalog and reachable from the dashboard's Agent Chat or hal0 chat --brain on a headless box. Ask it what's loaded, what the box is doing, what's eating the memory pool. It ships read-only — it reads and explains out of the box, and one config line lets it act.
The platform is the tool catalog
Two Streamable-HTTP servers mount onto the API —/mcp/admin and /mcp/memory — so any MCP client drives the box: 28 model tools, 26 memory, 22 slots, 17 stacks and profiles, 12 bench, plus telemetry and the updater. A validator enforces zero overlap between gating tiers, so the catalog cannot silently drift.
Recall that reaches no one
Opt-in memory on a Hindsight engine that runs embedded and loopback-only, local embeddings included — nothing is sent anywhere to remember it. Banks are scoped per agent; recall fans out across the ones a caller can see, then hal0 merges, ranks and fits the result to a token budget.
Everything here runs
on your box today.
The API surface, the slot lifecycle, the security model, install and update, hardware probing, agents and memory — 23 capabilities, every one of them shipped in 1.0. Tagged releases reachreleases.hal0.dev within ~60s.
180 admin tools over MCP, slots that report ready only once /health passes,
device-keyed voice — hardened across twelve release candidates.
what users are talking about
optimized model & hardware recipes from the community
0.6 GB. Not a chat model — the draft half of a speculative pair, pinned so the big model never waits on it.
draft-mtp with an f16 KV cache. The fastest tokens this box produces, at the cost of 19 GB resident and no room for a second big slot.
Sized for autocomplete rather than long generations: 28.5 GB resident, prefill above 750 tok/s so a whole file lands fast.
latest from the blog
What's new in the v0.8 line: Stacks, canonical roles, and voice end-to-end
Config becomes a declarative single source of truth with Stacks, agent/utility replace chat/primary as the canonical roles, voice ships end-to-end behind one engine switch, and a 72-finding reliability sweep lands resumable pulls, disk preflight, and live dashboard telemetry. A look at the v0.8 beta line through v0.8.4b1.
blog · 2026-06-19What's new in the v0.7 line: hal0's first beta
Put the whole stack
on your own box.
One command on a fresh Linux box brings up the API, the slots, voice, image gen, and the agent. Apache-2.0, signed releases, no telemetry.