Slack: bring Hermes into your team workspace

Connect Hermes to Slack over Socket Mode so allowed teammates can message it in DMs, channels and threads.

Docs-backedReviewed Oct 29, 2026

What Slack is for

The Slack adapter lets Hermes take part in your workspace as a bot user. It connects through Socket Mode, an outbound WebSocket, so you do not need a public URL or open port. People on the allowlist can DM the bot directly, or @mention it in channels where it replies in a thread. Hermes can generate a ready-made Slack app manifest for you, which cuts down the clicking in Slack's admin pages. Per-channel prompts, mention gating and reaction triggers are configurable, and cron jobs can deliver results to a home channel. That makes Slack a good place to land scheduled briefings your team will actually read.

What you need

  • A new Slack app (classic RTM apps are deprecated) with a Bot User OAuth Token (xoxb-) and an App-Level Token (xapp-) carrying the connections:write scope
  • Use the generated Agent view manifest for the complete scope/event set. Manual setup also needs files:write for uploads and message.mpim/mpim history/read for group DMs; assistant:write controls the working status/native streaming. Reinstall after changes.
  • Slack Member IDs for every user you want to allow

Set it up

  1. 1

    Run hermes slack manifest --agent-view --write, then create the app at api.slack.com/apps using "From an app manifest" and paste the generated ~/.hermes/slack-manifest.json

  2. 2

    Enable Socket Mode, generate the app-level token, turn on the App Home Messages Tab, then install the app to copy the xoxb- token

  3. 3

    Add SLACK_BOT_TOKEN, SLACK_APP_TOKEN and SLACK_ALLOWED_USERS (comma-separated Member IDs) to ~/.hermes/.env, or run hermes gateway setup and choose Slack

  4. 4

    Start the gateway with hermes gateway (or hermes gateway install to run it as a service), then /invite @Hermes Agent in each channel it should watch

Check it works

  • DM the bot; it should answer without an @mention
  • @mention the bot in an invited channel and confirm it replies in a thread
  • Upload a file and ask about it to confirm the files:read scope works

Limits and failure points

  • Any scope or event change requires reinstalling the Slack app, and missing history scopes mean channel messages never arrive
  • Slack blocks native slash commands inside threads, so use the ! prefix there (for example !stop)
  • Without an allowlist, an approved pairing or another explicit grant, the gateway will not execute messages. A configured allowlist normally suppresses unsolicited pairing codes. allow_bots: all can create loops; use it deliberately.

Messaging setup

All messaging platforms

Primary sources

Spotted something wrong or out of date? Tell us on X at @HermesWatcher (opens in a new tab) and we will fix it.

Want Hermes set up for you?

Setup help, custom agent builds and one-off projects. Tell us what you need and get a quote by email.