Skip to content

Claude Code in Slack

Hand coding tasks to Claude from a Slack thread using the earlier, per-user Claude Code in Slack integration for Pro and Max accounts.

Plenty of bugs are first reported in Slack. Someone pastes a stack trace, two people speculate about the cause, and then somebody has to switch to a terminal and start from scratch. Claude Code in Slack shortens that loop: you @mention Claude in the thread, it reads the conversation, spins up a cloud session against one of your GitHub repositories, and reports back in the same thread when it is done.

This page covers the earlier Slack integration, where each session runs under the account of the person who mentioned Claude. It is distinct from Claude Tag, which runs @Claude as a shared organisational identity with admin-controlled access.

Note: The per-user version only answers channel mentions from Pro and Max accounts, and only in a Slack workspace that no Claude organisation has connected to Claude Tag. Team and Enterprise organisations should use Claude Tag for new workspaces. Existing Team and Enterprise installs keep their app and @Claude handle, but the migration path points to Claude Tag.

What it is good for

  • Fixing a bug where it was reported. The reproduction steps and error output are already in the thread, so Claude starts with the same context your team has.
  • Small, well-scoped changes. "Rename the retryCount option to maxRetries and update the docs" is a perfect Slack request.
  • Debugging with group input. When three people have each contributed a clue, Claude reads all of them rather than just your summary.
  • Fire and forget. Kick off a task, go to your next meeting, and pick up the result when Claude pings you.

Before you start

You needWhy
A Pro or Max planOnly these accounts get channel answers from the per-user integration
A workspace not linked to Claude TagOnce an organisation connects the workspace, this version stops answering
Cloud sessions available on your accountEvery Slack task runs as a cloud session
GitHub connected at claude.ai/codeClaude needs at least one authorised repository to work on
Your Slack identity linked to ClaudeSessions run as you, so Slack has to know which Claude account you are

Set it up

1. Install the Claude app

A Slack workspace admin installs the Claude app from the Slack App Marketplace using Add to Slack. Individual members cannot do this step unless they have admin rights.

Each person does this once:

  1. Find Claude under Apps in the Slack sidebar.
  2. Open the App Home tab.
  3. Click Connect.
  4. Finish the sign-in flow in your browser.

3. Get cloud sessions working

Sign in at claude.ai/code with the same Claude account you just linked. Connect GitHub if you have not already, and authorise at least one repository. If you have never been through web onboarding, do it now: it creates your default cloud environment. The web quickstart walks through it.

4. Pick a routing mode

Back in the Claude App Home, find the Routing Mode setting:

ModeWhat happens to an @mention
Code onlyEvery mention becomes a Claude Code session. Good for engineering channels.
Code + ChatClaude decides per message: coding work goes to a Claude Code session, everything else (drafting, analysis, questions) gets a normal chat reply.

In Code + Chat mode, if Claude guesses wrong you can correct it from the thread. A chat answer offers Retry as Code, and a coding session can be switched to chat the same way.

5. Invite Claude to channels

Installing the app does not put Claude in any channel. In each channel where you want it, type:

/invite @Claude

Claude only responds to mentions in channels it belongs to. It works in public and private channels, but not in direct messages.

How a request flows

Here is a typical exchange in a #payments-alerts thread:

@Claude the webhook handler in acme/billing-api is double-counting refunds
when Stripe retries. Can you add idempotency on event.id and a test for it?
  1. You mention Claude with the task.
  2. Claude classifies it. In Code + Chat mode it decides this is coding work. You can also say outright that you want a coding task.
  3. It gathers context. Inside a thread it reads every message in that thread. Mentioned at channel level, it looks over recent channel messages instead.
  4. It picks a repository based on what was discussed. If more than one fits, you get a dropdown.
  5. A cloud session starts on claude.ai/code under your account.
  6. Progress appears in the thread as Claude works.
  7. Claude @mentions you when finished, with a summary and buttons.

Warning: Claude treats the whole thread as context and may act on instructions it finds there. Only invoke it in conversations where you trust everyone who has posted.

