E EidosAGI
MCP Server

slack-cc

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

What it does

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.

Work with Claude Code as a team

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.

1 Slack — Joe and Raj send tasks

#proj-eidosagi

3 members
J
Joe10:41 AM
@Eidos run the full test suite on eidos-v5 and report failures
👀 1
R
Raj10:41 AM
@Eidos also benchmark retrieval latency on the nightly build
S
Eidosapp10:45 AM
All green — 120/120 in 47.2s, no regressions. Retrieval sits at 42ms median (p99 118ms, n=1000). Nothing unusual; full log in thread if you want the details.
+ Message #proj-eidosagi
2 Desktop — Claude Code does the work
claude · eidos-v5
slack-cc · connected · 2 channels ───────────────────────────────────────────────────── > <#proj-eidosagi> Joe: run the full test suite on eidos-v5 and report failures ● react(eyes 👀) ● Bash(npm test) ⎿ PASS tests/pipeline.test.ts (47 tests · 18.4s) > <#proj-eidosagi> Raj: also benchmark retrieval latency on the nightly build queued — active tool running PASS tests/orchestrator.test.ts (38 tests · 21.1s) PASS tests/verifier.test.ts (35 tests · 7.7s) Tests: 120 passed · Suites: 25 · Time: 47.2s ● Bash(node bench/retrieval.js --n 1000) ⎿ median 42ms · p95 89ms · p99 118ms · n=1000 ● reply(#proj-eidosagi, "120 tests · all green in 47.2s. Retrieval 42ms median…")
3 Phone — same channel in your pocket. Watch, reply, approve.
9:41 Slack · #proj-eidosagi
Joe 10:41
@Eidos run the full test suite on eidos-v5
👀 1
Raj 10:41
@Eidos also benchmark retrieval latency
Eidos APP 10:45
All green — 120/120 in 47.2s. Retrieval sits at 42ms median (p99 118ms, n=1000). Nothing unusual.
Eidos APP 10:46
Approve next? 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.

Why this and not something else

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.

What the terminal has that a remote Claude doesn't

When to pick what

Reach for these instead when…
  • Agent SDK — you're building an agent, not talking to one. You design the interface end-to-end.
  • Claude in GitHub — the work is scoped to a PR, issue, or commit. Code review, CI triggers.
  • Claude Code on the web — a clean remote sandbox, no local tokens, no internal network needed.
  • Claude Code iOS — one person checking on remote tasks. Solo, on the go.
Reach for slack-cc when…
  • Your team is already in Slack and you want them to drive Claude too.
  • The work needs your local env — tokens, VPN, databases, running services.
  • Tasks span tools — Slack + Jira + filesystem + cloud — not just one repo.
  • Approvals need to reach your phone via the channel that's already there.

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.

Key features

Install

Four steps. Total time: ~5 minutes.

1. Create a Slack app

At api.slack.com/apps → Create New App → From scratch. Then:

2. Install the plugin

install-slack-cc.sh
# One-time: add the Eidos marketplace
claude plugin marketplace add eidos-agi/claude-plugins

# Install slack-cc
claude plugin install slack-cc@eidos-agi

3. Launch Claude with the channel flag

launch.sh
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.

4. Configure tokens and pair

first-session.md
# 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.

Use

Once paired, two ways to connect a channel:

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.

Debug

Four escalating levels of visibility, in order of how much you need them:

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.

Security

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.

What's next

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.