How-To Series · Episode 26 / 59 · Module 5: Everywhere You Are

Hermes · On Slack

Socket Mode means no public URL. Hermes stays behind your firewall.

After this videoYou can now run Hermes in Slack with no public URL.

Socket Mode connects over a WebSocket, so there is no public endpoint to host, and Hermes runs behind your firewall. The shortcut that makes Slack easier than Discord: hermes slack manifest --write generates a manifest that declares every scope, event, and slash command and enables Socket Mode, so you paste one file at api.slack.com/apps instead of clicking twenty toggles. You need two tokens: an app-level token (xapp-, scope connections:write) and a bot token (xoxb-). Two gotchas the manifest cannot fix: turn on the Messages tab in App Home or DMs are blocked, and reinstall after any scope change, then /invite the bot (it never auto-joins). Set SLACK_ALLOWED_USERS to your Member ID or the gateway denies everything. DMs answer all; channels need an @mention and reply in a thread; slash commands are blocked in threads, so use the ! prefix.

About these resources. Every command in this video comes from the Slack messaging doc.

Sources · What this video distills

1 docs page · every command below traces to one of them
Primary · Socket Mode, the manifest workflow, bot + app tokens, scopes/events, Messages tab, allowlist, thread behavior
Slack Setup
Read ↗

Commands shown · Copy and paste

each shows the source doc it came from
Generate the app manifestfrom source ↗
hermes slack manifest --write
Wire it upfrom source ↗
hermes gateway setup
hermes gateway # or: hermes gateway install
Invite the bot to a channelfrom source ↗
/invite @Hermes Agent
Run a command inside a threadfrom source ↗
!stop · !new · !model gpt-5.4

Going deeper · Related Hermes docs

further reading · not sources of facts shown above

Next in the series · Episodes that build on this

E25
Hermes on Discord
E27
Hermes on WhatsApp
E28
Hermes on Signal