Two-way Slack channel for Claude Code. Talk to your session from Slack. Approve tool calls from your phone.
claude plugin install slack-cc@eidos-agi We built this because it didn't exist. Claude Code sessions are stuck in the terminal — no way to talk to them from the couch, no way to approve a tool call from your phone, no way to get a notification when the agent needs you. slack-cc fixes that with a Slack app that speaks MCP.
Socket Mode means no public URL, no deployment, no exposed endpoints. The MCP server spawns locally alongside Claude Code and keeps an outbound WebSocket open to Slack. Works behind firewalls, NAT, anywhere.
Live Joe and Raj send tasks from Slack. Claude Code runs them on the desktop. Watch from your phone, too — approve the next action from anywhere.
Bash(git push origin main)Slack is the interface. The desktop does the work. The phone is the pilot in your pocket — replies, approvals, status. Any user on the allowlist can drive.
Claude Code already runs in plenty of places — the SDK for embedding, the GitHub action, the web app at claude.ai/code, the iOS Code tab. They're all good. They're all missing the same thing: your actual workstation, in a room full of teammates.
slack-cc isn't a new Claude. It's local Claude Code — the one on your Mac with your tokens, your mounts, your VPN, your half-finished branch — reachable from the channel where your team already lives.
The shape: Slack is where the team is. The terminal is where the power is. slack-cc is the wire between them — and because Slack is already on every phone in your pocket, the wire reaches wherever you are.
/slack-cc:doctor skill runs all checks and fixes what it canFour steps. Total time: ~5 minutes.
At api.slack.com/apps → Create New App → From scratch. Then:
xapp-...) with connections:writemessage.im, message.channels, message.groups, app_mentionchat:write, channels:history, groups:history, im:history, reactions:write, files:read, files:write, users:readxoxb-...)# One-time: add the Eidos marketplace
claude plugin marketplace add eidos-agi/claude-plugins
# Install slack-cc
claude plugin install slack-cc@eidos-agi claude --dangerously-load-development-channels plugin:slack-cc@eidos-agi Why "dangerously"? The --channels flag (without "dangerously") only works for plugins on Anthropic's curated allowlist. Private marketplace plugins — including this one — require --dangerously-load-development-channels. This is a Claude Code security gate, not a reflection of the plugin's safety. The flag will go away if/when slack-cc is accepted into the official marketplace.
# In the Claude Code session (first time only)
/slack-cc:configure xoxb-your-bot-token xapp-your-app-token
# DM the bot in Slack — it sends a pairing code
# Then in the terminal:
/slack-cc:access pair <code> Tokens live at ~/.claude/channels/slack/.env with 0600 permissions. Never logged, never echoed.
Once paired, two ways to connect a channel:
/slack-cc:access channel C0AV895UKFS — persists across restarts.After that, Claude drives. It reads messages, replies, reacts, edits. Approval prompts mirror to Slack — reply yes <id> or no <id> from your phone. First answer wins.
Tip: add --allowedTools "mcp__plugin_slack-cc_slack-cc__reply,mcp__plugin_slack-cc_slack-cc__react" to your launch command so outbound Slack replies don't prompt for terminal confirmation.
Four escalating levels of visibility, in order of how much you need them:
/slack-cc:doctor — run this first. Reads past learnings, runs every check, fixes what it can, records new lessons. Solves ~90% of issues without thinking.@bot debug (exact match) in any connected channel. The bot replies in-thread with full diagnostics.debug/server.ts. Key ones: slack_debug_check (7-layer health), slack_debug_channel_reg (listener registration, dual-start detection), slack_debug_scope_diff (token scopes vs requirements), slack_debug_roundtrip (end-to-end send + read).The #1 issue: bot reacts with 👀 but messages never reach your session. Cause: you launched without --dangerously-load-development-channels. The MCP server loads fine (tools work, bot reacts) but the channel listener never registers. Fix: relaunch with the flag.
Sender gating (unknown senders dropped before Claude sees them). Outbound gate (Claude can only reply to channels that delivered inbound). Bot filtering (bot messages dropped, self-echoes detected via user ID). Prompt hardening (system instructions refuse access manipulation from Slack). Token lockdown (.env is 0600, never logged).
MIT. 120 tests across 25 suites. Full diagnostics in DIAGNOSTICS.md.
slack-cc is step one — a bridge to a Claude Code session. Step two is Slack for Eidos: not a bridge, an identity. Eidos in your workspace as a teammate with its own presence, history, and handle. Coming soon.