English | 繁體中文
將 Claude Code 連接到通訊平台,實現與本地 AI agent 的雙向遠端互動。
一個專案級的設定,用於搭配官方 Claude Code Channels 插件系統。從手機發送任務、遠端審批危險操作、分享檔案——全部透過你偏好的通訊軟體完成。
| Channel | 狀態 | 文件 |
|---|---|---|
| docs/telegram/ | ||
| docs/discord/ | ||
| docs/slack/ | ||
| docs/line/ | ||
| docs/whatsapp/ | ||
| docs/teams/ |
- Bun runtime
- Claude Code v2.1.80+
- 目標 channel 的 bot token(例如 Telegram 的 @BotFather)
-
Clone 並設定:
git clone https://github.com/osisdie/claude-code-channels.git cd claude-code-channels cp .env.example .env # 編輯 .env,加入你的 bot token
-
安裝 channel 插件(在 Claude Code session 內):
/plugin marketplace add anthropics/claude-plugins-official /plugin install telegram@claude-plugins-official /telegram:configure <YOUR_BOT_TOKEN> -
配對你的帳號(依 channel 不同,請參考各 channel 文件)。
-
啟動:
./start.sh telegram
每個 broker channel 可作為獨立的 Docker 容器運行:
# 建置並啟動 WhatsApp broker
docker compose up whatsapp
# 啟動多個 broker
docker compose up slack whatsapp
# 啟動所有 broker
docker compose up注意: 在
.env檔案中設定ANTHROPIC_API_KEY。容器內的 Claude CLI 透過 API key 進行驗證。
通訊 App(手機/桌面)
| (平台 API, plugin 主動 outbound polling)
Channel Plugin (Bun subprocess, MCP Server)
| (stdio transport)
Claude Code Session (本地,有完整檔案系統存取)
不需要開 inbound port、不需要 webhook、不需要外部伺服器。WSL2 相容。
深入了解官方插件內部架構,請見插件架構。
# 從 Telegram/Discord 發送:
最近一次 commit 改了什麼檔案?
# Claude Code 執行 `git diff HEAD~1` 並回覆 diff 摘要
# Claude Code 遇到危險操作:
Bot: "即將執行 `rm -rf dist/` — approve 或 reject?"
你: approve
# Claude Code 繼續執行
# 同時啟動多個 channel
./start.sh telegram discord.
├── start.sh # 多 channel 啟動腳本
├── docker-compose.yml # 各 broker Docker 服務
├── docker/ # 各 channel Dockerfile
├── .env.example # 環境變數範本
├── .gitignore # 排除機密與 channel 狀態
├── CHANGELOG.md
├── CONTRIBUTING.md
├── SECURITY.md
├── LICENSE
├── README.md
├── README.zh-TW.md
├── docs/
│ ├── prerequisites.md # 共用前置條件(Bun、Claude Code)
│ ├── prerequisites.zh-tw.md # 共用前置條件(zh-TW)
│ ├── issues.md # 已知問題(跨 channel)
│ ├── plugins/
│ │ ├── architecture.md # 官方插件架構(EN)
│ │ └── architecture.zh-tw.md # 官方插件架構(zh-TW)
│ ├── telegram/
│ │ ├── plan.md # 整合規劃文件
│ │ ├── plan.zh-tw.md # 整合規劃文件(zh-TW)
│ │ ├── install.md # 安裝與整合筆記
│ │ ├── install.zh-tw.md # 安裝與整合筆記(zh-TW)
│ │ └── security.png
│ ├── discord/
│ │ ├── plan.md # 整合規劃文件
│ │ ├── plan.zh-tw.md # 整合規劃文件(zh-TW)
│ │ ├── install.md # 安裝與整合筆記
│ │ └── install.zh-tw.md # 安裝與整合筆記(zh-TW)
│ ├── slack/
│ │ ├── plan.md # 整合規劃(僅 MCP,非 channel)
│ │ ├── install.md # 安裝與整合筆記
│ │ └── install.zh-tw.md # 安裝與整合筆記(zh-TW)
│ ├── line/
│ │ ├── plan.md # 整合規劃文件
│ │ ├── plan.zh-tw.md # 整合規劃文件(zh-TW)
│ │ ├── install.md # 安裝與整合筆記
│ │ └── install.zh-tw.md # 安裝與整合筆記(zh-TW)
│ ├── whatsapp/
│ │ ├── plan.md # 整合規劃文件
│ │ ├── install.md # 安裝與整合筆記
│ │ └── install.zh-tw.md # 安裝與整合筆記(zh-TW)
│ └── teams/
│ ├── plan.md # 整合規劃文件
│ ├── install.md # 安裝與整合筆記
│ └── install.zh-tw.md # 安裝與整合筆記(zh-TW)
├── external_plugins/
│ ├── slack-channel/
│ │ └── broker.ts # Slack 訊息 broker
│ ├── line-channel/
│ │ ├── broker.ts # LINE webhook broker(直接,需 ngrok)
│ │ ├── broker-relay.ts # LINE relay bridge(輪詢雲端 relay)
│ │ └── relay/ # Cloudflare Worker(雲端 webhook)
│ ├── whatsapp-channel/
│ │ ├── broker-relay.ts # WhatsApp relay bridge
│ │ └── relay/ # Cloudflare Worker(雲端 webhook)
│ └── teams-channel/
│ ├── broker-relay.ts # Teams relay bridge
│ ├── relay/ # Cloudflare Worker(雲端 webhook)
│ └── manifest/ # Teams app manifest(側載用)
├── lib/
│ ├── sessions/ # Session 記憶(STM + LTM + 壓縮)
│ └── safety/ # 內容過濾、配額、審計日誌
├── scripts/
│ ├── verify_slack.sh # Slack token 驗證與煙霧測試
│ └── verify_whatsapp.sh # WhatsApp relay 驗證與煙霧測試
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ └── feature_request.md
│ ├── PULL_REQUEST_TEMPLATE.md
│ └── workflows/ci.yml
└── .claude/ # (gitignored)
├── agents/
│ └── pre-push-reviewer.md
├── settings.local.json # 權限白名單
└── channels/<channel>/ # 各 channel 狀態(token、存取控制)
| 提問 | 回覆 |
|---|---|
![]() |
![]() |
| 提問 | 回覆 |
|---|---|
![]() |
![]() |
| 提問 | 回覆 |
|---|---|
![]() |
![]() |
| 提問(花朵) | 提問(天氣) |
|---|---|
![]() |
![]() |
| 提問(EN) | 提問(zh-TW) |
|---|---|
![]() |
![]() |
| 提問(花朵) | 提問(天氣) |
|---|---|
![]() |
![]() |












