Hermes Agent is an MIT-licensed, self-improving AI agent from Nous Research with a built-in learning loop: it creates skills from experience, nudges itself to persist knowledge, searches past conversations via FTS5, and builds cross-session user models through Honcho. Unlike laptop-bound chat CLIs, Hermes ships six terminal backends—local, Docker, SSH, Singularity, Modal, and Daytona—and a messaging gateway that lets you talk from Telegram, Discord, Slack, WhatsApp, or Signal while the agent runs on a remote host.
The README's positioning is explicit: "It's not tied to your laptop — talk to it from Telegram while it works on a cloud VM." For NodeMac customers, that cloud VM is a dedicated Mac mini M4 with macOS 15+, persistent ~/.hermes/ state, and launchd-managed gateway uptime—the same pattern we document for our OpenClaw gateway runbook. Teams migrating from OpenClaw can run hermes claw migrate to import SOUL.md, skills, memories, and API keys from ~/.openclaw.
For install paths, gateway wiring, and launchd on any Mac—not only M4 hosts—see our Hermes Agent macOS setup guide —8 steps, troubleshooting, and FAQ schema for Telegram and Discord teams.
Why a dedicated Mac mini M4 beats a laptop for Hermes
Hermes compounds value when three loops stay alive: gateway message delivery, cron-scheduled automations, and memory/skill curation (periodic nudges write to ~/.hermes/). A sleeping MacBook pauses all three.
| Factor | Local MacBook (16GB) | NodeMac M4 dedicated host |
|---|---|---|
| Gateway uptime | Stops when lid closes | 24/7 Telegram/Discord/Slack bot |
| Cron delivery | Misses nightly jobs on sleep | Built-in scheduler fires on schedule |
| Learning loop | Memory nudges stall | Persistent ~/.hermes/ on tenant SSD |
| SSH backend target | N/A (you are local) | Remote Mac is the execution plane |
| OpenClaw coexistence | Competes with daily apps | Separate user or adjacent node |
| Regional latency | N/A | HK/JP/KR/SG/US East for API + messaging |
Quotable: Hermes exposes 40+ tools across configurable toolsets, supports 200+ models via OpenRouter, and runs gateway + CLI from a single process—budget 16GB RAM for gateway + one active subagent; 24GB if you colocate Hermes gateway with OpenClaw or heavy MCP servers.
Source: Hermes Agent README.
Architecture: CLI, gateway, memory, and backends
Hermes splits into layers teams should map before provisioning:
- Interactive CLI (
hermes) — Full TUI with multiline editing, slash-command autocomplete, streaming tool output, andCtrl+Cinterrupt-and-redirect. Start here for first-time setup. - Messaging gateway (
hermes gateway) — Single process serving Telegram, Discord, Slack, WhatsApp, Signal, and Email. DM pairing and command approval patterns are documented upstream under Security. - Memory & skills — Agent-curated memory with periodic nudges; autonomous skill creation after complex tasks; skills self-improve during use. User skills land in
~/.hermes/skills/; OpenClaw imports go to~/.hermes/skills/openclaw-imports/. - Six terminal backends — Execution environments for shell/file tools:
- local — default on the host OS
- Docker — container isolation
- SSH — run tools on a remote machine (your NodeMac node)
- Singularity — HPC clusters
- Modal / Daytona — serverless persistence; hibernate when idle
- Model routing — Switch providers with
hermes model— Nous Portal, OpenRouter, OpenAI, Anthropic, NVIDIA NIM, and BYO endpoints. No code changes required.
Optional Nous Portal (hermes setup --portal) bundles model access + Tool Gateway (Firecrawl search, FAL images, Browser Use, TTS) under one OAuth subscription.
Hermes Agent vs OpenClaw vs OpenHuman
NodeMac hosts often run more than one agent stack. Use this matrix before colocating on one M4.
| Dimension | OpenClaw (MIT) | Hermes Agent (MIT) | OpenHuman (GPL-3.0) |
|---|---|---|---|
| Primary persona | Gateway automation plane | Self-improving terminal + gateway agent | UI-first personal memory |
| Learning loop | Plugin/workspace files | Built-in skills + memory nudges + FTS5 search | Memory Tree + 20-min auto-fetch |
| Messaging | Slack, Telegram, Discord, … | Telegram, Discord, Slack, WhatsApp, Signal | Desktop mascot + Meet agent |
| Remote execution | Gateway on host | SSH backend + gateway on host | Desktop-first macOS |
| OpenClaw migration | N/A | hermes claw migrate built-in | Comparison in upstream README |
| Cron scheduling | launchd + gateway skills | Built-in cron with platform delivery | Auto-fetch loop |
| Best on NodeMac when… | Channel bots + MCP tools | Learning agent + Telegram-from-phone | Pre-loaded OAuth context |
Recommended path: If you need Slack socket-mode DevOps bots, start with our OpenClaw Slack playbook. If you want an agent that gets smarter across sessions and you chat from Telegram while it runs on a Mac mini, provision Hermes. If you need 118 OAuth connectors with Obsidian vault memory, see OpenHuman on Mac mini M4. Run one primary gateway per 16GB node; colocate Hermes + OpenClaw only on 24GB+ tiers.
Eight-step runbook: Hermes Agent on NodeMac Mac mini M4
- Provision — Order an M4 16GB / 256GB node from NodeMac pricing. Pick Tokyo or Singapore for APAC Telegram/API latency, Virginia for US-East. Published monthly plans start near $96.9.
- SSH baseline —
ssh user@your-host; confirm macOS 15+, Apple Silicon (uname -m→arm64), and outbound HTTPS. Install Homebrew if missing. - Install Hermes — Upstream one-liner (verify signature policy in your org before piping to shell):
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash source ~/.zshrc # or ~/.bashrc hermes doctor - Configure models and tools — Run the setup wizard or configure manually:
hermes setup # full wizard; detects ~/.openclaw for migration # OR hermes setup --portal # Nous Portal OAuth + Tool Gateway hermes model # pick provider:model hermes tools # enable/disable toolsets - Migrate from OpenClaw (optional) — If
~/.openclawexists:hermes claw migrate --dry-run # preview hermes claw migrate # import SOUL.md, skills, memories, keys - Start the messaging gateway — Configure platforms, then daemonize:
hermes gateway setup hermes gateway startFor 24/7 uptime, wrap in launchd per our OpenClaw LaunchAgent state-dir matrix—Hermes logs and config live under~/.hermes/, not~/.openclaw/. - Point local CLI at the remote host (optional) — Configure the SSH terminal backend so your laptop CLI executes tools on the NodeMac node while you travel. Set backend to SSH with your NodeMac host key in Hermes config (see upstream Tools docs for
terminal.backend = ssh). - Schedule and backup — Add cron jobs in natural language via Hermes cron; tar
~/.hermes/weekly. Monitor RAM during subagent bursts—if swap exceeds 2GB sustained, upgrade to 24GB or split agents across nodes.
Troubleshooting
hermes doctor reports missing dependencies
Symptom: Doctor fails on uv, Python 3.11, Node.js, ripgrep, or ffmpeg.
Fix: Re-run the install script; Hermes uses uv for Python 3.11. On NodeMac, brew install ripgrep ffmpeg node fills gaps Homebrew can supply. Re-run hermes doctor until clean.
Gateway bot does not respond on Telegram
Symptom: hermes gateway start runs but DMs get no reply; logs mention pairing or unauthorized user.
Fix: Complete DM pairing per upstream Security docs—first message may require /pair or allowlist setup in hermes gateway setup. Confirm the bot token env var persisted across launchd restarts (store in Keychain or a root-owned env file, not an ephemeral SSH session export).
SSH backend cannot reach NodeMac host
Symptom: Tool calls fail with SSH connection timeout or host key mismatch.
Fix: Pre-seed ssh-keyscan for your NodeMac hostname into ~/.ssh/known_hosts on the machine running the Hermes CLI. Test bare SSH before enabling the backend. Ensure the NodeMac security group allows your client IP on port 22.
Operational implications
- Isolate state — Keep
~/.hermes/on a dedicated macOS user; never share with untrusted teammates. - Gateway secrets — Telegram/Discord tokens belong in Keychain or launchd
EnvironmentVariables, not world-readable dotfiles. - Skill hygiene — Review auto-created skills in
~/.hermes/skills/monthly; delete stale openclaw-imports after migration validation. - Model costs — OpenRouter routes 200+ models; set spend caps in provider dashboards. Nous Portal consolidates tool + model billing if you prefer one invoice.
Apple's Mac mini technical specifications list M4 base models with 16GB unified memory—adequate for Hermes gateway alone; tight when colocated with Xcode or a second agent gateway.
On an always-on Mac mini, pair gateway hosting with Hermes subagent delegation so Telegram boss chat fans out research + file workers without your laptop awake.
FAQ
Does Hermes Agent replace OpenClaw on NodeMac?
No—they overlap on messaging but differ in architecture. OpenClaw excels at gateway-centric MCP and channel automation; Hermes excels at self-improving memory, skills, and built-in cron. Many teams run one primary agent per Mac mini; Hermes even imports OpenClaw data via hermes claw migrate.
Can I use Hermes without Nous Portal?
Yes—bring your own keys for OpenRouter, OpenAI, Anthropic, or any supported endpoint. hermes model switches providers without code changes. Portal is optional convenience, not a lock-in requirement.
How much RAM does the gateway + CLI need?
Budget 16GB for gateway + one active conversation with tool calls. 24GB if you run subagents, MCP servers, and a second agent (OpenClaw or OpenHuman) on the same host.
Does Hermes work on Apple Silicon Mac mini?
Yes—the install script supports macOS on Apple Silicon. NodeMac M4 nodes are a natural fit: native macOS, SSH access, and 24/7 power for gateway + cron. Modal/Daytona backends are optional for burst workloads but not required on a dedicated Mac.
Why NodeMac instead of a $5 VPS?
A generic Linux VPS runs Hermes but lacks native macOS tooling some teams still need (Keychain, AppleScript bridges, iOS-adjacent CI). NodeMac M4 at $96.9/month buys Apple Silicon, macOS 15+, and APAC regions (HK/JP/KR/SG/US) with SSH/VNC—closer to Hermes' "cloud VM" story than a cold-start VPS you must harden yourself.