Hermes (hermes-agent · site · MIT) is the engine's optional assistant gateway — the h lane. It is NOT a coding CLI: it bridges chat apps (Slack, WhatsApp, Telegram, Discord, Signal, Email, …) to an agent running on your machine, so you can reach the engine from wherever the conversation already is. Slack is databayt's wired channel.
Hermes replaced OpenClaw as the gateway lane. If a machine previously ran OpenClaw, Hermes imports its persona, memories, skills, and platform configs in one command:
hermes claw migrate --dry-run # preview
hermes claw migrate # import from OpenClawInstall
The onboarding wizard installs Hermes when the Hermes (gateway) lane is selected (default: all lanes). Manually:
# macOS / Linux / WSL2
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash# Windows (PowerShell)
iex (irm https://hermes-agent.nousresearch.com/install.ps1)Installs to ~/.hermes (Windows: %LOCALAPPDATA%\hermes), CLI binary hermes, launcher alias h (written into the managed # BEGIN databayt agents block). First-time model/provider setup: hermes setup.
Gateway — wire the channels
The gateway is a single background process that runs all configured platform adapters at once. Setup is interactive by design — onboarding never runs it headless:
hermes gateway setup # interactive wizard — select Slack when prompted
hermes gateway run # run in foreground (this terminal)
hermes gateway install # install as a user service (persists across reboots)
hermes gateway start # start the installed service
hermes gateway status # is it up?Diagnostics: hermes doctor.
Slack wiring (databayt's channel)
Hermes connects to Slack over Socket Mode (WebSocket) — your machine needs no public endpoint.
1. Create the Slack app from the Hermes manifest:
hermes slack manifest --write # writes ~/.hermes/slack-manifest.jsonThen at api.slack.com/apps → Create New App → From an app manifest → pick the databayt-sh workspace → paste the manifest JSON → create. The manifest carries the required scopes (chat:write, app_mentions:read, channels:history, groups:history, im:*, files:*, …) — without channels:history the bot cannot see channel messages.
2. Collect both tokens and put them in ~/.hermes/.env:
SLACK_BOT_TOKEN=xoxb-... # OAuth & Permissions → Bot User OAuth Token
SLACK_APP_TOKEN=xapp-... # Basic Information → App-Level Tokens (connections:write)3. Allowlist yourself (required — Hermes ignores everyone else):
SLACK_ALLOWED_USERS=U01ABC2DEF3 # your Slack Member ID (profile → ⋮ → Copy member ID)4. Optional — proactive notifications. A home channel lets Hermes send (not just reply): scheduled results, background-task completions, broadcasts:
SLACK_HOME_CHANNEL=C01234567890 # channel details → bottom → Channel IDInvite the bot to any channel it should live in: /invite @Hermes Agent. Then:
hermes gateway setup # select Slack
hermes gateway install # persist as a user serviceHermes-Slack vs Slack-MCP — two different pipes. The Slack MCP (
~/.claude/mcp.json→mcp.slack.com) lets Claude post to Slack as a tool (/slack send …). The Hermes gateway lets you talk to an agent on your machine from Slack, and lets that agent push proactive notifications back. They coexist; neither replaces the other.
Daily use
| Action | How |
|---|---|
| Talk to Hermes in the terminal | h |
| Gateway up? | hermes gateway status |
| Adapter states (from CLI) | /platforms inside h |
| Diagnose | hermes doctor |
| Change model/provider | hermes model |
| Refresh Slack slash commands | hermes slack manifest --write, then reinstall the app |
Kun site integration (social egress)
The kun site's Social Hub talks to a Hermes endpoint via env vars (see .env.example): HERMES_API_URL, HERMES_API_KEY, and the client-visible NEXT_PUBLIC_HERMES_API_URL. The egress contract is evolving with hermes-agent — the honest boundary stays the same as it was under OpenClaw: Claude writes the copy; Hermes only relays it. See Social.
Telegram is not routed through Hermes. The brand-channel posting lane (
telegramin the Social Hub) calls the official Bot API directly from the site (TELEGRAM_BOT_TOKEN/TELEGRAM_CHANNEL_ID) — a plain HTTPS call that works from Vercel with no local gateway. A future Hermes Telegram adapter is the other pipe: chatting with your machine's agent from Telegram. Same distinction as Hermes-Slack vs Slack-MCP above.
Troubleshooting
| Symptom | Fix |
|---|---|
h / hermes not found | Restart the shell; the installer adds Hermes to PATH — or re-run the install one-liner |
| Bot doesn't see channel messages | The #1 setup issue is missing event subscriptions (message.channels / message.groups), not just the channels:history / groups:history scopes — re-create from the manifest (it carries both) and reinstall the app to the workspace |
| DMs blocked | Enable the Messages Tab in the Slack app's App Home settings |
| Messages silently ignored | Your Member ID isn't in SLACK_ALLOWED_USERS, or the channel isn't in SLACK_ALLOWED_CHANNELS |
| Scope/event changes not taking effect | Reinstall the app to the workspace (Slack requires it) |
| Gateway dies on reboot | You ran hermes gateway run (foreground) — use hermes gateway install for a persistent user service, then hermes gateway start |