是 Ray 不是 Array

整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ

Advertisement
AI

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

不想用龍蝦(OpenClaw)?來試試看 Claude Code channels 吧!
不想用龍蝦(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
curl -fsSL https://bun.sh/install | bash

Windows PowerShell:

1
powershell -c "irm bun.sh/install.ps1 | iex"

安裝完之後可以用以下指令來確認有沒有安裝成功:

1
bun --version

如果有正確跑出版本號的話就代表安裝成功囉~

先用 fakechat 來體驗看看

在正式設定 Telegram 或 Discord 之前,我們可以先用官方提供的 fakechat 來體驗一下 Channels 的運作方式。fakechat 是一個在 localhost 上運行的聊天 UI,不需要任何外部服務或認證,非常適合拿來測試。

首先啟動一個 Claude Code Session,然後輸入以下指令來安裝 fakechat Plugin:

1
/plugin install fakechat@claude-plugins-official

Note
輸入之後,請記得重啟 Claude Code,讓 Plugin 被正確載入,否則後續的設定指令可能會找不到唷。

安裝畫面
安裝畫面

安裝完成之後,先退出 Claude Code,然後用 --channels 參數重新啟動:

1
claude --channels plugin:fakechat@claude-plugins-official

這樣 fakechat 的伺服器就會自動啟動了。

fakechat
fakechat
fakechat
fakechat

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

1
哈囉你好
fakechat
fakechat

這時候訊息就會被推送到你的 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,剛進去會看到這樣的畫面:

BotFather
BotFather

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

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 重複,所以可能需要試幾次才能找到一個可用的。

BotFather
BotFather

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

BotFather
BotFather

接著回到 Claude Code,輸入以下指令來安裝 Telegram Plugin:

1
/plugin install telegram@claude-plugins-official

Note
輸入之後,請記得重啟 Claude Code,讓 Plugin 被正確載入,否則後續的設定指令可能會找不到唷。

安裝完之後,用剛剛從 BotFather 取得的 Token 來設定:

1
/telegram:configure <token>

這會把 Token 儲存在專案的 .claude/channels/telegram/.env 中。當然你也可以在啟動 Claude Code 之前,先在 Shell 環境中設定 TELEGRAM_BOT_TOKEN 環境變數,這樣就不用每次都跑 configure 了。

設定完之後,退出 Claude Code,然後帶上 --channels 參數重新啟動:

1
claude --channels plugin:telegram@claude-plugins-official

這會啟動 Telegram Plugin,開始輪詢你的 Bot 的訊息。

接著打開 Telegram,對你的 Bot 發送任何一段訊息,Bot 就會回覆你一組配對碼。

Telegram Bot
Telegram Bot

Note
如果你的 Bot 沒有回應,請確認 Claude Code 是不是有帶 --channels 參數在運行中,因為 Bot 只有在 Channel 啟動的狀態下才能回覆唷。

拿到配對碼之後,回到 Claude Code 輸入:

1
/telegram:access pair <code>
配對碼
配對碼

然後記得鎖定存取權限,確保只有你的帳號可以發送訊息:

1
/telegram:access policy allowlist

這樣就設定完成囉!你現在可以直接透過 Telegram 對 Claude Code 下指令了~

下指令
下指令

設定 Discord Channel

如果你比較常用 Discord 的話,也可以選擇設定 Discord Channel,步驟跟 Telegram 類似,但多了一些 Discord 特有的設定。

Note
小提醒一下,建議你先建立一個自己的 Discord 伺服器會比較好後續的操作。

首先前往 Discord Developer Portal,點選「New Application」並設定名稱

Discord Bot
Discord Bot

接著側邊欄找到「Bot」

Bot
Bot

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

Discord Bot
Discord Bot
Discord Bot
Discord Bot

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

Message Content Intent
Message Content Intent

接著側邊欄找到「OAuth2」

OAuth2
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
/plugin install discord@claude-plugins-official

Note
輸入之後,請記得重啟 Claude Code,讓 Plugin 被正確載入,否則後續的設定指令可能會找不到唷。

安裝完之後,設定剛剛複製的 Token:

1
/discord:configure <token>

跟 Telegram 一樣,Token 會被儲存在 .claude/channels/discord/.env 中,你也可以用 DISCORD_BOT_TOKEN 環境變數來設定。

設定完退出 Claude Code,帶上 --channels 參數重新啟動:

1
claude --channels plugin:discord@claude-plugins-official

接著從你邀請 Bot 的 Discord 伺服器中,對 Bot 發送任何一段訊息,Bot 就會回覆你一組配對碼

對話
對話
對話
對話

回到 Claude Code 完成配對:

1
/discord:access pair <code>

Note
這邊我有遇到一個狀況,就是配對碼一直過期,所以我改用 /discord:access allow <senderId> 直接把自己 Discord 的發送者 ID 加入白名單。如果你不知道該如何取得 Discord ID,你可以參考這篇文章:一篇教你輕鬆取得自己的 Discord ID

然後一樣鎖定存取權限:

1
/discord:access policy allowlist

這樣就完成啦~

當然,如果你想同時啟用多個 Channel 的話,可以在 --channels 後面用空格分隔多個 Plugin,像是這樣:

1
claude --channels plugin:telegram@claude-plugins-official plugin:discord@claude-plugins-official

Channels 的安全性

你可能會擔心說 Channels 會不會有安全問題,這邊簡單說明一下好了。

其實每一個被核准的 Channel Plugin 都會維護一個發送者白名單(Allowlist),只有你手動加入白名單的 ID 才能推送訊息,其他人的訊息會被直接丟棄,所以不用太擔心有人亂發訊息來搗亂。

Telegram 和 Discord 都是透過配對碼機制來建立白名單的:

  1. 在 Telegram 或 Discord 上對你的 Bot 發送任何訊息
  2. Bot 回覆一組配對碼
  3. 在 Claude Code 中輸入配對碼來核准
  4. 你的發送者 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) 則是第三方的方案,功能更泛用,但相對來講沒有官方的穩定性保障。
你的支持會直接轉換成更多技術筆記

如果我的筆記讓你少踩一個坑、節省 Debug 的時間,
也許你可以請我喝杯咖啡,讓我繼續當個不是 Array 的 Ray ☕

buymeacoffee | line | portaly
Terminal

整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ

Advertisement

分享這篇文章

留言

© 2026 Ray. All rights reserved.

Powered by Ray Theme