Hermes Agent — the runtime that doesn't sleep.
The persistent-daemon agent runtime that pairs with Claude Code in the Articulate stack. WhatsApp bridge, self-learning skill loop, Curator-managed library, persistent memory per user. Replaces n8n in the MEP automation pair. BossCouple is pilot #1.
What it is
Hermes Agent is an open-source agent runtime from Nous Research — the same people behind the Hermes LLM family. MIT-licensed. Self-hostable. MCP-native — same connectors, same auth model as Claude Code. Model-agnostic via OpenRouter — Anthropic, OpenAI, Mistral, Llama, DeepSeek, Qwen, whatever the engagement calls for.
It runs as a persistent background process on a VPS. Cron ticks on the clock. WhatsApp / Telegram / Discord gateways for two-way async messaging. A self-learning skill loop that writes new skills from lived corrections, and a Curator that keeps the library coherent without human babysitting.
The pairing. Claude Code is the interactive build surface. Hermes is the 24/7 daemon. Same MCP plumbing underneath. Different jobs. Anthony writes Hermes skills in Claude Code, deploys them to the VPS, and the agent runs them on its own from then on.
Why it replaces n8n
From 20 May, the Marketing Engine Pilot automation substrate was Cloudflare Workers plus n8n as a visual-editor exception. After Seb's full review on 23 May and the BossCouple pilot brief, n8n is out. The reasoning:
- Clients don't actually log into n8n post-handover. The visual editor sells the engagement; nobody opens it. The "we keep the visual editor for clients" column wasn't earning its keep.
- n8n is HTTP-shaped automation pretending to be conversational automation. The recipes that genuinely need conversation, memory, or a skill-library — WhatsApp bots, mentor-in-pocket products, panel-of-experts inflow — are built better in Hermes than wedged into n8n nodes.
- Cloudflare Workers cover everything else. Webhook-in, API-call-out, state-read — Worker territory. We were paying for n8n where we already had Workers.
- Hermes brings what neither covers — WhatsApp bridge, self-learning skills, Curator, persistent per-user memory. That gap is what made BossCouple's "private WhatsApp agent for Paul and Nyree" buildable rather than a research project.
So the pair is now Cloudflare Workers (HTTP-shaped) + Hermes (conversation- and daemon-shaped). n8n is retired. Anything previously routed at it goes to one or the other.
What's inside it — five load-bearing pieces
1. WhatsApp bridge (Baileys)
Emulates a WhatsApp Web session through Baileys, the open-source Node library. Dedicate a phone number to the bot, allowlist the users who can DM it, and everyone else gets silence — no pairing code, no auto-reply, no signal the number is alive. Voice notes auto-transcribed via ElevenLabs Scribe. TTS replies sent as MP3 attachments. Streaming responses — the bot edits its message as it generates.
Not the official WhatsApp Business API. No Meta developer account, no business verification, no per-message fees. Carries a small account-ban risk that's mitigated by using a dedicated number and never doing bulk outbound.
2. The skill system — same SKILL.md format as Anthropic / agentskills.io
Three ways skills come into existence: bundled (ship with Hermes), hub-installed (hermes skills install ... from agentskills.io / GitHub), and agent-created (the bot autonomously saves the working procedure to ~/.hermes/skills/ after solving a complex task or being corrected).
The third path is the unusual one. Most agent runtimes don't write their own skills. Hermes does — and because the format is the same as Anthropic's, anything Anthony writes in Cowork is portable to Hermes, and anything Hermes writes is portable back. The skill library compounds.
3. The Curator
Autonomous 7-day background pass that grades, consolidates, and archives agent-created skills using a cheap aux model. Never touches bundled or pinned skills. Always takes a snapshot before mutating — rollback is one command. Crucially does not auto-delete — worst case is move to .archive/.
This is the discipline that lets the skill library grow without becoming a graveyard of half-broken duplicates.
4. MEMORY.md + USER.md
2,200 chars of facts about the environment and conventions, plus 1,375 chars of profile, pinned into every session prompt. Plus FTS5 SQLite search across every past conversation. "What did Pavlos say about the JBR listing in March?" actually returns the answer — not a vibe, the message.
5. Model-agnostic via OpenRouter
One API key fans out to 100+ models — Anthropic, OpenAI, Mistral, Llama, DeepSeek, Qwen, Groq, Together, Fireworks. Per-call provider selection means Haiku for triage at one-thirtieth the cost of Sonnet, Opus for the hard reasoning, and a regional provider when a tenant needs data-residency without leaving the Anthropic-quality band.
Pilot #1 — BossCouple's private WhatsApp agent
The first live build. Paul Lunghis and Nyree Lunghis — Christie's Dubai agents operating jointly as BossCouple — DM a dedicated bot number. Their conversations stay private (separate sessions per WhatsApp chat ID). The bot's shared memory grows as it learns the family and the business.
The five-to-eight seed skills
Anthony writes these once. Pins them with hermes curator pin <name> so the Curator can never archive them:
bosscouple-brand— voice, BOSScouple casing, joint advisory positioningbosscouple-guardrails— what the bot must never do (quote prices, promise visa outcomes)bosscouple-lead-intake— qualify and route inboundbosscouple-paul-voice— Paul's registerbosscouple-nyree-voice— Nyree's registerchristies-positioning— how to talk about the channelgreece-visa-briefing— common Q&A
The live training loop
Paul and Nyree use the bot. When it does something wrong, they correct it inline ("don't refer to Greece as a 'cheap' option — say 'accessible'"). The bot's skill_manage tool auto-fires on correction-shaped exchanges. New skills land in ~/.hermes/skills/bosscouple/. Anthony does a weekly read of the curator REPORT.md, pins the keepers, edits or deletes the noisy ones.
The bot gets sharper week by week. Anthony's role compresses from "every reply" to "weekly review."
What it costs — year one
| Item | One-time | Recurring |
|---|---|---|
| Hostinger KVM 2 (24 months upfront) | $215.76 | — |
| UAE prepaid SIM (per bot number) | ~$14 (AED 50) | ~$1.50/mo (AED 5) |
| OpenRouter credit (per deployment) | $10–30 starter | $5–20/mo (BossCouple-class volume) |
| Domain (optional, for dashboard) | $10/yr | $10/yr |
| All-in per Hermes deployment | ~$420 (AED ~1,545) | |
Less than 1% of a single BossCouple deal commission. Pricing is not the blocker. The work is the discipline — the seed skills, the pinning, the weekly Curator review. Skip that and the bot drifts into a slop generator. Hold the discipline and it gets sharper every week.
Install discipline — locked 23 May
- Host: Hostinger KVM 2 — $8.99/mo, 2 vCPU, 8 GB RAM. Not the Mac mini (8 GB ceiling already pressured). KVM 1 is too small once Baileys + Python + Whisper + an aux model run together.
- State source of truth:
~/ClaudeWork/on Anthony's Mac stays canonical. Hermes reads via git mirror or rsync over Tailscale. Hermes never writes into~/ClaudeWork/directly. Same rule as Claude Code: agents read the vault, humans curate it. - Skill library: seeded by Anthony in
~/.hermes/skills/<category>/, grown by the agent autonomously, gated byhermes curator pin <name>on the non-negotiables. - Cron parity: any Hermes cron must not duplicate an existing Claude Code scheduled task. Either-or per workflow, never both. The split: interactive / Anthony-watching → Claude Code; operational / always-on → Hermes.
- Notification: WhatsApp itself for the user-facing replies, ntfy
coworkmini-x7q9p3aw2tfor one-way Anthony alerts, optional Telegram for two-way async. - Pilot scope: one workflow at a time. BossCouple is pilot #1. Other workflows (daily brief, stakeholder chaser, villa pulse) come online one at a time after each proves out.
What Hermes does not replace
- Claude Code as the interactive build surface — this website, MEP recipes, GIG scripts, all the daily work.
- The
pm.pluginand/pm:*skills — project-anchor walkers anchored to~/ClaudeWork/, not background daemons. - The
~/ClaudeWork/vault as canonical project state. - Cowork mode for document / deck / PDF assembly.
- Cloudflare Workers for HTTP-shaped automation — Workers and Hermes are paired, not competing.
The data-sovereign angle
For UAE/KSA regulated buyers (finance, healthcare, family-business modernisation), Hermes on a Hostinger UAE-PoP VPS becomes the conversational anchor of the "data-sovereign marketing stack" bundle. Stack it with Cloudflare Workers at the edge, OpenRouter (or local Ollama on the same VPS) for inference, Listmonk for email, Plausible for analytics, and a Security Review as a pre-ship line item — and the pitch reads:
"Your AI, on your infrastructure, behind your privacy policy. We hand it over at week eight."
Standing on the shoulders of
The work that made this page possible. Both files live in the vault, both readable by every Articulate persona, both the substrate for any future Hermes deployment.
- Seb's full review — deploy spec, costs, training loop, risks, open questions. The verdict landed inside the BossCouple folder because that's where the live pilot sits.
~/ClaudeWork/Clients/BossCouple/hermes-agent-research.md - The 9-workflow stack plan — what Hermes is built to run beyond BossCouple. Daily brief, stakeholder chaser, meeting prep, Friday capacity pulse, content production line, humaniser, villa occupancy pulse.
~/ClaudeWork/Claude/hermes-stack.md - The WhatsApp pipeline spec — the bridge, the auto-transcription path, the historic-bulk extraction.
~/ClaudeWork/Claude/whatsapp-pipeline.md - The credential canon — Hostinger, OpenRouter, ElevenLabs Scribe, the UAE prepaid SIM, the Tailscale auth key.
~/ClaudeWork/Claude/credentials.md