An autonomous content pipeline that uses Hermes Agent to research trending topics, generate SEO-optimized outlines, and write publish-ready blog articles — all without human intervention.
The pipeline plugs into Colony, a Clojure daemon I built to orchestrate autonomous AI workers for passive income projects. Hermes Agent replaces the previous claude -p
subprocess as the "brain" that does the actual research and writing work.
Colony Daemon (Clojure)
└── ROI Task Queue (SQLite)
└── hermes-worker.bb (Babashka)
└── Hermes Agent (hermes -z)
├── Stage 1: Research topics (web search tools)
├── Stage 2: Generate outline (competitor analysis)
└── Stage 3: Write full article (markdown output)
The daemon assigns roi-write-article
tasks. The Hermes worker picks them up, runs a 3-stage pipeline through Hermes Agent, and reports results back via Unix domain socket IPC.
Running the pipeline for the "ai-tools" niche:
$ python3 hermes-content-pipeline.py "ai-tools" --count 1
Hermes Content Pipeline
[1/3] Researching topics...
Found 3 topic ideas:
1. The Rise of AI-Powered Content Generation Tools [high]
2. AI-Powered SEO Optimization Techniques [high]
3. Best AI Image Generation Tools [high]
--- Article 1/1 ---
[2/3] Generating outline...
Outline: 4 sections, ~2000 words
[3/3] Writing article...
Written: 971 words
Saved: output/2026-05-30-ai-content-tools.md
Each stage is a separate Hermes Agent invocation with tool access. The research stage uses web search to find trending topics. The outline stage analyzes competitor content. The writing stage produces publish-ready markdown.
Colony's ROI system previously used claude -p
(Claude CLI) for all AI work. Switching to Hermes Agent gave us:
Local model support — Running Hermes3:8b via Ollama means zero API cost for research/drafting. Only final polishing needs a frontier model.
Built-in tool use — Hermes Agent has native web search, terminal, and file tools. No need to build custom tool integrations.
Model flexibility — Can switch between local Hermes3 and cloud models (Claude, GPT) with a flag. Use cheap models for research, expensive ones for final output.
Skill ecosystem — Hermes ships with 90+ bundled skills. The research
and blogwatcher
skills complement our content pipeline perfectly.
The Babashka worker (hermes-worker.bb
) bridges Colony's Clojure daemon with Hermes:
;; Invoke Hermes Agent for topic research
(defn hermes-run [prompt & {:keys [model timeout-ms]}]
(let [cmd (cond-> [hermes-bin "-z" prompt]
model (into ["-m" model]))
p (proc/process {:out :string :err :string} cmd)]
;; ... timeout handling, result parsing
))
The worker:
Research (cheap, fast) → hermes3:8b (local/Ollama)
Outline (moderate) → hermes3:8b (local/Ollama)
Writing (quality matters) → claude-opus-4.6 (Anthropic API)
This keeps costs near zero for exploration while using frontier models only when output quality matters.
For those who just want the content pipeline without Colony, there's a standalone Python version:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
ollama pull hermes3:8b
python3 hermes-content-pipeline.py "home-office" --count 3
It outputs markdown files ready to publish on any blog platform.
Local models are surprisingly capable for research tasks. Hermes3:8b handled topic research and outlining well. The quality gap only shows in long-form writing.
Hermes Agent's tool integration is smooth. Web search and terminal tools worked out of the box — no custom MCP servers or tool definitions needed.
The -z one-shot mode is perfect for pipeline stages. Each stage is a discrete prompt → response cycle, which maps cleanly to subprocess orchestration.
Agentic pipelines benefit from stage separation. Rather than one mega-prompt, breaking into research → outline → write lets you use different models per stage and retry individual failures.
GitHub: maniginam/hermes-content-pipeline
hermes-content-pipeline.py
— Standalone Python pipelinehermes-worker.bb
— Colony daemon integration (Babashka)output/
— Example generated articleAll running on macOS with Ollama + Hermes3:8b locally.