Hermes Agent Mac Setup: Install, Gateway & Migration (2026)

Hermes Agent is Nous Research's open-source, self-improving AI agent (github.com/NousResearch/hermes-agent, MIT). Unlike a single-shot chat UI, it runs a learning loop: curated memory, agent-created skills, FTS5 session search, scheduled cron jobs, and messaging gateways (Telegram, Discord, Slack, WhatsApp, Signal). This guide walks through a Mac setup—MacBook or a headless Mac mini—without assuming you rent cloud hardware.
Why run Hermes on a Mac
Hermes targets “runs anywhere,” but macOS is a practical default:
- Native installer — one-liner
install.shsupports macOS (plus Linux/WSL). - Apple Silicon — Python 3.11 via
uv, Node for tooling,ffmpeg/ripgrepfor media and search tools. - Gateway process —
hermes gatewaystays up while you chat from Telegram; a desktop Mac that sleeps breaks that unless you move the gateway to an always-on host. - OpenClaw path —
hermes claw migrateimports memories, skills, and messaging settings from~/.openclawif you already run OpenClaw on Mac mini.
Compare discipline layers: Obra Superpowers adds process skills; Hermes adds runtime, tools, and channels—they stack, not compete.
Architecture on macOS
| Component | Typical path / command | Role |
|---|---|---|
| CLI entry | hermes in ~/.local/bin | Interactive TUI, slash commands |
| Config | ~/.hermes/ | Provider keys, tool toggles, gateway settings |
| Gateway | hermes gateway start | Telegram/Discord/Slack/WhatsApp/Signal bridge |
| Agent loop | Python 3.11 venv via uv | Tool calls, subagents, cron scheduler |
| Terminal backends | hermes tools | local, Docker, SSH, Modal, Daytona, Singularity |
| Memory / skills | ~/.hermes/skills/, FTS5 DB | Cross-session recall, agentskills.io format |
External reference: Hermes documentation and Apple Mac mini specs if you size RAM for gateway + Docker backends.
Provider flexibility: hermes model switches among Nous Portal, OpenRouter (200+ models), OpenAI, Anthropic, NVIDIA NIM, and custom endpoints—no code changes.
Eight-step Mac install runbook
- Step 1 — Prerequisites — - macOS 13+ recommended, 16 GB RAM if you enable Docker terminal backend + gateway concurrently. - Xcode CLI tools:
xcode-select --install- Homebrew optional; the installer pullsuv, Python 3.11, Node,ripgrep,ffmpeg. - Step 2 — Run the official installer — ```bash curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash ``` Reload shell: ```bash source ~/.zshrc # or ~/.bashrc ```
- Step 3 — Verify CLI — ```bash hermes doctor hermes --version ```
doctorreports missing binaries, venv issues, or PATH problems. - Step 4 — First-time setup wizard — ```bash hermes setup ``` Interactive flow: LLM provider, API keys, default model, enabled toolsets. Shortcut for Nous bundled tools: ```bash hermes setup --portal ``` (OAuth + Tool Gateway for search, images, TTS, browser—optional.)
- Step 5 — Pick a model and tools — ```bash hermes model hermes tools ``` Enable only what you need—each tool adds context and failure surface.
- Step 6 — Smoke-test the TUI — ```bash hermes ``` In-session:
/model,/skills,/new,/usage. Ask a small task; confirm tool calls stream in the TUI. - Step 7 — Optional messaging gateway — ```bash hermes gateway setup hermes gateway start ``` Pair Telegram (or other platforms) per messaging docs. Use
/stopon mobile to interrupt a run. For 24/7 gateway on a Mac that must not sleep: disable sleep on a spare Mac mini, or run gateway on a remote host via SSH terminal backend (Step 8). - Step 8 — Migrate from OpenClaw (if applicable) — ```bash hermes claw migrate --dry-run hermes claw migrate ``` Imports SOUL.md, MEMORY.md, skills →
~/.hermes/skills/openclaw-imports/, messaging configs, and allowlisted API keys. Full option list:hermes claw migrate --help.
Terminal backends: local Mac vs SSH
| Backend | When to use | Mac role |
|---|---|---|
local | Daily dev on MacBook | Agent shell runs on laptop |
docker | Reproducible tool sandbox | Docker Desktop on Mac |
ssh | Gateway on laptop, execution on remote Mac/Linux | MacBook controls Mac mini or VPS |
modal / daytona | Serverless hibernate between sessions | Minimal idle cost |
Configure via hermes tools and config file—see tools documentation.
Troubleshooting
hermes: command not found
Pattern: Shell cannot find ~/.local/bin/hermes.
Fix:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
Re-run installer if binary missing: curl -fsSL .../install.sh | bash
hermes doctor reports Python/uv errors
Pattern: Wrong Python version or broken venv.
Fix:
curl -LsSf https://astral.sh/uv/install.sh | sh
hermes update
hermes doctor
Contributor path (manual): clone repo, ./setup-hermes.sh per README.
Gateway connected but agent idle / no reply
Pattern: Gateway running, Telegram messages ignored.
Fix: Check hermes gateway logs, verify bot token in config, confirm your user ID is allowlisted (DM pairing). Restart:
hermes gateway stop
hermes gateway start
On Apple Silicon, keep Docker Desktop updated when you enable the docker backend—stale VM images are a common source of slow first tool calls. For teams that already run scheduled jobs, wire Hermes cron to the same machine that hosts your gateway so pairing tokens and allowlists stay in one ~/.hermes/ tree.
When benchmarking providers, log token usage with /usage inside the TUI before you enable every tool category. That single habit prevents surprise bills when browser or image tools pull large contexts on every Telegram message.
If you colocate Hermes with other agents on one host, allocate at least one CPU core per active gateway worker and monitor ~/.hermes/ disk growth from FTS5 session indexes.
FAQ
hermes claw migrate bridges them.hermes gateway 24/7 without sleep interrupts.hermes update — then hermes doctor to confirm.Related reading
Need an always-on Mac?
Optional Mac mini or remote SSH backend keeps Hermes gateway alive—see help for sleep settings or cloud Mac options.