Discord/Telegram 遠端控制
透過 bot 建立終端、傳送指令、讀取輸出、接收 agent 通知與取得截圖。Discord 自 1.20 起以 session 討論串對應終端。
Telegram 設定
- 向 @BotFather 傳送 /newbot 建立 bot,複製 token。
- 開啟與 bot 的對話並取得該對話的 chat ID。
- 在設定 > 遠端控制 > Telegram 填入 bot token、chat ID,並啟用整合與遠端控制。只有指定 chat 可操作終端。
Discord 設定
- 在 Discord Developer Portal 建立 application 並取得 bot token。
- 使用 bot、applications.commands scopes 邀請到伺服器。在目標文字頻道允許 View Channel、Send Messages、Read Message History、Embed Links、Attach Files、Create Public Threads、Send Messages in Threads。
- 在 Bot 設定啟用 Message Content Intent,才能讀取一般訊息與討論串回覆。Termdock 也會要求 Guilds、GuildMessages。未開 Message Content 時仍可用斜線指令,但不能直接輸入文字或使用 session 討論串。
- 在設定 > 遠端控制 > Discord 填入 bot token、guild(伺服器)ID、channel ID,並啟用整合與遠端控制。請限制指定頻道的存取,因為其中訊息可執行終端指令。
每個 session 的討論串
Session 首次推送會在指定 Discord 頻道建立討論串。串內一般訊息直接送到該終端,不需 session 編號。回覆不會自動訂閱所有 agent 輸出,需要持續更新時使用 /watch。
Message Content 不可用或頻道無法建立討論串時,推送改送主頻道。App 重新啟動後,舊串可能已失去 session 對應;Termdock 會提示,該 session 下次推送時建立新串。
Telegram 或 Discord 主頻道可用 /attach 選擇 session,讓一般訊息直接送入;/detach 停止此模式。以 / 開頭的文字留給指令,要傳送斜線開頭的 agent 提示請使用 /send。
指令
兩個 bot 都支援以下指令。Session 使用 /list 的編號或 ID;Discord /key 的具名選項為 keyname。
/ws
/new [workspace]
/list
/send <session> <content>
/read <session> [lines] [raw]
/watch <session>
/unwatch <session>
/key <session> <key>
/kill <session>
/snap [session]
/attach <session>
/detach- /ws 列出工作區,/new 在選定工作區建立終端,/list 列出 session。
- /send 傳送文字,/read 讀取輸出(預設 50 行),/key 傳送 enter、tab、esc、ctrl+c 等特殊鍵。
- /watch 開始輸出或提示通知,/unwatch 停止。兩個平台都可用 /kill 關閉 session。
- /snap 將 session 截圖以圖片回傳;未指定 session 時擷取 app 視窗。畫面與輸出讀取也支援 LAN、SSH session。
Agent 主動推送
在遠端控制設定啟用推送通知並連接 provider。Agent 或腳本可在工作完成或需要決策時通知你。Termdock 內的 notify 自動使用 $TERMDOCK_SESSION_ID,外部腳本可明確指定 --session。
termdock notify "The review needs your decision"
termdock notify "Starting the build" --session <id> --title "Build review" --json有 session 且 Discord 連線支援討論串時,通知選擇 Discord。沒有可用討論串連線時,使用已連線的遠端 provider;未指定 session 時也送至已連線平台。--title 只在首次建立 Discord 討論串時生效,Telegram 忽略此欄位。
訊息修剪空白後上限 4000 字元,每個 session 每分鐘最多六次。CLI 非零退出碼代表未送達,請查看 stderr,不要循環重試。
通知 HTTP API提示按鈕與限制
辨識到終端選項時,可產生 Discord 按鈕或 Telegram 行內鍵盤。回覆前先確認 session 與提示。截圖與輸出可能含敏感資料,只在信任的頻道分享。
Telegram 訊息上限 4096 字元,行內 callback data 上限 64 bytes。Discord 訊息上限 2000 字元,每則提示最多五個按鈕。較長的推送文字會分成多則。
直接在手機瀏覽器使用終端