The agent layer
Both are open-source agent runtimes that you install locally, point at an Ollama endpoint, and use from your terminal or your favorite chat app. They overlap a lot. They differ in the ways that matter for daily use.
Hermes Agent
Hermes is built around a Gateway that routes messages from chat apps to an LLM. It's the more "platform" of the two: cron jobs, skills, persistent memory, voice transcription, image generation, multi-agent routing. Slightly steeper to set up because the config surface is bigger.
# Install via the official installer (macOS / Linux)
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
# Or, if you prefer the manual path:
git clone https://github.com/nousresearch/hermes-agent.git
cd hermes-agent
uv sync # or: pip install -e .
hermes setup # interactive wizard
Hermes reads its provider config from ~/.hermes/config.yaml. Add an Ollama section:
providers:
ollama-launch:
type: openai # Ollama is OpenAI-compatible
base_url: http://127.0.0.1:11434/v1
api_key: ollama # any non-empty string; Ollama ignores it
model: qwen2.5-coder:14b
default_provider: ollama-launch
ollama serve — leave it running. Default port 11434.
ollama pull qwen2.5-coder:14b (or your pick — see the Ollama page).
hermes gateway start. On first run it walks you through pairing a Telegram bot / Slack app / Discord webhook.
Send a message in the chat app you paired. The reply comes from your local model, served by Ollama, routed by the gateway.
hermes chat drops you into a Claude-Code-style REPL against the same model. Great for quick questions when you don't want to open a chat app.
OpenClaw
OpenClaw's pitch is "the AI that actually does things." The install path is a single npm i -g and an openclaw onboard wizard. It does the same job as Hermes — chat-app gateway, skills, browser control, cron — but with a more opinionated default setup and a lighter config surface.
# One-liner (installs Node if missing, then OpenClaw)
curl -fsSL https://openclaw.ai/install.sh | bash
# Or, the npm path:
npm i -g openclaw
openclaw onboard
OpenClaw detects Ollama automatically if it's running on 127.0.0.1:11434. To pin a model and set defaults, edit ~/.openclaw/config.yaml:
providers:
- name: ollama
type: openai
base_url: http://127.0.0.1:11434/v1
api_key: ollama
model: llama3.1:8b
default: true
ollama serve in another terminal.
ollama pull llama3.1:8b for general chat, or qwen2.5-coder:14b for code-heavy work.
openclaw onboard --install-daemon walks you through picking chat apps (Telegram, WhatsApp, Discord, Slack, iMessage) and pairs them.
Yes, the mascot is a lobster. 🦞 Send a message — it executes against your local model.
Which one?