Claude Code in Slack: Setup, Claude Tag, and Real Limits

Claude Code in Slack runs each session under the individual member's own Claude account, using their repositories and their plan limits. Claude Tag runs as the organisation's shared identity with access an administrator configures centrally. Claude Tag is available on Team and Enterprise plans and is replacing the earlier version there; Pro and Max keep the earlier one.
A workspace administrator installs the Claude app from the Slack App Marketplace, then each person connects their Claude account from the App Home tab. Each person must also visit claude.ai/code once to create their cloud environment and connect at least one GitHub repository. Finally, invite Claude into a channel with the slash invite command.
It means your Claude account has no cloud environment yet, not that an administrator needs to enable something. Sign in at claude.ai/code once with the same account you connected to Slack. That first visit creates your default cloud environment and the error clears on your next mention. Every user has to do this individually.
No. It works only in channels, public or private, and only in channels Claude has been invited to. Installing the app does not add Claude to any channel automatically. That channel list is effectively your access control, since Claude can only be reached where it is a member.
Claude reads the surrounding thread or recent channel messages for context, and it may follow instructions contained in messages other people wrote. Treat channel content as untrusted input and use Claude only in conversations you trust. Be especially careful in channels where external guests or automated integrations post.

Key Takeaway
Mentioning Claude in a Slack channel starts a Claude Code session on the web, using your own account, your connected repositories and your plan limits. Two versions exist: the earlier per-user integration, which stays the path on Pro and Max, and Claude Tag, which runs as the organisation's shared identity and is replacing it on Team and Enterprise.
The bug report arrived in a channel with a stack trace, a screenshot and three people arguing about which service owned it. I opened a terminal, cloned the repository, and spent the first ten minutes re-typing context that was already sitting in the thread. That is the specific waste this integration removes, and the reason it is worth setting up properly rather than half-way.
It is also the integration people most often set up half-way, because the failure is silent and lands on the wrong person. This post covers which of the two versions you actually get, the setup order that matters, routing modes, how context is gathered and the security warning that comes with it, where access control really lives, the limits, and the errors that look like an administrator problem but are not.
The version you get depends on your plan, and both answer to the same at-Claude handle, which is why the difference is easy to miss. Claude Code in Slack, the earlier one, runs each session under the individual member's Claude account: their repositories, their usage, their session history. Claude Tag runs as the organisation's shared identity with access an administrator configures centrally.
Anthropic is retiring the earlier version for Team and Enterprise workspaces in favour of Claude Tag. Your existing Slack app and handle stay in place, and your account team gives you the cutover date, so this is a migration rather than a reinstall. On Pro and Max, where Claude Tag is not offered, the earlier version remains the supported path and none of this applies.
Five steps, and the third is the one that generates support tickets. Each person has to visit the web app once themselves, because that first visit is what creates their cloud environment — there is nothing an administrator can flip on their behalf.
# 1. A workspace admin installs the Claude app.
# slack.com/marketplace/A08SF47R6P4 -> "Add to Slack"
# 2. Each person links their own Claude account.
# Slack -> Apps -> Claude -> App Home tab -> "Connect"
# 3. Each person visits claude.ai/code ONCE.
# That first visit creates their cloud environment. Skipping
# it is what produces "Claude Code is not enabled for your
# account" — an admin cannot fix it for them.
# 4. Connect GitHub and authenticate at least one repository.
# 5. Invite Claude per channel. Installing adds it to NOTHING.
/invite @ClaudeInstalling the app adds Claude to no channels at all. It only answers where it has been invited, which is a feature rather than an oversight: the channel list is your real access control, and it works in private channels too. Start with one channel owned by the team most likely to use it, rather than inviting it everywhere on day one.
Routing mode lives in the Claude App Home and decides what happens to each mention. Code only sends every mention to a Claude Code session. Code plus Chat reads the message, sends coding tasks to Claude Code and everything else to a normal chat reply — one entry point for a team that wants both.
The routing does not have to be right the first time. A message answered as chat when you wanted a session has a Retry as Code button on the reply, and a session you did not want can be switched to chat from that thread. That makes Code plus Chat the safer default for a general channel, and Code only better for a channel that exists specifically for development work.
Mentioned in a thread, Claude gathers every message in that thread; mentioned directly in a channel, it looks at recent channel messages. That is what lets it pick the right repository from a conversation that never names one, and it is why replying inside the thread where the bug was discussed gets a better result than starting a fresh message.
# In a channel Claude has been invited to:
@Claude the checkout 500s in the log above — find the cause
in web-api and fix it
# In a thread, so it reads the whole conversation:
@Claude take the repro from this thread and write a failing
test for it in payments-service
# Buttons that come back on the reply:
# View Session full transcript at claude.ai/code
# Create PR one pull request per session
# Retry as Code it answered as chat; rerun as a coding task
# Change Repo it picked the wrong repository
# DMs do not work. Channels only, public or private.Everything in that context reaches the model, including messages written by other people, and Claude may follow instructions it finds there. Treat channel content as untrusted input and only use Claude in conversations you trust. A channel where external guests or automated integrations post is a channel where someone else's text can steer a coding session — that is worth deciding deliberately rather than discovering.
There are three layers, and only one of them is granular enough to plan around. The workspace layer is on or off, and removing the app revokes access for everyone immediately. The account layer is per person and follows them everywhere. The channel layer is the one you actually design with.
Who can do what, and where it is decided:
| Layer | What it controls |
|---|---|
| Workspace administrator | Whether the app is installed at all; on Enterprise Grid, which workspaces get it. Removing it cuts everyone off at once |
| Channel membership | Where Claude answers, and therefore who can reach it. Public or private, invited one channel at a time |
| The individual account | Which repositories a session can touch and whose usage it spends — a member reaches only repositories they connected themselves |
| Organisation visibility | On Team and Enterprise, sessions started from Slack are visible to the organisation automatically |
Three limits are worth knowing before you promise anyone a workflow, because each one quietly changes what you can build on top of this:
Claude Code is not enabled for your account
-> that person has never opened claude.ai/code. One visit
creates the environment; the error clears next mention.
Sessions from a Claude Tag channel fail immediately
-> the channel points at a PERSONAL cloud environment.
Claude Tag works as the organisation, not as a member,
so it cannot start a session in someone's own environment.
An Owner recreates it as an organization-shared environment
under Cloud environments in claude.ai/admin-settings.
Repository not showing
-> connect it at claude.ai/code first; a repo you have not
personally authenticated is invisible to your sessions.Use it when the context already exists in the conversation, when you want the task running while you carry on, or when teammates need to watch it happen. Go to the web app directly when you need to upload files, want to steer the work as it goes, or the task is long enough that a thread becomes a poor transcript.
The pattern that earns its keep is the bug report answered in its own thread. Someone posts the trace, the team adds what they know, and the mention goes in at the bottom — so the session starts with the reproduction, the affected service and the argument about ownership already resolved. That context is the whole advantage, and it is free.
Set it up in the right order, invite it to one channel rather than all of them, and tell your team the one thing the documentation buries: visit the web app once, or your first mention fails with an error that reads like somebody else's problem. If you are on Team or Enterprise, ask your account team about the Claude Tag cutover before you invest much in the per-user model, because the shared-identity version changes who the repository access belongs to.
Sources & further reading