用手機上的 ChatGPT、Claude 操作自己的電腦:BCD 的架構、權限與檔案連結設計
出門在外,最常遇到的狀況是「那個檔案在家裡的電腦上」「公司 Mac 的測試還沒跑」。手機開遠端桌面太難操作,問 ChatGPT 或 Claude 又碰不到自己的電腦。所以我做了 BCD:把電腦接到 ChatGPT、Claude,之後在手機上說一句話,電腦就照做,做完再回報結果。 這篇用繁體中文整理 BCD 的架構,還有我在「讓 AI 碰電腦」這件事上做的安全設計。 架構 手機的 ChatGPT / Cla
出門在外,最常遇到的狀況是「那個檔案在家裡的電腦上」「公司 Mac 的測試還沒跑」。手機開遠端桌面太難操作,問 ChatGPT 或 Claude 又碰不到自己的電腦。所以我做了 BCD:把電腦接到 ChatGPT、Claude,之後在手機上說一句話,電腦就照做,做完再回報結果。
這篇用繁體中文整理 BCD 的架構,還有我在「讓 AI 碰電腦」這件事上做的安全設計。
架構
手機的 ChatGPT / Claude ──(MCP over HTTPS,OAuth)──▶ BCD relay ◀──(WebSocket,由電腦主動連出)── 電腦上的 BCD agent
- 電腦上的 agent 主動用 WebSocket 連到 relay,所以不用開放連接埠,也不用設定路由器。
- AI App 透過 MCP(Model Context Protocol)連到 relay,用 OAuth 登入 BCD 帳號。
- relay 把工具呼叫轉給指定的電腦,再把結果交還給 AI。一個帳號可以有好幾台電腦,用名稱指定:「在辦公室的 Mac 跑測試」。
- 檔案內容只在執行時經過 relay 的記憶體,不會保存。
權限設計
- 新加入的電腦預設唯讀。寫入檔案、執行指令、操作畫面、剪貼簿,要在每台電腦分別開啟。
- 只能存取允許的資料夾。SSH 金鑰、BCD 自己的憑證等路徑另外保護。
- 開檔時先拿到 file handle,再用 handle 確認實際打開的就是允許範圍內的那個檔案,避免檢查之後資料夾被換成 symlink 的 TOCTOU。
- AI 改過的檔案留有紀錄,可以一個一個復原。
- 分享給團隊的電腦,每次呼叫都記在團隊的活動紀錄:誰、哪台電腦、哪個 AI App、哪個工具、結果。
最近加的兩個功能
排程執行
存好的 workflow 可以排程,例如每個平日 08:00(時區用 IANA 名稱,例如 Asia/Taipei)。排程存在 relay,時間到了 relay 用跟使用者手動執行一樣的權限請電腦跑;workflow 的步驟只存在電腦上。執行失敗或沒能開始,會寄 Email 通知。
手機 ↔ 電腦的檔案連結
在聊天裡,AI 沒辦法把照片或 PDF 的原始位元組交給你,所以 BCD 改成給連結:
- 下載連結:relay 以 1 MB 為單位向電腦讀取,邊讀邊串流給手機;傳到一半檔案被改,就停止傳送,避免收到壞掉的檔案。
- 上傳連結:手機選的檔案每 4 MB 一段送出,電腦端先寫成暫存檔,最後用 hard link 存成不重複的檔名,不會覆蓋同名檔案。
- 連結的 token 只存 hash,預設 1 小時失效,每次使用都重新檢查電腦目前的權限。
安裝
Mac、Linux:
curl -fsSL https://bcd.snack-wrap.com | bash
Windows(PowerShell,不需要系統管理員權限):
irm https://bcd.snack-wrap.com/install.ps1 | iex
接著在 Claude(設定 → 連接器 → 新增自訂連接器)或 ChatGPT(電腦版網頁開啟開發者模式,需要付費方案)加入:
https://bcd.snack-wrap.com/mcp
一台電腦免費、沒有每月呼叫次數上限。中文說明頁:https://bcd.snack-wrap.com/zh-tw?utm_source=devto&utm_medium=article&utm_campaign=tw_launch
Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.