不想用龍蝦(OpenClaw)?來試試看 Claude Code channels 吧!

前言
如果你有在關注 AI Agent 相關的工具,應該多少聽過龍蝦(OpenClaw)這個工具吧?簡單來講,龍蝦可以讓你透過聊天平台來遠端操控電腦上的 AI Agent,但其實 Claude Code 最近也推出了類似的功能,叫做「Channels」。
Channels 的概念跟龍蝦非常類似,都是讓你可以透過外部平台(像是 Telegram、Discord)來對正在運行的 Claude Code Session 發送訊息,讓 Claude 可以在背景幫你處理任務。不同的是,Channels 是 Anthropic 官方推出的功能,所以在穩定性和安全性上會更有保障,也不用擔心被判定為違規操作。
那這篇文章就來帶大家了解 Channels 是什麼、怎麼設定、以及實際上要怎麼使用吧。
Claude Code Channels 是什麼?
簡單來講,Channel 其實就是一個 MCP Server,它可以把外部的事件(訊息、通知、Webhook 等)推送到你正在運行的 Claude Code Session 中,讓 Claude 能夠在你不在終端機前的時候,也能夠對這些事件做出反應。
而且 Channels 是雙向的——Claude 不只可以接收訊息,還可以透過同一個 Channel 回覆訊息。舉例來說,你在 Telegram 上傳一段訊息給 Bot,Claude 會在終端機中處理這個請求,然後把結果回傳到 Telegram 上,你就可以直接在手機上看到結果了。
這邊要注意的是,當 Claude 透過 Channel 回覆的時候,你在終端機上只會看到 inbound 的訊息和工具呼叫的確認(像是「sent」),實際的回覆內容會出現在另一個平台上(例如 Telegram 或 Discord)。
不過事件只有在 Session 開啟的時候才會到達,所以如果你想要 24 小時不間斷的接收訊息的話,你就需要讓 Claude Code 在背景程序或持久化的終端機中持續運行唷。
另外補充一下,Channels 目前還是 Research Preview 階段,需要 Claude Code v2.1.80 或以上版本,而且只支援 claude.ai 登入,不支援 Console 或 API Key 認證。如果你是 Team 或 Enterprise 方案的話,管理員需要先啟用才能使用。
開始之前要準備什麼?
在開始設定之前,你需要先確認以下幾件事:
- Claude Code v2.1.80 或以上版本(可以用
claude --version來確認) - claude.ai 帳號(需要透過
/login登入,不支援 API Key) - 安裝 Bun(Channel Plugin 是用 Bun 來運行的,可以用
bun --version來確認有沒有安裝)
這些東西如果沒有準備好的話,後面的步驟是沒辦法順利進行的唷。
安裝 Bun
Channel Plugin 都是用 Bun 來跑的,所以這邊要先安裝一下。如果你已經有裝過的話可以跳過這一段。
macOS / Linux / WSL:
1 | |
Windows PowerShell:
1 | |
安裝完之後可以用以下指令來確認有沒有安裝成功:
1 | |
如果有正確跑出版本號的話就代表安裝成功囉~
先用 fakechat 來體驗看看
在正式設定 Telegram 或 Discord 之前,我們可以先用官方提供的 fakechat 來體驗一下 Channels 的運作方式。fakechat 是一個在 localhost 上運行的聊天 UI,不需要任何外部服務或認證,非常適合拿來測試。
首先啟動一個 Claude Code Session,然後輸入以下指令來安裝 fakechat Plugin:
1 | |
Note
輸入之後,請記得重啟 Claude Code,讓 Plugin 被正確載入,否則後續的設定指令可能會找不到唷。

安裝完成之後,先退出 Claude Code,然後用 --channels 參數重新啟動:
1 | |
這樣 fakechat 的伺服器就會自動啟動了。


接著打開瀏覽器,前往 http://localhost:8787,你會看到一個簡單的聊天介面,試著輸入一段訊息,例如:
1 | |

