Claude Code Slack
Talk to Claude Code from Slack. Runs locally on your plan, no API keys, no per-token costs.
Claude Code Slack lets your team talk to Claude Code directly from Slack. Claude runs locally on your machine using your existing Claude plan - no API keys, no per-token costs. Your codebase, your CLAUDE.md, your MCP tools - all accessible through a Slack message.
You (Slack): @Claude What files are in the src directory?
Bot (Slack): Found 12 files in src/: index.ts, app.ts, config.ts...
Mention @YourBot in any channel, DM it directly, or use the optional /claude slash command. Reply in threads and it remembers the full conversation.
The architecture
Two halves, deliberately separated:
- Worker (Railway, or any host) - a FastAPI webhook receiver that verifies Slack signatures, answers quick commands instantly, and writes AI tasks as JSON files into a GitHub
tasks/directory. - Daemon (your Mac, always on) - polls that GitHub directory every few seconds, picks up task files, runs
claude -p "<prompt>"locally, posts the result back to Slack, and cleans up.
Why this shape:
- The Claude Code CLI runs locally with your subscription, so there are no API-key costs.
- Claude gets full access to your codebase, CLAUDE.md, and MCP tools.
- Your workspace never leaves your machine - the worker only routes messages.
- Thread context is preserved: the daemon fetches Slack thread history before answering.
Your repos stay separate
The daemon installs to its own directory, and a WORKSPACE_DIR setting points at wherever your project clone lives. Claude Code runs inside that workspace, so it automatically picks up the project’s CLAUDE.md - which means every Slack command inherits your project conventions. Ask @Bot how do I add a new API route? and Claude already knows your stack, your test layout, and your rules.
Features
- Slash commands:
/claude <anything>from any channel - @mentions:
@YourBot summarize the READMEin channels - DMs: private conversations with the bot
- Thread context: replies see prior messages in the thread