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 8-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 8-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 | 8-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.