專案筆記

「remotetools」:用手機遠端指揮家裡的 Claude Code

2026-08-08 #Claude Code#Python#專案介紹#Telegram#Discord

人在外面,突然想到「啊,那個專案的 README 要加一段」——掏出手機,傳個訊息給 bot,家裡電腦上的 Claude Code 就自動改好、commit 完。這就是 remotetools 在做的事。

這是系列文的第一篇,先講這個專案是什麼、能做什麼;之後兩篇分別深入底層邏輯部署教學

它解決什麼問題

Claude Code 是跑在終端機裡的 AI coding agent,能讀寫檔案、跑指令、操作 git。但它只活在你的電腦上——人不在電腦前就用不了。

remotetools 把這個能力延伸到手機上:跑一個常駐的 Telegram 或 Discord bot,把你傳的訊息丟進本機的 claude CLI,再把回應切片傳回手機。

1
2
3
4
5
6
你 (📱)  ──訊息──▶  Telegram / Discord  ──polling──▶  bot.py  ──subprocess──▶  claude --print
▲ │
└──── stdout JSON ─────────┘


家裡的 repo(自動 edit / git / build)

重點特性:

  • 對話有記憶:每段對話對應一個持續存活的 Claude session,用 --resume 接續脈絡,不是每句話都從零開始。
  • 多專案切換.env 裡定義多個 project(就是 working directory),用指令隨時切換 bot 要操作哪個 repo。
  • 即時進度:Claude 跑任務的過程中,bot 會每兩秒更新一則訊息,顯示它正在呼叫哪些工具(讀檔、跑指令…),不是傻等到跑完。
  • 配額保護:內建每分鐘與每日訊息上限,防止失控迴圈半小時燒光 Claude Max 的五小時配額。

支援平台

平台 SDK 訊息上限 指令前綴
Telegram python-telegram-bot 21.9 4000 字 /
Discord discord.py 2.4.0 1900 字 !

兩個平台是各自獨立的 Python app,各有自己的 .venv.env,可以只跑一個或同時跑。有趣的設計決策是:兩邊有四個 byte-identical 的共用模組,但刻意抽成共用 package——這個取捨在下一篇會細講。

指令一覽

Telegram Discord 說明
/status !status session id、當前專案、今日用量、成本
/projects !projects 列出所有定義的專案
/project <name> !project <name> 切換 working directory(清空 session)
/cancel !cancel 殺掉正在執行的 claude 請求
/reset !reset 下一則訊息開新對話
/retry !retry 同 prompt 開全新 session 重跑
/model [name] !model 查看或切換模型(opus / sonnet / haiku)

不帶前綴的純訊息就是直接送給 Claude 的 prompt。

安全模型:一句話總結

這個 bot 等於把「在你電腦上執行任意動作的能力」開放到網路上,所以安全設計是 fail-closed 的:

  1. 白名單是唯一的信任邊界——ALLOWED_CHAT_IDS / ALLOWED_USER_IDS 留空時 bot 拒絕所有人,永遠不要為了方便測試關掉它。
  2. 權限模式只有兩種能用——bot 沒有 stdin,Claude 問「可以執行嗎?」沒人能回答,所以互動式權限模式會直接卡死。推薦 bypassPermissions(全放行,信任完全押在白名單上)。
  3. 用量上限不是防別人,是防自己——自動化呼叫比人手快得多,預設每日 100 則、每分鐘 6 則。

系列文章

Creative Commons 姓名標示 非商業性

本文採用 CC BY-NC 4.0 授權

歡迎轉載與引用,請標明出處(「remotetools」:用手機遠端指揮家裡的 Claude Code — EmptyWu);禁止用於商業用途。

商業使用或合作提案,歡迎來信洽談:[email protected]

留言
分享

留言