Map the local AI stack layer by layer.
An educational map of model engines, inference servers, API contracts, agent harnesses, and control planes—and where Ollama, oMLX, LM Studio, llama.cpp, vLLM, MLX, and Hermes Agent fit.
Two products, two different layers.
LM Studio is primarily a model workbench and inference server. It downloads and runs model weights, then exposes an API. Hermes is an agent harness. It plans, uses tools, remembers, delegates, and calls a model provider. Hermes can use LM Studio; it does not replace the same layer.
The five layers of a local agent system
Products often span two or three layers, which makes broad vendor comparisons misleading. The useful first question is which job each tool performs.
Seven tools, four different jobs
Filter by category. Notice that the strongest “versus” comparisons happen within a category—not across the whole list.
Ollama
A headless model manager and background service that exposes local APIs to agent clients.
- Now supports MLX acceleration and GGUF/llama.cpp coverage
- Snapshot caching is designed for branching agent conversations
- Direct launch integrations for Claude Code and Codex
- Simple model registry and reproducible configuration files
oMLX
An MLX-native server built specifically for long-running agent workloads on Apple silicon.
- Continuous batching and paged SSD cache
- OpenAI and Anthropic-compatible APIs
- Native menu-bar app or Homebrew service
- Focuses on long, shifting coding-agent prefixes
LM Studio
A visual model lab that also serves production-style APIs. Browse, estimate memory, download, tune, compare, and expose models.
- Runs GGUF and MLX models
- Anthropic endpoint explicitly supports Claude Code
- GUI, CLI, and headless llmster daemon
- Best place to learn model/context/quantization tradeoffs
llama.cpp
The low-level, portable inference foundation behind much of the ecosystem. Apple Silicon and Metal are first-class targets.
- Broad GGUF model and quantization support
- Lightweight CLI and multi-user HTTP server
- OpenAI and Anthropic-compatible endpoints
- Excellent benchmark and compatibility baseline
vLLM-Metal
vLLM’s community-maintained Apple-silicon plugin now brings MLX-backed paged attention and vLLM serving semantics to macOS.
- Built for throughput, batching, and server-style workloads
- Uses MLX-optimized model weights on Apple Silicon
- Newer and narrower model matrix than mature CUDA vLLM
- More installation and operational surface
MLX / MLX-LM
Apple’s open-source framework for Apple silicon; MLX-LM adds model loading, quantization, generation, tuning, and a basic server.
- Purpose-built for unified memory and Metal
- M5 Neural Accelerator support in current releases
- Excellent direct experimentation and fine-tuning surface
- Basic MLX-LM server is not recommended for production
Hermes Agent
A provider-flexible agent system from Nous Research with tools, memory, skills, subagents, messaging, scheduling, and sandboxes.
- Consumes local or hosted model APIs
- Overlaps with Claude Code/Codex—not LM Studio
- Also overlaps with control-plane skills and orchestration
- Useful open-model-native harness experiment
Ollama vs oMLX vs LM Studio vs vLLM-Metal compares model hosts. MLX vs llama.cpp compares engines and model formats. Hermes vs Claude Code vs Codex compares agent loops.
Same ecosystem, different responsibilities
A product can span layers, but its center of gravity still matters.
| Tool | Center of gravity | GUI | Downloads/models | API server | Primary format/backend | Own agent loop | Typical role |
|---|---|---|---|---|---|---|---|
| Ollama | Model host + manager | Light app | Yes | Native + OpenAI-compatible | MLX + GGUF/llama.cpp | No | Canonical headless service |
| oMLX | Apple-native host | Menu bar + admin UI | Yes | OpenAI + Anthropic | MLX models | No | Agent-cache performance challenger |
| LM Studio | Visual workbench + host | Full | Yes | Native + OpenAI + Anthropic | MLX + GGUF | No | Model lab and easiest first contact |
| llama.cpp | Portable engine + server | Basic web UI | HF helper | OpenAI + Anthropic | GGUF · Metal · CPU | No | Reference baseline and escape hatch |
| vLLM-Metal | Throughput engine + server | No | Hugging Face | vLLM APIs | MLX via Metal plugin | No | Concurrency and serving research |
| MLX-LM | Framework + model library | No | Hugging Face | Basic server | MLX safetensors | No | Direct engine experiments and tuning |
| Hermes Agent | Agent harness | CLI / desktop surfaces | Uses providers | Gateway, not inference | Provider-agnostic | Yes | Open-model harness pilot |
Evaluate by layer, not in one giant bake-off
A useful evaluation selects a primary tool at each layer, then keeps explicit challengers for learning and benchmarking.
Visual comparison of models, quantizations, context sizes, memory estimates, and tool calling builds intuition quickly.
An initial always-on local API can use its 2026 MLX path, agent-aware snapshots, and Claude/Codex launch integrations; an M5 Pro with 48GB unified memory is one practical example.
Run the same agent transcript and model class through oMLX. Adopt it only if cache reuse and long-session latency materially beat Ollama.
A lowest-level GGUF baseline helps separate model or template behavior from problems introduced by higher-level wrappers.
Evaluate only when concurrent local agents are the bottleneck. It is now real on Apple Silicon, but still a community plugin with a growing model matrix.
Give Hermes one isolated tmux lane and the same local model endpoint. Compare task completion and tool reliability against Claude Code—not against LM Studio.
How local inference fits alongside an agent fleet
A local inference lane can be introduced without replacing the fleet’s authority, quality, identity, or handoff systems.
Orchestration + final QA
Architecture judgment, security decisions, orchestration, and merge gates initially remain on the strongest hosted models.
Bounded implementation work
Repository scanning, test writing, documentation drafts, mechanical refactors, issue summarization, and evidence extraction are ideal pilots.
Hermes + new servers
Each candidate receives a named tmux session, narrow repository permissions, no autonomous merge, and disk-backed witnesses before promotion.
Hermes carries its own memory, skills, subagents, scheduler, messaging gateway, and tool loop. Those capabilities overlap with an established orchestration stack, so Hermes belongs in a peer harness lane that reports into the same human-observable control plane—not inside another agent harness.
Choose an optimization target
The right starting point depends on whether the priority is simplicity, visibility, control, throughput, or harness experimentation.
Ollama
Use Ollama as the first persistent model service. It minimizes operational friction while now taking advantage of MLX on M5 hardware.
- Simple lifecycle and model management
- Agent-aware snapshot caching
- Direct Claude Code and Codex launch paths
A four-day, low-drama trial
A useful trial measures repeated tool calls over a growing repository context—not a single chat response.
Build the lab
Install LM Studio, load one fast model and one 20–35B coding model, then test raw chat and tool calling.
Target: ≥25K context, Q4/NVFP4, green memory pressureEstablish Ollama
Run the same coding model class through Ollama and connect one fresh Claude Code session using a local-only launcher.
Keep normal cloud launchers untouchedRun a real task
Use a bounded repo task with reads, edits, tests, and a handoff. Capture TTFT, tokens/sec, memory, retries, tool errors, and correctness.
One model · one task · one context budgetChallenge the winner
Repeat through oMLX. Add vLLM-Metal only when concurrency is part of the hypothesis. Pilot Hermes separately against the winning host.
Promote from evidence, not dashboard appealTwo hosts loading the same 20–35B model duplicate weights and crush unified-memory headroom.
A fast model that misses tools or corrupts edits is slower in the only metric that matters.
Yellow memory pressure and swap can erase the advantage of a larger model.
A remote computer can consume the Mac’s server without exposing an unauthenticated model endpoint to the public internet.
Start with low-risk implementation and extraction; retain strong cloud models for coordination and exact-head QA.
Names like claude-local and hermes-local-lab prevent silent provider drift in durable agents.
The six terms worth remembering
- Model
- The learned weights and architecture—the actual language intelligence. Examples are Qwen, Gemma, GPT-OSS, and Hermes-model checkpoints.
- Quantization
- Compressing weights to fewer bits. Q4/NVFP4 reduces memory and usually increases speed, with some quality cost.
- Engine
- The code that performs tensor operations on hardware. MLX and llama.cpp are engines/frameworks.
- Inference server
- A long-running process that loads weights, schedules requests, manages caches, and exposes an API.
- Agent harness
- The loop around a model: prompts, tools, permissions, file edits, memory, compaction, and next-action logic.
- Control plane
- The system above individual agents that manages identity, authority, ownership, handoffs, liveness, and observability.
Primary references
Current as of July 10, 2026. Product capabilities move quickly; these links are the source of truth used for this guide.
- Ollama: MLX performance and agent snapshots
- Ollama repository and integrations
- oMLX repository and API compatibility
- LM Studio: Claude Code integration
- LM Studio local API server
- llama.cpp repository
- llama-server capabilities
- vLLM-Metal installation and requirements
- vLLM-Metal repository
- Apple MLX framework
- MLX-LM models, quantization, and caching
- Hermes Agent repository
- Anthropic: Claude Code gateway configuration
- Visual design reference: Microsoft IQ