Community寫作與編輯github.com

guanxiong/VibeSMS

將您的 Android 手機變成 AI 代理的簡訊與來電閘道。

VibeSMS 是什麼?

VibeSMS 是一項技能,可讓 AI 代理(例如 Claude Code、Coder 或 Codex)安全地與使用者擁有的 Android 手機及其 SIM 卡進行互動,而無需暴露整個簡訊收件匣。透過使用單一的 `VIBESMS_KEY`,代理僅能存取其指定的電話號碼,並支援四項聚焦的動作:檢查終端機是否在線、在外部服務發送訊息前擷取事件游標、等待該游標之後的 4-8 位驗證碼,以及讀取隔離的簡訊和來電事件。Android 終端機使用獨立的裝置憑證上傳資料,因此代理金鑰無法上傳事件或讀取其他號碼。此技能附帶一個腳本 `scripts/vibesms.py`,可從 `SKILL.md` 的相對路徑解析,用於執行確定性的 API 呼叫,而無需假設目前工作目錄包含該技能。它支援主要代理平台,並可在自託管實例上與 `VIBESMS_BASE_URL` 一起使用。

相容平台✓Claude Code~Codex CLI✓Cursor
npx skills add guanxiong/VibeSMS

Installed? Explore more 寫作與編輯 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

VibeSMS 是做什麼的?

將 AI 代理連接到使用者擁有的 Android 手機和 SIM 卡,而不暴露整個簡訊收件匣。單一的 VIBESMS_KEY 賦予代理僅存取其指定電話號碼的權限,並支援四項聚焦的動作:

  • 檢查 Android 終端機是否已綁定且在線。
  • 在外部服務發送訊息之前擷取事件游標。
  • 等待該游標之後的新 4-8 位驗證碼。
  • 讀取金鑰隔離的簡訊和來電事件。

Android 終端機透過獨立的裝置憑證上傳,因此代理金鑰無法上傳事件或讀取其他號碼。使用捆綁的用戶端進行確定性的 API 呼叫。 將 scripts/vibesms.py 相對於此 SKILL.md 解析;不要假設目前工作目錄包含該技能。

前置條件

  • 在環境或代理 Secret 儲存中要求 VIBESMS_KEY。
  • 僅在自託管實例時使用 VIBESMS_BASE_URL;預設為 https://sms.shareapi.ai。
  • 切勿要求使用者將金鑰貼到聊天、命令參數、原始碼或日誌中。
  • 切勿在輸出中暴露金鑰。如果缺少金鑰,要求使用者設定 Secret。

接收驗證碼

  1. 在觸發外部簡訊之前立即擷取游標:

    python3 <skill-directory>/scripts/vibesms.py status
    
  2. 從 JSON 回應中讀取 cursor 值。

  3. 觸發使用者授權的動作,該動作會發送簡訊。

  4. 等待該游標之後收到的第一個 4-8 位驗證碼:

    python3 <skill-directory>/scripts/vibesms.py wait-otp --after-id <cursor> --timeout 60
    
  5. 僅將驗證碼用於使用者授權的任務。完成後不要保留它。

始終優先擷取游標。沒有它,可能會將舊訊息誤認為新的驗證碼。

檢查終端機狀態

執行:

python3 <skill-directory>/scripts/vibesms.py status

如果 bound 為 false,告訴使用者該金鑰尚未與 Android SIM 卡配對。如果 online 為 false,說明訊息仍可能在終端機重新連線並重播其離線佇列後送達。

讀取收件匣事件

執行下列其中一項:

python3 <skill-directory>/scripts/vibesms.py inbox --after-id <cursor>
python3 <skill-directory>/scripts/vibesms.py inbox --type sms --limit 20
python3 <skill-directory>/scripts/vibesms.py inbox --type call --limit 20

對於任務特定的讀取,優先使用 after-id。僅回傳使用者任務所需的欄位;避免重複無關的訊息內容或電話號碼。

錯誤

  • 401:金鑰無效、已停用或已輪換。要求使用者更新 Secret。
  • status=timeout:在時限內沒有收到相符的 OTP。檢查終端機狀態,然後僅在使用者仍想等待時重試。
  • 網路/TLS 故障:報告端點和故障,但不要列印標頭或金鑰。

只有在需要原始端點架構或自託管整合詳細資訊時,才閱讀 references/api.md。

相關技能