The Setup
I have a problem. A good problem, but still a problem.
I built an autonomous AI daemon called Colony. It's a Clojure application that manages a queue of tasks — writing blog articles, monitoring websites, researching revenue opportunities — and delegates them to AI workers that run as subprocesses. Think of it as cron meets AI meets "what if I never had to write SEO content again."
For months, the brain behind Colony was claude -p — Anthropic's CLI tool running in prompt mode. It worked, but it had limitations:
- Cost: Every research query, every draft, every revision burned API tokens
- No tool access: Claude CLI in prompt mode can't browse the web or run commands
- Single model: Locked into whatever Anthropic offers, no local model fallback
Then I found Hermes Agent.
What Is Hermes Agent, Actually?
If you haven't encountered it yet: Hermes Agent is an open-source agentic system from Nous Research. The key differentiators that caught my attention:
- Built-in tool use — Web search, terminal commands, file operations, browser automation. Out of the box.
- Model agnostic — Ollama, OpenRouter, Anthropic, OpenAI, local llama.cpp. Switch with a flag.
- Skill system — 90+ bundled skills for everything from GitHub PRs to Minecraft modding.
-
One-shot mode —
hermes -z "do the thing"runs a prompt with full tool access and exits. Perfect for subprocess orchestration.
That last point is what made the integration click. Colony doesn't need a persistent chat session — it needs to fire off tasks and collect results. Hermes's -z flag is exactly that interface.
The Swap
Replacing claude -p with hermes -z in Colony's worker scripts was almost embarrassingly simple. The core change in my Babashka worker:
;; Before: Claude CLI
(proc/process {:out :string :err :string}
"claude" "-p" prompt)
;; After: Hermes Agent
(proc/process {:out :string :err :string}
hermes-bin "-z" prompt)
But the real power isn't in the swap — it's in what Hermes enables that Claude CLI couldn't.
The Content Pipeline
Here's what I built with the Hermes integration: a 3-stage autonomous content pipeline.
Stage 1: Research — Hermes uses web search tools to find trending topics in a niche. It returns structured JSON with titles, keywords, search volume hints, and competitive analysis.
Stage 2: Outline — Hermes researches top-ranking articles for the chosen topic, then generates a comprehensive outline that covers more ground than existing content.
Stage 3: Write — Hermes produces a full markdown article with frontmatter, proper heading structure, and SEO-optimized content.
Each stage is a separate Hermes invocation. This matters because:
You Can Use Different Models Per Stage
Research → hermes3:8b (local, free, fast)
Outline → hermes3:8b (local, free, fast)
Writing → claude-opus-4.6 (cloud, paid, quality)
Research doesn't need a frontier model. Topic discovery and competitive analysis work fine with an 8B parameter model running locally on Ollama. Save the expensive tokens for the final article where prose quality matters.
This wasn't possible with claude -p. One model, one price point, for everything.
What I Learned About Agentic Architecture
1. Stages > Mega-Prompts
My first instinct was a single prompt: "Research a topic and write an article about it." This produces mediocre results regardless of model size.
Breaking the work into discrete stages — each with a focused prompt, clear input/output contract, and appropriate model selection — produces dramatically better results. It also gives you retry granularity: if the outline stage fails, you don't have to redo the research.
This is the same principle as Unix pipes. Small, focused tools composed together beat monolithic programs.
2. Local Models Are Better Than You Think (For Some Things)
Hermes3:8b running on Ollama handled topic research surprisingly well. It won't write prose that passes for a professional blog post, but for structured tasks — generating JSON topic lists, analyzing keyword gaps, creating outlines — it's more than capable.
The cost difference is stark: local model research costs $0. Cloud model research costs tokens. When you're running an autonomous daemon that researches topics every few hours, that adds up.
3. Tool Access Changes Everything
The biggest upgrade from claude -p to Hermes wasn't the model — it was the tools. Hermes can:
- Search the web for current information (Claude CLI in prompt mode can't)
- Run terminal commands to check site status, git operations, file processing
- Browse websites for competitor content analysis
This turned my content pipeline from "generate text from training data" into "research current trends and generate informed text." The difference in output quality is significant.
4. Subprocess Orchestration Is Underrated
Most agentic frameworks assume you want a long-running chat session or a complex multi-agent graph. Colony takes a simpler approach: a task queue with subprocess workers.
Daemon (long-running) → assigns tasks
Worker (subprocess) → runs hermes -z → reports results
Daemon → processes results, queues next tasks
This gives you:
- Process isolation — a stuck worker can be killed without affecting the daemon
- Resource control — limit concurrent workers by subprocess count
- Language flexibility — daemon is Clojure, workers are Babashka or Python, LLM is Hermes
- Clean failure modes — exit codes and IPC messages, not exception propagation
Hermes's -z one-shot mode fits this pattern perfectly. It's a function call with tool access.
5. The Skill Ecosystem Is a Force Multiplier
Hermes ships with skills for research, GitHub, code review, content creation, and dozens of other domains. I haven't tapped most of these yet, but having blogwatcher, research, and arxiv skills available means I can extend the pipeline without writing custom tool integrations.
Want to add academic paper summarization to the content pipeline? There's a skill for that. Want to auto-create GitHub issues for article ideas? Skill for that too.
The Numbers
Running the pipeline locally with Hermes3:8b + Ollama:
| Stage | Time | Cost | Quality |
|---|---|---|---|
| Research (3 topics) | ~45s | $0 | Good — relevant, current topics |
| Outline | ~30s | $0 | Good — comprehensive structure |
| Writing (8b) | ~60s | $0 | Fair — needs editing |
| Writing (Claude) | ~90s | ~$0.05 | Good — publish-ready |
Total pipeline: under 3 minutes, near-zero cost for drafts.
Should You Use Hermes Agent?
If you're building any kind of agentic system — especially one that:
- Needs tool access (web search, terminal, file ops)
- Benefits from model flexibility (local + cloud)
- Uses subprocess orchestration rather than chat sessions
- Wants a skill/plugin ecosystem
Then yes, Hermes Agent is worth your time. The install is one command, the -z one-shot mode is perfect for automation, and the model-agnostic design means you're not locked into any provider.
The open-source angle matters too. When you're running autonomous AI workers, you want to understand (and modify) every layer of the stack. Hermes gives you that.
Try It
# Install
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
# Pull a local model
ollama pull hermes3:8b
# Configure
hermes setup
# Test one-shot mode
hermes -z "What are 3 trending topics in AI development? Return as JSON array."
Then build something. The challenge deadline is May 31, 2026 — but the real value is having a capable, open-source agent in your toolbox permanently.
Top comments (0)