How to connect Slack to Hermes Agent
Connect Slack to Hermes with ClawLink in one click — 145 tools your AI agent can call from chat via hosted OAuth. No API keys, no manual setup.


Post messages and browse Slack channels. Once connected, Hermes Agent can read and act on Slack from chat — pairing, token refresh, and tool wiring handled for you.
Most guides for giving Hermes Agent Slack access start with registering your own OAuth app or pasting API keys into env files, then leave the token refresh and tool wiring to you. ClawLink gives Hermes a more practical Slack setup: pair once in the browser and your always-on Hermes agent can act on Slack for you, reading and doing real work on your behalf with no auth, token refresh, or tool wiring to build yourself.
Copy this prompt into Hermes to install the plugin and pair your account.
Set up ClawLink for Hermes and tell me when it's ready.
1. Install the plugin:
hermes plugins install ClawLink-HQ/hermes-plugin --enable
2. Start pairing. It prints an approval link, so show me the link and stop, don't wait:
hermes clawlink begin
3. I'll approve it in my browser, then reply "approved".
4. When I say approved, finish setup:
hermes clawlink finish
5. Then run `hermes clawlink test` and tell me whether ClawLink is ready.Setup
It takes three steps to connect Hermes to Slack.
1Install and pair
Install the ClawLink plugin, then pair Hermes with a one-time browser approval:
hermes plugins install ClawLink-HQ/hermes-plugin --enable- 2
Connect Slack
One-click OAuth in the dashboard.
- 3
Use it from chat
Ask Hermes Agent: "What can you do with Slack?"
Install by command
The prompt above walks Hermes through this. By hand, it is four commands and a browser approval:
hermes plugins install ClawLink-HQ/hermes-plugin --enable
hermes clawlink begin # prints an approval link — open it and approve
hermes clawlink finish # after approving in the browser
hermes clawlink testThen connect Slack in the ClawLink dashboard — a one-click OAuth approval, no API keys.
Verify the connection by asking Hermes:
Use slack_fetch_conversation_history on the #support channel, filter to the last 24 hours, and summarize what customers asked. List any questions that are still unanswered.
Using a different agent?
The Hermes plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:
npx -y @useclawlink/cli loginlogin opens the same browser approval and stores a credential locally. Once Slack is connected in the dashboard, that agent calls the same 145 Slack tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.
Slack MCP for Hermes
Looking for a Slack MCP server for Hermes Agent? ClawLink connects Slack to Hermes Agent and exposes 145 Slack tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using OpenClaw instead? The OpenClaw Slack integration works the same way.
Slack access for Hermes Agent has one canonical walkthrough, and it is the one the AI Overview recites: run hermes slack manifest --agent-view --write, paste the manifest into a Slack app on api.slack.com/apps, enable Socket Mode, install the app, copy the xoxb- or xapp- token, then run hermes gateway setup. That is the manual path for the Nous Research hermes-agent runtime, which is the Hermes this page connects. ClawLink pairs that same runtime and replaces the app-creation half: Slack's hosted OAuth flow shows the workspace consent screen, the connection is created under ClawLink's Slack app, and the 145 tools below work from chat. No manifest to write, no Socket Mode, no token to copy, no gateway to start.
The other ways Hermes Agent gets Slack
All of them pair the same hermes-agent runtime; what differs is who owns the app and where the tokens live.
- The manifest + Socket Mode route the AI Overview teaches:
hermes slack manifest --agent-view --write, a Slack app on api.slack.com/apps, Socket Mode enabled, xoxb-/xapp- tokens copied,hermes gateway setup. You build and maintain the app, and the tokens sit in your config. - A Slack app with your own scopes: registering an app to request exactly the scopes you want, handling the OAuth callback and refresh yourself. This is the route every 'you need a Slack app' guide describes, and it means running a server that owns the redirect.
- Self-hosted MCP servers: an env-file-based Slack MCP server pointed at your token, so the agent calls it over MCP from a config file. You keep the server and the token file running.
- ClawLink (this page): all 145 tools over hosted user OAuth, token lifecycle handled server-side, nothing running on your machine.
Using OpenClaw as well? The OpenClaw Slack integration is the same Slack OAuth connection and the same tools, with OpenClaw's skill flow instead of Hermes pairing.
What the Hermes Agent Slack integration can do
145 Slack tools are ready for Hermes Agent once the account is connected. The 30 below are the ones people reach for most; your agent can call all 145.
30 of 145 Slack tools for Hermes
| Tool | What it does |
|---|---|
Add reaction to an item slack_add_reaction_to_an_item | Add an emoji reaction to a Slack message |
Archive conversation slack_archive_conversation | Archive a Slack conversation |
Create a reminder slack_create_a_reminder | Create a Slack reminder |
Create channel slack_create_channel | Create a new Slack channel |
Deletes a message from a chat slack_deletes_a_message_from_a_chat | Delete a message from a Slack conversation |
Download slack file slack_download_slack_file | Download a file from Slack |
Fetch conversation history slack_fetch_conversation_history | Fetch message history from a Slack conversation |
Fetch message thread from a conversation slack_fetch_message_thread_from_a_conversation | Fetch a message thread from a Slack conversation |
Find channels slack_find_channels | Find Slack channels by name |
Find user by email address slack_find_user_by_email_address | Find a Slack user by email address |
Find users slack_find_users | Search for Slack users |
Get bot user slack_get_bot_user | Get the bot user identity in Slack |
Invite user to channel slack_invite_user_to_channel | Invite a user to a Slack channel |
Join an existing conversation slack_join_an_existing_conversation | Join an existing Slack conversation |
Leave conversation slack_leave_conversation | Leave a Slack conversation |
List all channels slack_list_all_channels | List all Slack channels |
List all users slack_list_all_users | List all Slack users in the workspace |
List conversations slack_list_conversations | List Slack conversations |
List files with filters in slack slack_list_files_with_filters_in_slack | List Slack files with filters |
List pinned items slack_list_pinned_items | List pinned items in a Slack channel |
List reminders slack_list_reminders | List Slack reminders |
List scheduled messages slack_list_scheduled_messages | List scheduled messages in Slack |
List user groups slack_list_user_groups | List Slack user groups |
Pin item slack_pin_item | Pin an item in a Slack channel |
Remove reaction from item slack_remove_reaction_from_item | Remove an emoji reaction from a Slack message |
Retrieve conversation information slack_retrieve_conversation_information | Retrieve information about a Slack conversation |
Retrieve conversation members list slack_retrieve_conversation_members_list | Retrieve members of a Slack conversation |
Retrieve user profile information slack_retrieve_user_profile_information | Retrieve a Slack user's profile |
Schedule message slack_schedule_message | Schedule a message to be sent later |
Search messages slack_search_messages | Search Slack messages |
Try it: find the Slack tool you need
Browse the 30 Slack tools
Click any tool to see exactly what Hermes can do and copy a ready-to-use prompt.
Example prompts
Use slack_fetch_conversation_history on the #support channel, filter to the last 24 hours, and summarize what customers asked. List any questions that are still unanswered.
Use slack_search_messages with the query 'roadmap in:#company from:@ceo after:2026-07-01' and summarize what was decided, with message dates.
Use slack_schedule_message to post the agenda I paste next in #team-standup for tomorrow at 9am. Confirm the scheduled time before sending.
Use slack_list_pinned_items on the #product channel and summarize the five most recent pins, noting who pinned each one.
Slack tool behaviour worth knowing
The 145 tools map onto Slack's API; these are the defaults and limits built into their schemas.
slack_schedule_messageschedules up to 120 days out. Thepost_attimestamp is the limit; anything further fails.slack_search_messagesis a real search, not a filter. It acceptsquerymodifiers likein:#channel,from:@user, andbefore:/after:YYYY-MM-DD, and sorts by score or timestamp. A bare query searches everything your account can reach.slack_fetch_conversation_historyreturns the main channel timeline only. Threaded replies are not in the response; useslack_fetch_message_thread_from_a_conversationfor those.slack_list_all_channelsreturns ids, and ids are what downstream tools want. Slack channel names are not unique, so passing a display name to another tool fails where an id works.slack_get_bot_useris the one tool that does not act as your account. It fetches a specified bot user in the workspace and fails for regular accounts, which is expected.
ClawLink vs. building it yourself
The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Slack working from chat.
| Manual | ClawLink | |
|---|---|---|
| Connection flow | Register a Slack app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift. | Users connect Slack through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code. |
| Ongoing maintenance | You own refresh logic, permission debugging, environment config, and every provider-specific edge case for Slack. | ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure. |
| Agent usability | You still need to expose the right Slack actions to the runtime in a format your agent can reliably use. | 145 tools for Slack are already exposed through ClawLink, so the agent can read and act from chat immediately. |
ClawLink vs. Composio
Composio also exposes Slack to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for Hermes Agent users instead. You install the plugin once, connect Slack in the browser, and the 145 tools above work from chat. There is no SDK, no config file, and no API key handling. Choosing between them? Read the full Composio alternatives comparison.
Troubleshooting
Hermes paired but still can't use Slack
Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.
Connection succeeds but no tools appear
Reconnect Slack from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.
"Tool schema not loaded yet" error when calling Slack tools
Slack tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every Slack call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.
Slack returns 403 or "permission denied" on one action while others work
Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.
slack api 403 insufficient permissions
The AI Overview's fix for this error is to add scopes, reinstall the app, and verify channel membership. Reinstallation does not exist in a hosted flow, because the scopes are fixed at consent and the app is not yours to reinstall. Two causes cover the hosted case. The connected account may lack access to the specific channel or workspace in the request; check with slack_list_all_channels or slack_fetch_conversation_history first. Or the agent sent a placeholder id like YOUR_ID instead of a real channel id; Slack display names are not unique, so a name that looks right can still fail. Run a list tool, take a real id from the result, and retry.
Ask the agent to diagnose it:
List the Slack channels I have access to and identify which channel the failing call targets. Then retry with the exact channel id from that list.slack bot token scopes
This error phrase comes from the self-hosted world, where you paste SLACK_BOT_TOKEN into an env file and discover the token's scopes are too narrow. There is no bot token here, so there is no scope list to edit. The connection carries the user scopes approved at consent, including channels:history, chat:write, and search:read. When a tool call fails on permissions, the cause is the account's own access inside the workspace, not a token scope. Reconnecting does not change what the account can reach.
Ask the agent to diagnose it:
Tell me which Slack tool failed and what action it needed. Then run slack_list_all_channels and slack_fetch_conversation_history on the target channel and tell me what you can actually read.slack api rate limit
Slack rate limits are per app, and the app behind this connection is the one ClawLink runs, not a token you manage. The response to a limit carries a retry-after value; honoring it is the fix, and pacing bursty calls (a prompt that fires many message sends at once) prevents most occurrences. No specific number is claimed here because the limits depend on the backend app's distribution, which is not published on this page. If the agent hits the limit repeatedly, the shape of the work is the cause, not the connection.
Ask the agent to diagnose it:
Report the exact status and any retry-after value from the failed Slack call. Do not retry until that interval has passed.slack mcp tool not found
The results for this phrase assume a local MCP setup: SLACK_BOT_TOKEN and SLACK_TEAM_ID env vars, a claude_desktop_config.json entry, or a Dynamic Client Registration bug. None of those exist in a hosted connection. Here a tool-not-found response means the tool name was wrong or the schema catalog had not loaded when the call went out. Schemas load on demand, so one retry clears the second case; for the first, the error message lists the closest real tool names, and retrying with one of those works.
Ask the agent to diagnose it:
List the Slack tools you actually have access to, then use the exact name for what I asked.OAuth finished in the browser but the account is still missing
Try reconnecting Slack and complete the consent flow in the same browser session. Partial OAuth approvals or switching accounts mid-flow can leave the connection incomplete.
FAQ
Is there a Hermes Agent Slack integration?
Yes. ClawLink is the fastest way to connect Hermes to Slack: link your Slack account once in the browser and Hermes Agent can call the Slack API through 145 ready-made tools — no custom code or token handling.
How do I connect Slack to Hermes with ClawLink?
Install the plugin with hermes plugins install ClawLink-HQ/hermes-plugin --enable, then pair once: run hermes clawlink begin, approve the link in your browser, and run hermes clawlink finish. Connect Slack in the dashboard and Hermes can use it from the next message — no config files or API keys to manage.
How long does it take to connect Slack to Hermes Agent?
About two minutes. Sign in, click Connect next to Slack in the dashboard, authenticate, and Hermes Agent can use it from the next chat message.
Why use ClawLink instead of wiring Slack up myself?
The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Slack working from chat.
Is it safe to connect Slack to an AI agent?
Search results answer this in two camps: forum threads warning that blind whole-workspace access is dangerous, and agent docs that treat access as solved. Both are half right. The risk is not the connection, it is the blast radius of what the agent can touch. This connection uses user-scope OAuth, so the agent reaches what your Slack account can reach inside the workspace you approve, and the scopes (channels:history, chat:write, search:read, and the rest) are listed before you click allow. You can start read-only by using only the search and history tools, keep the agent out of channels you do not name for it, and revoke the connection from the ClawLink dashboard at any time. The harder risk is prompt injection: a message or file written by another person can carry instructions aimed at the agent. Treat channel content as untrusted input, and require confirmation before any write action.
Do I need a Slack app or bot token to connect Slack to Hermes?
No. The connection is user-scope OAuth against the Slack app ClawLink runs. You see Slack's consent screen, click allow, and the connection exists. There is no api.slack.com/apps registration, no manifest, no Socket Mode, and no xoxb- or xapp- token. The AI Overview's phrase about Slack agents fundamentally requiring authentication tokens is true for a self-hosted bot and false here; the only authorization step is the consent screen itself.
How is the hosted connection different from the manifest and gateway flow the AI Overview teaches?
The Overview describes the manual hermes-agent path: write a manifest, register a Slack app, enable Socket Mode, copy tokens, run hermes gateway setup. That flow works, and the runtime it pairs is the same Nous Research hermes-agent this page connects. What differs is who owns the app and where the tokens live. ClawLink runs the Slack app and stores the OAuth grant server-side; the agent calls the 145 tools over MCP without you creating or maintaining an app. If you are mid-way through the manual flow, the connected account is a separate grant and the two can run side by side.
Which Slack tools can the agent use?
All 145, subject to the scopes approved at consent and to your account's own permissions in the workspace. The agent can read and write what you can: send messages, search, schedule, pin, archive, and manage channels. Tools that need admin rights fail the way you would fail when you call them yourself. One tool is the exception to the acts-as-you rule: slack_get_bot_user fetches a specified bot user in the workspace and does not work for regular accounts, which the schema states.
Hermes paired but still can't use Slack
Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.