這時候訊息就會被推送到你的 Claude Code Session 中,Claude 會讀取訊息並處理,然後透過 fakechat 的 reply 工具把結果回傳到聊天介面上,你就可以直接在瀏覽器上看到結果囉~
Note
如果 Claude 在執行過程中遇到權限提示,Session 會暫停直到你在終端機上手動核准。如果你想要完全無人值守的話,可以用--dangerously-skip-permissions來跳過權限提示,但請只在你信任的環境中使用唷。
設定 Telegram Channel
體驗完 fakechat 之後,接下來我們就來設定真正的 Telegram Channel 吧!
首先打開 Telegram,搜尋 BotFather 並發送 /newbot,接著依照指示給你的 Bot 設定一個顯示名稱和一個以 bot 結尾的使用者名稱。設定完成後,BotFather 會回傳一組 Token,把它複製起來。
但為了確保大家順利,這邊還是寫了一下步驟:
搜尋 @BotFather 並建立新 Bot,剛進去會看到這樣的畫面:

Note
請注意必須要有認證的藍勾勾的才是真的 BotFather 不是我底下打紅叉叉的假 BotFather 喔~

接著輸入 /newbot 來建立一個新的 Bot,BotFather 會先問你「Alright, a new bot. How are we going to call it? Please choose a name for your bot.」,意思是「你要替你的 Bot 取什麼名字呢?」這個名字可以隨便取,之後也可以改,所以不用太在意。
接著會問你「Good. Now let’s choose a username for your bot. It must end in bot.」,意思是「好,現在幫你的 Bot 選一個使用者名稱吧!必須要以 bot 結尾喔!」這個使用者名稱是 Telegram 上的唯一識別碼,不能跟其他 Bot 重複,所以可能需要試幾次才能找到一個可用的。

最後你就可以拿到 HTTP API Token 啦!它會是一串由英文字母、數字和冒號組成的長字串,請把它記下來(也請不要分享或者外流給他人)。

接著回到 Claude Code,輸入以下指令來安裝 Telegram Plugin:
1 | |
Note
輸入之後,請記得重啟 Claude Code,讓 Plugin 被正確載入,否則後續的設定指令可能會找不到唷。
安裝完之後,用剛剛從 BotFather 取得的 Token 來設定:
1 | |
這會把 Token 儲存在專案的 .claude/channels/telegram/.env 中。當然你也可以在啟動 Claude Code 之前,先在 Shell 環境中設定 TELEGRAM_BOT_TOKEN 環境變數,這樣就不用每次都跑 configure 了。
設定完之後,退出 Claude Code,然後帶上 --channels 參數重新啟動:
1 | |
這會啟動 Telegram Plugin,開始輪詢你的 Bot 的訊息。
接著打開 Telegram,對你的 Bot 發送任何一段訊息,Bot 就會回覆你一組配對碼。

Note
如果你的 Bot 沒有回應,請確認 Claude Code 是不是有帶--channels參數在運行中,因為 Bot 只有在 Channel 啟動的狀態下才能回覆唷。
拿到配對碼之後,回到 Claude Code 輸入:
1 | |

然後記得鎖定存取權限,確保只有你的帳號可以發送訊息:
1 | |
這樣就設定完成囉!你現在可以直接透過 Telegram 對 Claude Code 下指令了~

設定 Discord Channel
如果你比較常用 Discord 的話,也可以選擇設定 Discord Channel,步驟跟 Telegram 類似,但多了一些 Discord 特有的設定。
Note
小提醒一下,建議你先建立一個自己的 Discord 伺服器會比較好後續的操作。
首先前往 Discord Developer Portal,點選「New Application」並設定名稱

接著側邊欄找到「Bot」

然後點選「Reset Token」並複製 Token


接著在 Bot 的設定頁面中,往下滑到「Privileged Gateway Intents」,把「Message Content Intent」啟用,這個很重要,如果沒有啟用的話 Bot 是讀不到訊息內容的。

接著側邊欄找到「OAuth2」

