There are four ways to connect Claude Code and Slack today. You can start cloud coding sessions from an @Claude mention (Claude Code in Slack on Pro, Max and Ultra, or Claude Tag on Team and Enterprise). You can give Claude Code access to Slack through Slack's official MCP server and plugin. Or you can run long-lived agents on your own machine and talk to them from a Slack channel with a relay. Which one fits depends on where the agent should run and who should be able to message it. This guide covers the setup, security and limits of each.
Option 1: Claude Code in Slack (individual plans)
Anthropic's Claude Code in Slack uses the Claude app from the Slack Marketplace. When you mention @Claude with a coding task, Claude detects the intent and creates a Claude Code cloud session on claude.ai/code. It posts progress in your thread and finishes with View session and Create PR buttons. Each session runs under your own Claude account and counts against your own plan limits.
The docs now describe this as an "earlier version". It answers channel mentions only from Pro, Max and Ultra accounts, and only in workspaces that no organization has connected to Claude Tag. Requirements:
- A Pro, Max or Ultra plan with cloud sessions enabled.
- A GitHub account connected at claude.ai/code with at least one repository authenticated. GitHub is the only supported host.
- A workspace admin installs the Claude app from the Slack Marketplace. You then click Connect Claude account in the app's App Home.
Setup takes about five minutes:
- Install the Claude app in Slack (an admin does this).
- Open the app's App Home and connect your Claude account.
- Sign in at claude.ai/code with the same account, connect GitHub and authenticate a repo.
- Pick a Routing Mode: Code only sends every mention to Claude Code, while Code + Chat lets Claude choose between a coding session and a chat reply.
- Run
/invite @Claudein each channel where you want it.
Limits worth knowing: it works in channels, public or private, but not in DMs. Each session can create one pull request. Claude reads the thread or recent channel context, and the docs warn that "Claude may follow directions from other messages in the context", so use it only in trusted conversations.
Option 2: Claude Tag (Team and Enterprise)
Claude Tag is the organization version, currently in public beta, on Team and Enterprise plans. An Owner sets it up once at claude.ai/admin-settings/claude-tag: send @Claude connect in Slack to get a pairing code, enter it, set a monthly spend limit, add Claude to channels and launch. After that, anyone in a channel Claude is in can hand it work. Slack users don't each need a Claude seat, and channel work bills to the organization's usage balance.
The model differs from the individual version in ways that matter:
- Identity: in channels Claude acts under service accounts that an admin provisions per channel, not as the person who asked.
- Where work runs: each thread gets an ephemeral cloud sandbox running "the same engine that powers Claude Code on the web". The sandbox is released when the thread goes quiet and rebuilt on the next reply.
- Memory and routines: Claude keeps notes per channel and can run tasks on a schedule or when a pull request changes.
- Access control: by default anyone in the paired workspace can tag Claude. An Owner can restrict that to members of the Claude organization, or to specific roles on Enterprise.
If your organization connected Slack to Claude Tag but a channel still uses the earlier bot, that bot answers with a notice that it was "retired effective October 5, 2026". The fix is to switch the channel to Claude Tag in admin settings.
Option 3: the Slack MCP server and plugin (Claude Code reads and writes Slack)
Options 1 and 2 bring Claude into Slack. This option does the reverse: it brings Slack into your local Claude Code session. You can search a thread for context, post a summary or draft a reply without leaving the terminal. Slack hosts an official Slack MCP server at https://mcp.slack.com/mcp. Its tools search messages, files, users and channels, read channels and threads, send, schedule and draft messages, add reactions, and work with canvases and lists. Slack lists Claude Code among the supported clients.
The simplest route for "claude code slack mcp" or "claude code slack plugin" is Slack's own MCP and Skills plugin, which configures the server for you:
# inside a Claude Code session, from Anthropic's official marketplace
/plugin install slack@claude-plugins-official
# or from Slack's marketplace, which gets releases sooner
/plugin marketplace add slackapi/slack-skills-plugin
/plugin install slack@slack
Install from only one of the two marketplaces. On first use, Claude Code opens an OAuth sign-in to your workspace. The plugin also adds developer skills such as block-kit, slack-api, slack-messaging and slack-search. Codex can install the same plugin (codex plugin add slack@slack), but it gets only the skills, without the MCP connection.
Security notes for the MCP route:
- Your workspace admin must approve the MCP integration through Slack's normal app approval, and MCP activity appears in audit logs.
- Claude acts with your user token, so it can read whatever you can read. Treat Slack content as untrusted input: a message can contain instructions aimed at the agent.
- Rate limits follow the Slack Web API tiers. A runaway loop gets throttled, but it can still post a lot before it stops.
One thing this route does not do: it doesn't let you message a running Claude Code session from Slack. A standard MCP server is queried by Claude, and nothing is pushed into the session. Claude Code's channels feature does push messages in, but it is a research preview and the included chat bridges are Telegram, Discord and iMessage. Slack is not one of them. To talk to local agents from Slack, you need a relay.
Option 4: control local agents and swarms from a Slack channel
This option is for people running long-lived agents on their own machine: a research agent that updates a wiki every night, or a team of Claude Code and Codex agents building a product. You want each of them reachable from your phone. Anthropic's options above start cloud sessions. A relay connects Slack to the agents already running on your machine, with your files, your tools and your skills.
Hivey, our open-source swarm workspace, includes such a relay. Each swarm or solo agent can get its own private channel named #<slug>, and the main Hivey agent gets #hivey. Here is the real --help output:
$ hivey slack --help
usage: hivey slack connect [--force] connect your Slack workspace: create the hivey Slack app,
paste its bot token (typed hidden, checked, kept private)
hivey slack status [--json] connected? workspace, bot, missing scopes
hivey slack add <slug> [--channel ID]
give a running swarm or agent its own channel (#<slug>,
created or joined) and open the Slack relay in its space
hivey slack check [on|off] hivey runs this when a window opens: a notification
when Slack isn't connected or lacks permissions (quiet
when offline); off stops the reminder, on brings it back
New ones: hivey swarm launch … --slack. The hivey agent: hivey home setup --slack (#hivey).
Setup
- Connect once:
hivey slack connectwalks you through creating a Slack app from a bundled manifest and asks for its bot token. You type the token hidden, it is checked against Slack, and it is saved to a file only you can read. - Check:
hivey slack statusprints something likeSlack: connected to <workspace> as @<bot>and lists any missing scopes. - Give a running agent a channel:
hivey slack add tradingcreates or joins#trading, invites you, and opens the relay next to the agent. New swarms can get one at launch with--slack. - Talk: in the channel,
@scout …reaches that agent,@all …reaches everyone, and a message with no mention goes to the swarm's coordinator. By default only messages to and from the coordinator are mirrored back. Runhivey swarm comms <slug> --slack allto see every message, oroffto see none.
Messages from Slack join the same queue as messages typed in the terminal. They are delivered when the agent is idle, never in the middle of a task. Quiet mode (hivey quiet on) holds outgoing Slack posts overnight and sends them as one catch-up message, while your Slack messages still reach the agents.
Security notes for a relay
- Whoever is in the channel can instruct your agents. The relay forwards human messages from the channel to the swarm, and those agents run on your machine with your permissions. Hivey creates channels as private and invites only you. Keep it that way, and don't add people you wouldn't hand your terminal to. If a public channel with the same name already exists, it is reused as is, and the bot cannot make it private, so check.
- Scopes are minimal. The bundled manifest asks only for channel and private-channel read, history, join, manage and
chat:write, with no user-token access. The relay reads a channel's history; it doesn't search your workspace. - Keep the token out of plain text. The relay reads the token through a
token_command. You can point that command at a secrets manager, for example EnvSave withenvsave get <opaque-id>, so neither the agents nor their config files ever contain the real token. Never paste a bot token into an agent's chat. Our Claude Code API key setup guide explains why. - Your machine has to be on. A local relay is only as available as your Mac. If the laptop sleeps, messages wait until it wakes.
Which option fits which need
| Option | Where the agent runs | Plans / requirements | Who can trigger it | Best for |
|---|---|---|---|---|
| Claude Code in Slack | Anthropic cloud session | Pro, Max or Ultra; GitHub repo; workspace not on Claude Tag | You, by @mention in channels Claude was invited to | Firing off a bug fix or small feature as a PR |
| Claude Tag | Ephemeral cloud sandbox per thread | Team or Enterprise; Owner setup; public beta | Anyone in the channel, unless an Owner restricts it | Shared team work: triage, incidents, docs, PRs |
| Slack MCP plugin | Your local Claude Code session | Admin-approved MCP integration; OAuth | You, from the terminal | Pulling Slack context into coding work, posting summaries |
| Local relay (e.g. Hivey) | Your machine, long-lived agents | Your own Slack app and bot token; machine awake | Members of the agent's channel | Steering persistent agents and swarms from your phone |
These options combine well. A common setup uses the Slack MCP plugin inside each agent so it can read context, plus a relay channel per agent so you can steer it. Claude Tag then handles team-facing work in shared channels. If you want to understand how those agents are organized in the first place, read Claude Code agent teams vs swarms.
Common mistakes
- Expecting a mention to reach your laptop. Claude Code in Slack and Claude Tag start cloud sessions. They don't control the Claude Code running in your terminal.
- Installing the Slack plugin twice. Choose either the official marketplace or Slack's marketplace, not both.
- Forgetting
/invite @Claude. Neither Claude app joins channels on its own. - Using a busy public channel for agent control. Every message there is a possible instruction. Give each agent its own private channel.
- Putting tokens in files the agent can read. Use a
token_commandbacked by a vault instead.
Get started
For one-off coding tasks from Slack, use Anthropic's Claude app (individual plans) or Claude Tag (teams). To let Claude Code read and post to Slack, install Slack's plugin. To run your own agents and swarms and steer them from any device, install Hivey with npm install -g @hivey/cli, run hivey slack connect once, and give each agent its own channel. If you'd like a team of agents built around your business and wired into Slack, talk to AIagentsLab.