ollama_load_balancer is a lean Rust binary that races the same request across several Ollama backends and returns the fastest. Ollama Herd routes each request to one best-scored node. Different philosophies: minimize tail latency by duplicating work, or place each request precisely.
ollama_load_balancer is a great little tool for a couple of identical Ollama boxes. Ollama Herd is a full router for a real, mixed fleet. The Rust balancer's signature trick is clever: for chat, it fires the same request at several backends at once and streams back whichever answers first. That minimizes tail latency, but it does so by running your prompt on multiple machines and discarding all but the fastest. Herd takes the other path: score every node and place each request on the single best one, so nothing is wasted.
ollama_load_balancer is a lightweight, single-binary Rust load balancer for Ollama (26 stars, MIT). You give it a list of Ollama server URLs on the command line or in a file. It aggregates /api/tags across backends, filters to servers that actually have the requested model, and for /api/chat it sends parallel requests to several health-scored backends and returns the fastest stream. A health-value system nudges each server's score up on success and down on error. It's lean and reliable for what it covers. Its last release was in April 2025, and several documented endpoints (/status, /add_server) are marked not yet implemented.
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.
Both tools want your request answered fast. They disagree on how.
Racing wins when you have spare capacity and only care about latency. Placing wins when you want the fleet to serve more total work, or when machines are shared and you can't afford to run every prompt three times.
| Feature | ollama_load_balancer | Ollama Herd |
|---|---|---|
| Core approach | Race parallel backends, keep fastest | Score nodes, place on best one |
| Duplicate compute | Yes (by design, for chat) | No |
| Node discovery | CLI args or server file | mDNS auto-discovery, zero config |
| Model awareness | Filters servers that have the model | Scores hot vs cold, plus memory fit |
| Workstation awareness | No | Thermal, meeting, foreground-app |
| API surface | Ollama-native (chat fully, generate partial) | OpenAI + Ollama + Anthropic Messages |
| Multimodal routing | No (chat focus) | LLM, embeddings, image gen, STT, vision |
| Dashboard | No (status endpoint planned) | 8-tab live fleet dashboard |
| Footprint | Single Rust binary, very lean | Python, heavier per node |
| Maintenance | Last release April 2025 | Actively developed |
| License | MIT | MIT |
pip install, no Python.herd-node and it joins over mDNS.| Scenario | Choose |
|---|---|
| Two or three identical Ollama boxes, you want the leanest binary | ollama_load_balancer |
| Spare capacity, latency is all that matters, don't mind duplicate compute | ollama_load_balancer |
| Mixed machines you want the fleet to serve efficiently | Ollama Herd |
| Shared machines where running every prompt several times is a problem | Ollama Herd |
| You route more than chat, or need OpenAI/Anthropic APIs | Ollama Herd |
| You want zero config, a dashboard, and active maintenance | Ollama Herd |
ollama_load_balancer is a neat, honest little tool with a genuinely clever latency trick, and for a small set of identical boxes with spare capacity, it does its job well. Herd is for when you want the fleet to go further: place each request precisely instead of running it everywhere, discover machines automatically, route every modality, and see the whole thing in a dashboard.
pip install ollama-herd # or: brew install ollama-herd
herd # start the router
herd-node # on each device
Yes, for chat it runs the same prompt on several machines and keeps only the fastest. Great for tail latency, but it multiplies effective load. Herd sends each request to one scored node.
Its last release was April 2025 and some endpoints remain unimplemented. Herd is under active development.
Yes. Both projects are MIT licensed.