然後前往「URL Generator」,勾選 bot 範圍,然後啟用以下權限:
- 檢視頻道(View Channels)
- 發送訊息(Send Messages)
- 讀取訊息歷史(Read Message History)
- 在討論串中發送訊息(Send Messages in Threads)
- 附加檔案(Attach Files)
- 加入反應(Add Reactions)

打開產生的網址,把 Bot 加入你的伺服器。


接著回到 Claude Code,安裝 Discord Plugin:
1 | |
Note
輸入之後,請記得重啟 Claude Code,讓 Plugin 被正確載入,否則後續的設定指令可能會找不到唷。
安裝完之後,設定剛剛複製的 Token:
1 | |
跟 Telegram 一樣,Token 會被儲存在 .claude/channels/discord/.env 中,你也可以用 DISCORD_BOT_TOKEN 環境變數來設定。
設定完退出 Claude Code,帶上 --channels 參數重新啟動:
1 | |
接著從你邀請 Bot 的 Discord 伺服器中,對 Bot 發送任何一段訊息,Bot 就會回覆你一組配對碼


回到 Claude Code 完成配對:
1 | |
Note
這邊我有遇到一個狀況,就是配對碼一直過期,所以我改用/discord:access allow <senderId>直接把自己 Discord 的發送者 ID 加入白名單。如果你不知道該如何取得 Discord ID,你可以參考這篇文章:一篇教你輕鬆取得自己的 Discord ID
然後一樣鎖定存取權限:
1 | |
這樣就完成啦~
當然,如果你想同時啟用多個 Channel 的話,可以在 --channels 後面用空格分隔多個 Plugin,像是這樣:
1 | |
Channels 的安全性
你可能會擔心說 Channels 會不會有安全問題,這邊簡單說明一下好了。
其實每一個被核准的 Channel Plugin 都會維護一個發送者白名單(Allowlist),只有你手動加入白名單的 ID 才能推送訊息,其他人的訊息會被直接丟棄,所以不用太擔心有人亂發訊息來搗亂。
Telegram 和 Discord 都是透過配對碼機制來建立白名單的:
- 在 Telegram 或 Discord 上對你的 Bot 發送任何訊息
- Bot 回覆一組配對碼
- 在 Claude Code 中輸入配對碼來核准
- 你的發送者 ID 就會被加入白名單
除此之外,你還可以透過 --channels 參數來控制每次 Session 要啟用哪些 Channel。就算一個 MCP Server 被寫在 .mcp.json 中,如果沒有被加入 --channels,它也沒辦法推送訊息進來。
所以整體來看,安全機制是多層防護的:Plugin 白名單 + 配對碼驗證 + Session 級別的啟用控制,用起來是不用太擔心的。
Channels vs Remote Control vs 龍蝦(OpenClaw)
看到這邊,你可能會好奇說 Channels 跟之前介紹過的 Remote Control 還有龍蝦有什麼不同,這邊簡單整理一下:
| 項目 | Channels | Remote Control | 龍蝦(OpenClaw) |
|---|---|---|---|
| 核心概念 | 外部事件推送到 Claude Code | 手機/瀏覽器直接操控 Claude Code | 透過聊天平台操控電腦 |
| 支援平台 | Telegram、Discord(可擴充) | claude.ai/code、Claude App | 多種聊天平台 |
| 雙向溝通 | 支援 | 支援 | 支援 |
| 官方支援 | Anthropic 官方 | Anthropic 官方 | 第三方 |
| 適用情境 | 想透過聊天平台推送事件或訊息 | 想直接操控 Claude Code Session | 想用聊天平台操控整台電腦 |
簡單來講:
- Remote Control 適合你想要「直接操控」Claude Code Session 的情境,就像拿著遙控器一樣。
- Channels 更偏向「事件驅動」,像是把 CI 結果、監控警報、聊天訊息推送進來,讓 Claude 自動處理。
- 龍蝦(OpenClaw) 則是第三方的方案,功能更泛用,但相對來講沒有官方的穩定性保障。