Claude Slack Bridge

Remote-control Claude Code from Slack. Start sessions from your phone, sync your TUI to a thread, and let your team watch along — like Remote Control or OpenClaw, but through the tool your team already lives in.
Works with Bedrock, API keys, and any Claude Code setup. No claude.ai subscription required.
English | 中文
What can you do with it?
Commute coding — DM the bot from your phone: "refactor the auth middleware to use JWT". Claude works on your cloud dev machine. By the time you arrive, the work is done — claude --resume to review and iterate.
Meeting multitasking — Kick off a long task in Slack ("migrate the database schema and update all tests"), check progress between agenda items. Claude keeps working while you're in the meeting.
Team visibility — @mention the bot in a project channel. The whole team sees Claude's work in the thread — great for demos, pair debugging, or keeping teammates in the loop.
On-call incident response — Get paged at 2am? DM the bot from bed: "check the error logs in /var/log/app and find the root cause". Triage from your phone before deciding whether to get up.
Long-running tasks — Start a large refactor from Slack, go about your day. Slack notifications tell you when Claude needs input or finishes. No terminal session to keep alive.
How it works
Slack-first: remote control from your phone
DM or @mention the bot, and a full Claude Code session starts on your machine — reading files, editing code, running tests. All from Slack.
1. @bot or DM → Claude Code session starts on your machine
2. Chat in thread → Claude reads, edits, runs tests — streams results back
3. Keep chatting → multi-turn conversation, full tool access
When you're back at your computer, every session header includes a one-liner to pick up in TUI:
cd /your/project && claude --resume <session-id>
TUI-first: sync to Slack
Working at your desk? Use TUI as usual. Whenever you want Slack as a mirror — run /slack-bridge:sync-on. From that point on, everything syncs.
1. Start TUI: claude
2. Work as usual (sync-on can happen anytime — now, later, whenever)
3. /slack-bridge:sync-on → session binds to a Slack DM thread
4. Leave for lunch → pull out your phone, reply in the Slack thread
5. Claude responds → same session, same context, no interruption
6. Back at desk → keep working in TUI (Slack chat becomes a
side conversation), or quit + `claude --resume`
to merge the full history back into TUI*
* TUI does not live-reload session history — a platform limitation. Without resume, the Slack portion lives as a parallel branch of the conversation.
How is this different?
| Remote Control | OpenClaw | Claude Slack Bridge |
|---|
| Client | claude.ai / Claude app | WhatsApp, Telegram, Slack, etc. | Slack |
| Auth | claude.ai Pro/Max/Team/Enterprise | Bring your own LLM key | Any Claude Code setup (Bedrock, API key) |
| Team visibility | Private | Single-user | Shared in channels — team can follow along |
| Integration | Standalone UI | Multi-channel gateway | Native Slack (threads, @mentions, notifications) |
| Session handoff | Web ↔ TUI | N/A | Slack ↔ TUI via claude --resume |
Quick Start
# 1. Clone and install
git clone https://github.com/qianheng-aws/claude-slack-bridge.git
cd claude-slack-bridge && python3 -m venv .venv && .venv/bin/pip install -e .
# 2. Register as Claude Code plugin
claude plugins marketplace add /path/to/claude-slack-bridge
claude plugins install slack-bridge@qianheng-plugins
# 3. Initialize and add your Slack tokens
.venv/bin/claude-slack-bridge init
# Edit ~/.claude/slack-bridge/.env with SLACK_BOT_TOKEN and SLACK_APP_TOKEN
Then in Claude Code TUI:
/slack-bridge:sync-on
Slack App Setup