One command. A real OpenAI-compatible endpoint, a browser UI, and live status, in under a minute. Then llmaker top shows load across every instance.
Forty browser tabs later, you're deep in a 2019 NVIDIA forum thread, your docker run has fourteen -e flags, something's already wedged on port 8080, and you still don't have a UI. llmaker is the part where you stop doing that: it treats LLM servers like services you launch, observe, and throw away, behind one stable API.
"htop for your local LLM fleet," plus the part where you start the fleet.
Partitions are exclusive and tracked on container labels, so no two instances silently fight over the same VRAM. All-GPU grants stay shareable, but never mix with partitions.
Passthrough needs Linux + the NVIDIA Container Toolkit; the GPU image is ~8.5 GB, the CPU-only one ~360 MB. On macOS, Apple's GPU can't cross Docker's VM, so llmaker is CPU-only there, and llmaker doctor says so out loud instead of letting you find out via mystery latency.
llmaker stack up rag scaffolds and applies a complete self-hosted application (model, services, networking, agent), or stack init just writes the YAML for you to edit.
A FastAPI + LangGraph service (~510 MB image) behind every agent-backed stack. It collapses multi-turn history into a standalone query, retrieves and MMR-reranks from your vector store, and answers with sources. One HTTP surface for the rest: /api/chat · /api/agent · /api/ingest · /api/summarize · /api/extract · /api/transcribe · /api/recommend · /api/eval.
Each half uses the best ecosystem for its job, decoupled by the contract. No local state file: every instance is a labeled container, so the fleet view is always reality.