Olla is the broader multi-engine proxy. Herd is the Apple-fleet-aware scheduler. Olla treats your machines as interchangeable servers; Herd treats them as workstations with conditions. Different fleets, different tools.
Olla is a high-performance, low-overhead proxy and load balancer for self-hosted LLM infrastructure, written in Go and licensed Apache-2.0. It's built by TensorFoundry, an Australian AI-infrastructure company. Olla routes requests across a very broad set of natively-supported backends — Ollama, LM Studio, vLLM, vLLM-MLX, llama.cpp, SGLang, LMDeploy, Docker Model Runner, oMLX, Lemonade SDK, LiteLLM, and generic OpenAI-compatible endpoints — on Linux, macOS, and Windows, in under 50MB of RAM. It's a genuinely well-built project with good docs and an active community.
Ollama Herd is an open-source smart multimodal AI router that turns multiple inference nodes across Apple Silicon and mixed hardware into one intelligent endpoint. It routes LLMs, embeddings, image generation, speech-to-text, and vision with a 7-signal scoring engine, mDNS auto-discovery, an 8-tab real-time dashboard, and OpenAI + Ollama + Anthropic Messages API compatibility. Two commands to set up, zero config files. pip install ollama-herd or brew install ollama-herd.
Olla treats your machines as interchangeable inference endpoints with a health status — up or down — listed in a config file, and routes across the widest set of backend engines with production-proxy machinery. Herd treats your machines as workstations with conditions — is this Mac in a video call, running a heavy foreground app, thermally throttling, or being actively used right now, and does it already have the model warm — and routes with a 7-signal device-aware scoring engine.
On a rack of dedicated inference servers across mixed engines, Olla's model fits well. On a fleet of real Macs that people also use for work, Herd's model fits better. That's the honest distinction, and it's the whole comparison.
Being straight about what is not a difference:
| Feature | Olla | Ollama Herd |
|---|---|---|
| Core approach | Broad multi-engine proxy + load balancer | Apple-fleet-aware device-condition scheduler |
| Backend breadth | 11+ engines (vLLM, SGLang, LMDeploy, llama.cpp, DMR, oMLX, Lemonade, LiteLLM, Ollama, LM Studio…) | Ollama + MLX + native fastembed + vision embedding |
| Node discovery | Config file lists endpoints | mDNS auto-discovery, zero config |
| Routing intelligence | Priority-based + KV-cache sticky sessions + circuit breakers | 7-signal device-aware scoring |
| Workstation awareness | None — endpoints are health up/down | Thermal state, meeting detection, foreground-app activity |
| Availability learning | None | 168-slot weekly behavioral model per device |
| Model lifecycle | Model discovery + unification | Residency, prewarming, cold-start cost in scoring |
| Multimodal routing | LLM-proxy focus | LLM / embeddings / image gen / STT / vision service categories |
| Proxy sophistication | Dual engines, connection pooling, circuit breakers | Per-node:model queues, auto-retry, holding queues |
| Anthropic Messages API | Yes — passthrough + translation | Yes — native + three-layer context management |
| Dashboard | Request tracking + status endpoints | 8-tab live web dashboard with SSE |
| Production proxy features | Rate limiting, request size limits, CORS | Health checks, auto-retry, holding queues, trace store |
| Setup | Single Go binary + config file | pip install ollama-herd, two commands, LAN discovery |
| License | Apache-2.0 | MIT |
herd-node on a machine and it joins the fleet in about 60 seconds — no config edit. For a fluid home-lab or small-team fleet where machines come and go, that's a real difference.pip install, two commands, no config file, LAN discovery.| Scenario | Choose |
|---|---|
| Fleet mixes many inference engines (vLLM + SGLang + llama.cpp + Ollama…) | Olla |
| Dedicated inference servers, treated as interchangeable | Olla |
| Need circuit breakers, KV-cache sticky sessions, rate limiting | Olla |
| Fleet is real Macs also used for work (meetings, dev, creative apps) | Ollama Herd |
| Want zero-config mDNS discovery, no endpoint list to maintain | Ollama Herd |
| Multimodal workload (LLM + embeddings + image gen + STT + vision) | Ollama Herd |
| Want learned weekly availability + model-residency-aware routing | Ollama Herd |
| Broadest engine coverage matters most | Olla |
Olla and Herd are the two projects closest to each other in this space, and Olla is the more mature proxy — broader backends, more production-proxy features, a bigger community. The honest positioning isn't "we're better." It's "we're built for a different fleet." Olla is built for infrastructure; Herd is built for workstations.
A group of Macs that people actually use for work are not interchangeable servers. Some are in meetings, some are running a build, some already hold the model warm, some are thermally throttling, some are temporarily busy. That reality — and scheduling around it — is what Herd is designed for, and it's the axis where a device-condition-aware scheduler beats a generic proxy.
If you already have Ollama or MLX running on your Macs, Herd discovers them automatically and starts routing in under two minutes.
pip install ollama-herd # or: brew install ollama-herd
herd # start router
herd-node # on each device
They optimize for different fleets. Olla is a broad multi-engine proxy that routes across 11+ inference backends and treats endpoints as interchangeable. Herd is an Apple-fleet-aware scheduler that routes around the condition of each Mac — thermal state, meetings, foreground apps, learned availability. Choose Herd when your machines are real workstations, not dedicated servers.
Yes. Olla natively supports 11+ engines including vLLM, SGLang, LMDeploy, llama.cpp, and Docker Model Runner. Herd focuses on Ollama, MLX, and native fastembed. If broad engine coverage is your priority, Olla is the better fit — we won't pretend otherwise.
Yes, both do. Olla offers passthrough and translation. Herd handles it natively with no format conversion, plus three-layer context management for long Claude Code sessions on local models.
Herd models each machine as a workstation: thermal state, meeting detection, foreground-app activity, and a learned 168-slot weekly availability pattern — plus mDNS zero-config discovery and capability-aware multimodal routing. Olla treats endpoints as interchangeable health-up-or-down servers listed in a config file.
Yes. Ollama Herd is open-source under the MIT license — no paid tiers, no API keys, no subscriptions. Olla is also open-source, under Apache-2.0.