Buttons on the result

ButtonUse it to
View SessionOpen the full transcript on claude.ai/code, inspect the diff, or keep the conversation going
Create PRRaise a pull request from the session's changes
Retry as CodeRerun a request as a coding session after it was answered as chat
Change RepoPoint the task at a different repository when Claude chose wrongly

Who can do what

Because the integration runs per user, access follows the individual rather than the channel.

Per user:

  • Sessions run under the mentioning user's Claude account.
  • Usage counts against that person's plan limits.
  • Claude can only reach repositories that person has connected.
  • Sessions show up in that person's history at claude.ai/code.

Per workspace:

  • Workspace admins decide whether the app is installed at all.
  • On Enterprise Grid, org admins choose which workspaces receive the app.
  • Uninstalling the app cuts off every user in that workspace immediately.

Per channel: since Claude only listens in channels it has been invited to, controlling which channels it joins (and who can see those channels) gives you a second layer of control on top of workspace installation.

Where the work lives

Slack shows status updates, the final summary and the action buttons. Everything else (the complete transcript, every file change and tool call) lives in the session on claude.ai/code, where you can resume it later or open a PR from it. For Team and Enterprise accounts, sessions started from Slack are automatically visible to the rest of the organisation; see sharing sessions.

Writing requests that work

  • Name things. File paths, function names and the exact error message cut out a lot of searching.
  • Say which repo if the thread does not make it obvious.
  • Define done. Should Claude add tests, update a changelog, open a PR?
  • Use a thread. Starting in a thread means all the relevant discussion travels with the request.

I reach for Slack when the context is already sitting in a discussion or teammates need to see progress. For anything long, interactive, or involving uploaded files, I open the session on the web directly instead.

Troubleshooting

"This workspace isn't set up for Claude Tag yet"

You see this instead of an answer when the workspace is not connected to Claude Tag and your linked Claude account is not on Pro or Max. Claude Tag needs a Team or Enterprise plan; start with the @Claude connect command quoted in the notice, then follow the Claude Tag setup.

"The legacy Claude in Slack bot is retired"

The full message begins The legacy Claude in Slack bot is retired effective October 5, 2026 and no longer responds in channels. It means the workspace is connected to a Claude organisation, but that organisation's Claude Tag settings still select the earlier version for the channel, the workspace, or as the organisation default. Your own plan is irrelevant here, so Pro and Max users see it too.

An Owner of the organisation fixes it in the Claude Tag section of admin settings at claude.ai, either per channel or at workspace or organisation-default level so every inheriting channel changes at once. If you are not an Owner, forward the message to one.

"Claude Code is not enabled for your account"

Your account has no cloud environment yet. Sign in once at claude.ai/code with the Slack-linked account and complete onboarding. The next mention will work. Everyone has to do this for themselves.

Sessions do not start

  1. Confirm your account shows as connected in the Claude App Home.
  2. Confirm cloud sessions are available to you.
  3. Confirm at least one GitHub repository is connected.

Sessions from a Claude Tag channel fail immediately

This applies to workspaces running Claude Tag. If the channel's cloud environment was created by you at claude.ai/code, it belongs to your personal account, and Claude Tag cannot run organisation sessions in a personal environment. Retrying will not help. An Owner needs to share that environment with the organisation (or recreate it as organisation-shared from Cloud environments in admin settings), then either make it the organisation default under the Claude Code admin settings or assign it to the channel in Claude Tag settings. See cloud environments.

Repository missing from the list

  1. Connect it at claude.ai/code.
  2. Check your GitHub permissions on that repository.
  3. Disconnect and reconnect GitHub.

Claude picked the wrong repository

Use Change Repo, and name the repository explicitly next time.

Authentication errors

Disconnect and reconnect your Claude account from the App Home, and make sure your browser is signed into the right Claude account.

Limitations

  • Repositories must be hosted on GitHub.
  • Each session can open one pull request.
  • Every user needs access to cloud sessions.