BE-1Local LLM fleet / Agent infrastructure
belt
- Status
- Shipped
- License
- BSL 1.1 — free non-production, commercial license
- Runtime
- Bun + MLX (rapid-mlx), Apple Silicon
- Fleet
- Code · extract · reason · Danish · rerank, on :8901–:8913
- Measured on
- M5 Max, 128 GB unified memory
_ _ _
| | | | |
| |__ ___| | |_
| '_ \ / _ \ | __|
| |_) | __/ | |_
|_.__/ \___|_|\__|

The fleet your agents call.
Five parallel Claude Code lanes hit :8901 at once. Nobody waits on a remote round-trip for a four-line extraction, and nobody notices the cloud is down. Belt is a swarm of MLX specialists on localhost — code, extract, reason, rerank — behind a deterministic keyword router.
The swarm.
Port and model pairs exist in one registry; the lifecycle and the router both read it. Change a model there and everything follows.
- 8901
- Code — Qwen3-Coder-30B, 16 GB, resident.
- 8902
- Extract — Qwen3-4B, 2 GB, resident.
- 8903
- Reason — Qwen3.5-35B, 20–38 GB, resident.
- 8906
- Danish and general — Qwen3.5-9B, 5.6 GB, on demand.
- 8913
- Rerank — Qwen3-Reranker-0.6B, 1 GB, resident.
Kept warm.
Idle MLX weights page out, and the first token after an idle stretch pays a 27–50 second paging stall. Suspenders' keepwarm pings the resident ports every four minutes so the weights stay paged in. Belt stays warm because the control plane never lets it cool.
The router.
A deterministic keyword router sends each request to its specialist — no model decides where a request goes. One switch, set-cloud.ts off, keeps everything local: the agent fleet keeps working when the cloud doesn't.
Measured.
Every benchmark run is logged to benchmarks.jsonl — prompts, medians, labels. Nothing is remembered from vibes.
The trio.
- suspenders
- The control plane — sessions, claims, the work graph, the fleet board.
- belt
- The local LLM fleet — specialists, router, benchmark rig.
- speedy-claude
- The speed and safety layer — skills, hooks, personas, settings. Installs both.
Why belt.
Belt and suspenders: suspenders catches the stalled lane, belt does the lifting underneath. The models live on your machine — no API keys, no rate limits, no one else's uptime.
Getting started.
Requires a Mac on Apple Silicon, Bun, and roughly 64 GB of memory headroom for the resident tier — measured on an M5 Max with 128 GB. ./install.sh deploys the fleet; --with-launchd keeps it alive across reboots. BSL 1.1 — free for non-production use, commercial license for the rest.
Project context & license
Part of the trio with suspenders and speedy-claude; the three share the runtime path at ~/.claude/local-llm/. BSL 1.1 — free for non-production use, commercial license available.
github.com/klh/belt ↗github.com/klh/suspenders ↗github.com/klh/speedy-claude ↗