Hermes Fleet Setup Guide

4 agent machines + 1 M4 control surface · Tailscale mesh · Mech 1 peer gateways · Mech 3 unified dashboard.

Fleet roster: machine-0..3 + M4gateway port 8377 · 100.x.y.z mesh · shared HERMES_API_SERVER_KEY
0 / 8 stages complete
Tick the stage boxes below — progress sticks in this browser.
MECH 1 — bot-to-bot peer mesh (autonomous @mentions) MECH 3 — M4 dashboard, 4 remote gateway connections TAILSCALE — encrypted 100.x.y.z, no port forwarding

Fleet diagram — click a node

live map
M4 MACBOOK PRO CONTROL SURFACE · HERMES DESKTOP MECH 3 · 4 REMOTE GATEWAYS MACHINE-0 GPU · 5060 Ti 16GB HERMES + API_SRV MECH 1 PEER HEAVY LIFTER MACHINE-1 CPU · E5 / 8GB HERMES + API_SRV CLOUD MODEL ONLY CODER MACHINE-2 CPU · E5 / 8GB HERMES + API_SRV CLOUD MODEL ONLY REVIEWER / QA MACHINE-3 CPU · E5 / 8GB HERMES + API_SRV CLOUD MODEL ONLY WRITER / OPS T A I L S C A L E 1 0 0 . x . y . z M E S H BLACK = Mech 1 peer links · RED = Mech 3 dashboard links · click any plate for specs

Machine-0 · GPU node

MECH 1

Heavy lifter / researcher

RTX 5060 Ti 16GB · local or heavy cloud model · api_server :8377

Only box that can run local models. Do research synthesis and hard reasoning here; point it at a local inference server or a strong cloud model.

1

Prerequisites — every box

Tailscale + Hermes install & verify

# Windows (Machine 0 already done)
winget install Tailscale.Tailscale
# macOS (M4)
brew install tailscale
# Linux agent boxes
curl -fsSL https://tailscale.com/install.sh | sh
tailscale up
tailscale ip   # note each 100.x.y.z
# Every machine: Hermes agent
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
hermes doctor
hermes setup --portal   # or: hermes model
2

Machine-0 — GPU node

Windows · 5060 Ti · gateway + key

hermes gateway setup   # enable api_server, port 8377
# ~/.hermes/config.yaml
gateway:
  platforms:
    api_server:
      enabled: true
      extra:
        port: 8377
# ~/.hermes/.env (create if missing)
HERMES_API_SERVER_KEY=<your-strong-random-key>
# generate one:
python -c "import secrets; print(secrets.token_urlsafe(32))"
hermes gateway start

Optional local model: hermes model for a local backend, or point config.yaml at llama.cpp / vLLM / Ollama on http://localhost:8080/v1. 16GB VRAM fits quantized 70B-class.

3

Machines 1–3 — CPU nodes

Bosgame E5 / 8GB · cloud models only

Repeat on each of the 3 boxes: same Tailscale, Hermes, gateway, and same HERMES_API_SERVER_KEY value as Machine-0. Cloud API models only (Nous Portal / OpenRouter) — never local inference on 8GB. Keep each bot's toolset lean: file ops, terminal, maybe browser.

hermes gateway setup   # enable api_server :8377
# ~/.hermes/.env
HERMES_API_SERVER_KEY=<same-key-as-machine-0>
hermes gateway start
4

M4 — control surface

Hermes Desktop + Tailscale

brew install tailscale
tailscale up && tailscale ip
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
hermes setup --portal && hermes doctor
hermes desktop   # launches the dashboard

Keep the M4 as a clean dashboard, or also run light agents on it (fast CPU + Neural Engine). Set the M4 connection as Primary later so Sessions opens there.

5

Peer mesh — Mechanism 1

Register from one hub, then mirror

# From Machine-0 (hub):
hermes peer add machine-1 --url http://<ip-1>:8377 --key <KEY>
hermes peer add machine-2 --url http://<ip-2>:8377 --key <KEY>
hermes peer add machine-3 --url http://<ip-3>:8377 --key <KEY>
hermes peer list   # expect 3 peers
# ~/.hermes/config.yaml — write SAME block on EVERY machine, then:
# hermes gateway restart
bot_peers:
  machine-0: { url: "http://<ip-0>:8377", api_server_key: "<KEY>" }
  machine-1: { url: "http://<ip-1>:8377", api_server_key: "<KEY>" }
  machine-2: { url: "http://<ip-2>:8377", api_server_key: "<KEY>" }
  machine-3: { url: "http://<ip-3>:8377", api_server_key: "<KEY>" }

Symmetric registration = any bot can @mention any remote bot. The Bot Mode protocol learns the roster automatically.

6

Dashboard — Mechanism 3

4 remote gateways on the M4

In Hermes Desktop: Settings → Gateways (plug icon) → Add connection → Remote gateway, once per machine: Name machine-0..3, URL http://<tailscale-ip>:8377, auth = that machine's HERMES_API_SERVER_KEY. Roster shows every profile; duplicates disambiguate as @name-device (e.g. @researcher-machine-0). Group chats can span machines.

7

Bot creation

Option A on home box · B from M4

A (recommended): create each bot where it runs — chat /newagent or New Agent dialog, or CLI:

# on the bot's home machine:
hermes profile create heavy-lifter --description "Heavy reasoning, research synthesis"
hermes -p heavy-lifter setup
# Machine-1: coder · Machine-2: reviewer · Machine-3: writer

B: from the M4 New Agent dialog, use the Create on picker to target a remote machine.

8

Smoke test & roles

Prove Mech 1 + Mech 3, then assign

hermes peer list            # Mech 1 roster on each box
# from any bot: @coder-machine-1 run a hello-reply check
# from M4: open each remote agent chat, send a probe message

Suggested split (adjust to your workflows): M0 heavy-lifter/researcher · M1 coder · M2 reviewer/QA · M3 writer/ops-cron. Different model pin per bot is fine.

Role plates — pin one bot per machine

MACHINE-0 · GPU

Heavy lifter

Research synthesis, hard reasoning. Local quant model or strongest cloud pin. Generous context, full tools.

profile: heavy-lifter

MACHINE-1 · E5/8GB

Coder

Implements code, writes tests. Cloud API model. Lean: file ops, terminal, git, maybe browser.

profile: coder

MACHINE-2 · E5/8GB

Reviewer / QA

Reads diffs, checks tests, audits. Smallest footprint — diff viewer + test runner only.

profile: reviewer

MACHINE-3 · E5/8GB

Writer / Ops

Content, docs, ops routines, cron jobs. Scheduler + editor tools.

profile: writer