ClawLink

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.

Get started for free
Hermes Agent
Hermes Agent
ClawLink
ClawLink
Slack
Slack
SlackOAUTH2MCP

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.

145 tools

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.

Prompt for Hermes
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.

  1. 1

    Install and pair

    Install the ClawLink plugin, then pair Hermes with a one-time browser approval:

    hermes plugins install ClawLink-HQ/hermes-plugin --enable
  2. 2

    Connect Slack

    One-click OAuth in the dashboard.

  3. 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 test

Then 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 login

login 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

ToolWhat it does
Add reaction to an item slack_add_reaction_to_an_itemAdd an emoji reaction to a Slack message
Archive conversation slack_archive_conversationArchive a Slack conversation
Create a reminder slack_create_a_reminderCreate a Slack reminder
Create channel slack_create_channelCreate a new Slack channel
Deletes a message from a chat slack_deletes_a_message_from_a_chatDelete a message from a Slack conversation
Download slack file slack_download_slack_fileDownload a file from Slack
Fetch conversation history slack_fetch_conversation_historyFetch message history from a Slack conversation
Fetch message thread from a conversation slack_fetch_message_thread_from_a_conversationFetch a message thread from a Slack conversation
Find channels slack_find_channelsFind Slack channels by name
Find user by email address slack_find_user_by_email_addressFind a Slack user by email address
Find users slack_find_usersSearch for Slack users
Get bot user slack_get_bot_userGet the bot user identity in Slack
Invite user to channel slack_invite_user_to_channelInvite a user to a Slack channel
Join an existing conversation slack_join_an_existing_conversationJoin an existing Slack conversation
Leave conversation slack_leave_conversationLeave a Slack conversation
List all channels slack_list_all_channelsList all Slack channels
List all users slack_list_all_usersList all Slack users in the workspace
List conversations slack_list_conversationsList Slack conversations
List files with filters in slack slack_list_files_with_filters_in_slackList Slack files with filters
List pinned items slack_list_pinned_itemsList pinned items in a Slack channel
List reminders slack_list_remindersList Slack reminders
List scheduled messages slack_list_scheduled_messagesList scheduled messages in Slack
List user groups slack_list_user_groupsList Slack user groups
Pin item slack_pin_itemPin an item in a Slack channel
Remove reaction from item slack_remove_reaction_from_itemRemove an emoji reaction from a Slack message
Retrieve conversation information slack_retrieve_conversation_informationRetrieve information about a Slack conversation
Retrieve conversation members list slack_retrieve_conversation_members_listRetrieve members of a Slack conversation
Retrieve user profile information slack_retrieve_user_profile_informationRetrieve a Slack user's profile
Schedule message slack_schedule_messageSchedule a message to be sent later
Search messages slack_search_messagesSearch 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_message schedules up to 120 days out. The post_at timestamp is the limit; anything further fails.
  • slack_search_messages is a real search, not a filter. It accepts query modifiers like in:#channel, from:@user, and before:/after:YYYY-MM-DD, and sorts by score or timestamp. A bare query searches everything your account can reach.
  • slack_fetch_conversation_history returns the main channel timeline only. Threaded replies are not in the response; use slack_fetch_message_thread_from_a_conversation for those.
  • slack_list_all_channels returns 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_user is 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.

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.

ManualClawLink
Connection flowRegister 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 maintenanceYou 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 usabilityYou 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.

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.