I recently installed Hermes Agent on my Mac mini, where I already run OpenClaw.
OpenClaw has been stable and reliable for my use cases. I can reach it through Telegram when I am away from my computer, ask it to work on hobby projects, and use it as an always-available agent hosted at home.
Lately, I have been hearing good things about Hermes. Some people even argue that it is becoming the better agent platform. Instead of replacing OpenClaw, I decided to run Hermes alongside it and compare the two through actual use.
My Setup #
Hermes is running on a 2024 Mac mini with:
- Apple M4
- 16 GB of unified memory
- Ollama for local models
- OpenRouter for cloud models
- Telegram as the remote interface
OpenClaw is running on the same machine. Each agent has its own Telegram bot, so I can use both without conflicts.
Hermes runs its messaging gateway as a background service. The bot remains available after I close Terminal and should start automatically after the Mac reboots.
Why I Chose OpenRouter #
I am using OpenRouter as the main model provider for Hermes.
Instead of creating separate accounts and API keys for Anthropic, OpenAI, Google, xAI, DeepSeek, Qwen, and other providers, I can access a large catalog of models through a single API key.
Claude Sonnet 5 is my main model, but Hermes can route specific background tasks to other models. This was the part of the setup I found most interesting.
Using Different Models for Different Jobs #
Hermes supports auxiliary model roles for tasks such as:
- screenshot and image analysis
- context compression
- webpage summarization
- command approval
- tool selection
- session-title generation
- memory-search rewriting
- project decomposition
- skill review
Hermes can send all of these jobs to the main model, but that would be wasteful. Generating a session title does not require the same model as a difficult coding or research task.
I configured Hermes to route each job to a model that seemed appropriate:
| Task | Model |
|---|---|
| Main conversation and agent work | Claude Sonnet 5 |
| Vision and screenshots | Qwen 3.7 Plus |
| Context compression | MiniMax M3 |
| Web extraction | DeepSeek V4 Flash |
| Command approval | Tencent Hy3 |
| MCP tool reasoning | Tencent Hy3 |
| Title generation | Local Qwen 3.5 4B |
| Memory-query rewriting | Local Qwen 3.5 4B |
| TTS audio tags | Gemini 3.5 Flash |
| Skills search | Tencent Hy3 |
| Task triage | DeepSeek V4 Flash |
| Kanban decomposition | GLM 5.2 |
| Profile descriptions | Local Qwen 3.5 4B |
| Skill review | GLM 5.2 |
I am not particularly concerned with which company made a model. I want to balance quality, cost, and speed for each job.
I also prefer limited guardrails in the practical sense. I want an agent that follows instructions and completes legitimate tasks without unnecessary resistance.
That led me to use several Chinese models alongside Claude and Gemini. DeepSeek, Qwen, MiniMax, Tencent, and GLM each offered useful options for particular jobs at relatively low prices.
I will probably change this configuration as I spend more time with Hermes. The exact assignments matter less than the overall approach: use a strong model for the main agent and cheaper models for routine background work.
Running a Local Model with Ollama #
The most enjoyable part of the setup was connecting Hermes to a model running locally on the Mac mini.
I already had Ollama installed, so I downloaded Qwen 3.5 4B:
ollama pull qwen3.5:4bI then created a Hermes-specific version with a 64,000-token context window:
FROM qwen3.5:4b
PARAMETER num_ctx 64000After saving that configuration as a Modelfile, I created the model:
ollama create qwen3.5-4b-hermes -f ~/qwen3.5-4b-hermes.ModelfileOllama exposes a local OpenAI-compatible API at:
http://localhost:11434/v1I added that address to Hermes as a custom provider and selected:
qwen3.5-4b-hermes:latestThe local model does not replace Claude as the main agent. I use it for low-risk background work:
- generating session titles
- rewriting memory-search queries
- creating profile descriptions
These tasks are short, frequent, and do not require a frontier model. Running them locally eliminates per-request API costs and keeps their contents on my machine.
I confirmed the setup by starting a new Telegram session and checking Hermes’ session list. Hermes generated an appropriate title using the local Qwen model.
What I Like About Hermes So Far #
The setup process was more polished than I expected. Hermes provides guided configuration for:
- model providers
- auxiliary model routing
- Telegram
- browser automation
- web search
- image generation
- text-to-speech
- memory
- scheduled jobs
- terminal and file access
- native computer control
Model routing is the standout feature for me. I do not have to choose one model and use it for everything. I can build a system in which several models handle the tasks that suit them.
Why I Am Keeping OpenClaw #
OpenClaw has already proven itself. It has been stable, reliable, and useful, so I have no reason to remove it.
For now, I plan to compare the two agents by using them for:
- remote coding tasks
- browser automation
- long-running work
- memory
- scheduled jobs
- Telegram topic handling
- reliability after reboots
- API costs
- local-model integration
Hermes may eventually take over more of the work I currently give to OpenClaw, but I want to see how it performs over time.
For now, my Mac mini is running two always-available agents. OpenClaw is the established and reliable system. Hermes is the newer experiment, with more elaborate model routing and a mix of cloud and local inference.
The question is no longer just which model is best. It is which model is best for each job, and whether that job needs to leave my Mac at all.