Hermes on Slack in a channel

SkillCommunication

Configure Hermes on Slack to see every message in a channel, not just @mentions/DMs, the authorization and mention gates, and the fail-open tradeoff. Use when a user wants the bot to respond in a Slack channel without being @mentioned, or asks why it isn't seeing unmentioned messages.

Use Hermes on Slack in a channel in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add Hermes on Slack in a channel and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use the Hermes on Slack in a channel skill

Details

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Hermes on Slack in a channelStart free

What this skill tells your AI

The instructions your AI receives, as published by humalike/hermes-humalike-plugin in skills/configure-slack-group/SKILL.md and read by ahel’s review.

Settings go in ~/.hermes/.env or the slack: section of ~/.hermes/config.yaml. Restart the gateway after changes.

Caveat: fail-open

Slack has no fail-closed "observe" path like Telegram (_observe_unmentioned_group_message) — every message either reaches the turn-taking gate (_handle_inbound, via handle_message) or no event is built for it at all. That gate is fail-open (built for DMs/@mentions: if the turn-taking service is down, the bot replies anyway). So with the config below, if the turn-taking service goes down, the bot replies to EVERYTHING in the channel. Fine for a small trusted channel; a real fail-closed observe would need a host-side change (plugins/platforms/slack/adapter.py).

Two gates — open both

Gate A — authorization (checked first, in gateway/authz_mixin.py; unauthorized messages never reach turn-taking):

SLACK_ALLOWED_USERS=<id1>,<id2>   # default: only these users
SLACK_ALLOW_ALL_USERS=true        # or: everyone in the workspace

Gate B — the @mention requirement (channels only, not DMs) — either:

SLACK_REQUIRE_MENTION=false                          # whole bot, all channels
SLACK_FREE_RESPONSE_CHANNELS=<chan_id1>,<chan_id2>   # or only these channels (safer)

Channel IDs: gateway logs after a message from that channel, or the Slack URL (.../C0123456789/...). config.yaml equivalents: require_mention: false / free_response_channels: [...] under slack:.

Gate C — one conversation per channel (REQUIRED for turn-taking) — in ~/.hermes/config.yaml:

slack:
  reply_in_thread: false

With the default (true), every top-level channel message becomes its own synthetic thread AND its own session — the bot answers each message separately in a separate thread and turn-taking can never coalesce the conversation. With false the whole channel shares one session and the bot replies once, to the latest message (replies inside existing threads stay threaded).

Fully open = SLACK_ALLOW_ALL_USERS=true + SLACK_REQUIRE_MENTION=false — weigh the fail-open caveat before doing this on a busy/public workspace. If disabling mentions globally, consider SLACK_ALLOWED_CHANNELS=<ids> so the bot doesn't free-respond in every channel it gets added to.

Verify

Restart the Hermes gateway, then look for [Slack] Socket Mode connected and tt inbound / tt decide / tt forward on an unmentioned message.

Diagnosis: "bot doesn't see unmentioned messages"

Log symptomCause
Unauthorized user: <id> on slackGate A — add user or SLACK_ALLOW_ALL_USERS=true
No tt inbound, no unauthorized lineGate B — mention still required for that channel
Ignoring message in non-allowed channelChannel missing from SLACK_ALLOWED_CHANNELS
tt decide ... stay_silentExpected — turn-taking speaks selectively
Replies to everything while service is downExpected fail-open behavior (see caveat)

Signals

GitHub stars
211
Forks
21
Last commit
Sep 2026

ahel review

  • S4info
    community integration, published by humalike, not slack

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Item type
skill
Key
configure-slack-group
Source
github.com/humalike/hermes-humalike-plugin