不想每次都重開AI?他用Claude Channels,4步驟打造24小時的AI助理
近期有不少科技創作者開始分享這種做法:把 Claude 跑在一台永不關機的 Mac mini 上,搭配 Telegram 遠端下指令,讓 AI 助理真正 24 小時待命。
其中架構整理最清楚的,來自 X 上的 Nick Spisak。他展示了如何用 Claude Code 內建的 Channels 功能取代 OpenClaw,整套設定官方說法是 15 分鐘。
一般人用 Claude 的方式,是打開瀏覽器或 App 直接對話;這個方法則是把 Claude 跑在一台永不關機的 Mac mini 上,接管你的本地檔案與工具,然後透過 Telegram 接受遠端指令。
為什麼這個架構有效?
Claude Code Channels 本質上是一個訊息橋接層:Telegram 接收你的指令,轉給正在 Mac mini 上持續運行的 Claude 工作階段(session),Claude 用你的真實本地資料完成任務,再把結果送回 Telegram。
這套架構能運作的關鍵有兩個。
第一,Mac mini 不會睡眠,Claude 的 session 能保持常駐。Channels 沒有訊息佇列,Claude 不在線時傳過去的訊息直接消失,不會等到下次再送。筆電合蓋就會斷線,Mac mini 不會。
第二,Syncthing 讓兩台機器共享相同的 Skills、指令與設定,不需要在 Mac mini 上重新建置所有配置。
核心步驟
第一步:讓 Mac mini 永不入睡
進入「系統設定」→「能源」,將 Mac mini 設為永不睡眠。這是整個架構的地基,後面所有步驟都建立在機器保持清醒的前提上。
第二步:用 Syncthing 同步兩台機器的設定檔
Syncthing 是一套開放原始碼的點對點同步工具,2013 年上線至今被數萬名開發者使用,資料不經過任何雲端伺服器,直接在同一區域網路的兩台機器間傳輸,費用為零。
在 Mac mini 與筆電上分別執行:
brew install syncthingbrew services start syncthing
開啟瀏覽器前往 localhost:8384,兩台機器互相加入對方的裝置 ID,再選擇要同步的資料夾。
需要同步的資料夾:
~/.claude/skills/~/.claude/commands/~/.claude/settings.json你的知識庫(Obsidian vault、參考文件等)MCP 工具設定
絕對不能同步的檔案:
在 Syncthing 介面中,每個同步資料夾都可以設定「忽略清單」,也就是 .stignore 檔案。做法是在 Syncthing 的網頁介面(localhost:8384)點進對應的資料夾,選擇「Edit Ignores」,把以下內容貼入儲存即可,不需要自己手動建立檔案。
提醒:請在「第一次同步之前」就先把忽略清單設好,再按下同步。否則第一次 full sync 已經把不該同步的東西推過去,再改 .stignore 就只是「以後不要再犯同樣的錯」,救不了已經混在一起的紀錄。
settings.local.json ← 各機器獨立的覆寫設定history.jsonl ← 各機器獨立的對話紀錄projects/ ← Claude 用絕對路徑追蹤專案,不同機器路徑不同會衝突node_modules/.git/.env
有一個細節要特別強調:Claude Code 用「完整絕對路徑」追蹤專案。如果筆電的路徑是 /Users/nick/Projects/,Mac mini 是 /Users/admin/Projects/,Claude 會認為是兩個不同的專案。
解法:兩台機器使用相同的使用者名稱。
第三步:在 Mac mini 安裝並設定 Telegram Bot
確認 Bun 已安裝(在終端機輸入 bun --version,如果報錯先執行安裝):
curl -fsSL https://bun.sh/install | bash
接著在 Telegram 找 @BotFather,傳送 /newbot,依指示完成後複製取得的 Token。
回到 Mac mini 的 Claude Code,依序執行:
/plugin install telegram@claude-plugins-official/reload-plugins/telegram:configure <貼上你的 Token>
以下指令用來啟動附帶 Channels 的 Claude:
claude --channels plugin:telegram@claude-plugins-official
啟動後,在 Telegram 對你的 Bot 傳送任意訊息,Bot 會回覆一組配對碼。回到 Claude Code 輸入:
/telegram:access pair <配對碼>/telegram:access policy allowlist
最後一行是鎖定權限,避免陌生人也能操控你的機器。
第四步:建立自動重啟機制,讓 Claude 真正跑好跑滿
Claude 可能因為各種原因中斷,需要一個定期重啟的機制讓它保持穩定。原文使用 macOS 的 LaunchAgent 而非 cron,原因是 cron 運行在精簡環境中,無法存取登入憑證,而 Claude Code 需要使用者認證;LaunchAgent 跑在使用者工作階段內,能拿到正確的認證。
需要說明的是,這套機制提供的是「定時重啟」,不是「崩潰偵測後立即恢復」。LaunchAgent 會在開機時啟動一次、每天凌晨 4 點重啟一次,但如果 Claude 在下午 2 點意外中斷,不會自動拉起來,要等到凌晨 4 點才恢復。對大多數非緊急任務來說這已足夠,但若有時效性較高的工作流程,部署前請將這點納入考量。
第四步 A:建立重啟腳本
mkdir -p ~/.claude/scriptsnano ~/.claude/scripts/claude-channels-restart.sh
將以下內容貼入:
#!/bin/zsh# 確保 PATH 在 LaunchAgent 環境下也找得到 tmux、claude 等工具export PATH="/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin"# 關閉現有的 Claude session,從乾淨狀態重新啟動# (tmux 是「背景終端機」,讓程式在你不看的時候繼續執行)# (2>/dev/null 的意思是:如果沒有 session 可關閉,不要顯示錯誤)tmux kill-session -t claude-channels 2>/dev/null# 等待 2 秒讓清理完成sleep 2# 開啟新的背景終端機工作階段# -d = 在背景啟動,-s = 命名為 "claude-channels",-c = 從 Projects 資料夾開始tmux new-session -d -s claude-channels -c ~/Projects# 清除一個會讓 Claude 誤以為自己已在執行的環境變數tmux send-keys -t claude-channels "unset CLAUDECODE" Enter# 啟動 Claude Code 並連接 Telegramtmux send-keys -t claude-channels "claude --channels plugin:telegram@claude-plugins-official" Enter# 等待 20 秒讓 Claude 完全啟動sleep 20# 告訴 Claude 開始監聽你的訊息tmux send-keys -t claude-channels "Resume monitoring. Check channels for any messages." Enter
儲存後(Ctrl+X、Y、Enter),賦予執行權限:
chmod +x ~/.claude/scripts/claude-channels-restart.sh
第四步 B:建立 LaunchAgent
nano ~/Library/LaunchAgents/com.claude.channels.plist
貼入以下設定:
Label com.claude.channels ProgramArguments /bin/zsh -c ~/.claude/scripts/claude-channels-restart.sh RunAtLoad StartCalendarInterval Hour 4 Minute 0 StandardOutPath /tmp/claude-channels.log StandardErrorPath /tmp/claude-channels.log
儲存後啟用:
launchctl load ~/Library/LaunchAgents/com.claude.channels.plist
RunAtLoad 讓 Claude 在開機時自動啟動;StartCalendarInterval 設定每天凌晨 4 點自動重啟清空 session。
第四步 C:驗證是否正常運作
launchctl list | grep claude
若看到 com.claude.channels,代表 LaunchAgent 已正確載入。接著在 Telegram 傳訊息給 Bot,確認有回應。
測試手動重啟流程:
tmux kill-session -t claude-channels~/.claude/scripts/claude-channels-restart.sh
手動刪除 session 再執行重啟腳本,確認整個流程跑得通。這也是 Claude 意外中斷時你可以立刻手動呼叫的恢復指令。
這套架構的前提條件
這個設定有幾個限制需要誠實說明。
第一,你需要一台實體桌機或常時開機的機器,Mac mini 或任何不睡眠的 macOS 機器皆可,但這意味著一筆額外硬體成本或持續的電費支出。
第二,Channels 目前處於 research preview 階段,需要 Claude Code v2.1.80 以上版本,且必須登入 claude.ai 帳號才能使用。執行前請先確認版本:claude --version。
第三,整套流程涉及終端機指令、tmux、LaunchAgent,技術門檻不算低。若你從未接觸過 launchctl 或 tmux,需要預留時間排查問題。
第四,Syncthing 的同步設定若出錯(特別是誤把 projects/ 或 history.jsonl 同步進去),會讓 Claude 在兩台機器上產生路徑衝突或混用對話紀錄。.stignore 的設定必須在第一次同步前就確認正確。
工具不決定效果,常駐才決定效果
OpenClaw 做的事,Claude Channels 現在內建了。差別只在你的架構夠不夠穩,例如機器會不會睡、session 會不會斷、崩潰了有沒有人把它叫回來。
最後要說的是,本文整理自 Nick Spisak 的公開分享,編輯過程中已逐一核對指令語法,但不同的 macOS 版本、Claude Code 版本、網路環境,都可能讓某個步驟的行為跟這裡寫的不一樣。
建議動手前,先備份現有的 Claude 設定,遇到問題優先查官方文件或原文討論串。套一句投資圈的名言:Do your own research(DYOR)。
延伸閱讀:「軟體設計流程已死!」Anthropic設計總監:拒用Claude Code的主管,決策將嚴重脫節
資料來源:Nick Spisak(@NickSpisak_)
本文初稿為 AI 編撰,整理・編輯/李先泰
延伸閱讀
機票變貴了!2026機票附加費全面調漲,燃油費、訂位費漲多少?4家航空費率一次看
英特爾買回愛爾蘭廠!砸142億美元讓Apollo賺走30億,為何還是一樁划算生意?
「加入《數位時代》LINE好友,科技新聞不漏接」