Agent stack build plans · № 2 · Hermes community manager

Set it up

Install, pick a model, connect three platforms, then spend the second half of the evening on the locks — that’s the right ratio.

1 · Install and pick a model

macOS / Linux / WSL2 / Termux

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

Windows (PowerShell)

iex (irm https://hermes-agent.nousresearch.com/install.ps1)

Run hermes once in the terminal and connect a model provider — Nous Portal, OpenRouter, OpenAI, or your own endpoint; Hermes is model-agnostic. For an always-on community bot, pick a mid-tier model now: every handled message is an inference call, and you can raise quality later once you’ve seen the volume. Config lives in ~/.hermes/config.yaml, secrets in ~/.hermes/.env (precedence: CLI args > config.yaml > .env > defaults).

2 · Connect the three platforms

Each platform needs its own credentials — a Discord bot token, a Slack app, a WhatsApp link. The exact variable names and app-scopes are in the messaging docs per platform (they change; we won’t transcribe them here and be wrong by August). Tokens go in ~/.hermes/.env, platform settings under the platform’s section of config.yaml. Then start the gateway:

Run the gateway (one daemon, all platforms)

hermes gateway

Once it works in the foreground, install it as a background service — the gateway supports systemd (Linux) and launchd (macOS) installation, so it survives reboots. Add platforms one at a time: Discord first (best tooling for verification), then Slack, then WhatsApp.

3 · Lock the door before you invite it anywhere

Gateway access is binary — a sender is either allowed to command the agent or ignored. The check order is: per-platform allow-all → DM-pairing approved list → platform allowlists → global allowlist → global allow-all → deny. Two rules for a community bot:

Approve a paired user (per platform)

hermes pairing approve discord <code>

So: you and your mods pair and can command the bot everywhere; everyone else is community, not operator. There are no role tiers within one instance — if you want mods to get a more powerful bot than you’d trust the public with, that’s a second profile (hermes profile create mods, run with hermes --profile mods) with its own config, allowlist, and toolsets; hermes gateway list shows per-profile gateways. Most communities don’t need it on day one.

4 · Set the approval gates

Two settings in config.yaml carry the safety load:

5 · The scheduler

Cron is built in — jobs live in ~/.hermes/cron/, schedules can be natural language, and delivery targets any connected platform (which is how the pulse arrives as a DM). You’ll create the actual jobs from the prompts page; these are the management commands:

Cron management

hermes cron list
hermes cron status
hermes cron run <job>      # fire one now to test it
hermes cron pause <job>
hermes cron remove <job>

Worth knowing: hermes skills search and hermes skills install can pull existing skills from the Skills Hub ecosystem (with a security scan on install) — check whether someone has already published a changelog-fetcher before commissioning your own.

Disagree? Pin a note on it →