-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Hsiehting Lin edited this page Jul 19, 2026
·
6 revisions
把你的 TeamPlus 訊息歷史掌握在自己手上 — 每一則訊息(含圖片、檔案)都寫進自己的雲端資料庫,隨處可查。不需要一直開著筆電。
team-plus-server 是圍繞一個 TeamPlus 帳號打造的自架工具組,由兩個獨立的部分組成:
-
雲端封存(
worker/) — 一個 always-on 的 Cloudflare Worker + Durable Object,把每一則訊息寫進你自己的 Turso(SQLite)資料庫,建立一份私有、可查詢的紀錄:誰、何時、在哪個聊天室、說了什麼 — 涵蓋 DM、群組與 bot。附件會下載存進 R2。部署後不需要任何本機程序。 -
從 CLI 讀與回(
.claude/、scripts/、tui/) — Claude Code skills(dms、fetch-hx)、幾支小 Node 腳本,以及一個 curses 即時終端機客戶端(tui/),讓你直接讀歷史、擬回覆、發送訊息 — 走 TeamPlus 帶認證的 REST 端點,或透過 worker。
兩者都透過同一組帶認證的 WebSocket + REST 端點與 TeamPlus 溝通。TeamPlus 站台網址由 TEAMPLUS_BASE 設定,原始碼中不含任何特定組織的資訊。
⚠️ 注意: TeamPlus 沒有公開 API。本專案驅動的是網頁版客戶端使用的相同端點,以你自行更新的 session cookies 認證。請只用於自己的帳號,並遵守所屬組織的政策。
flowchart TB
TP["TeamPlus 伺服器<br/>TEAMPLUS_BASE"]
subgraph LOCAL["讀與回 · CLI / 本機 (scripts + .claude + tui)"]
SKILLS["dms · fetch-hx skills"]
TUI["tui · curses 即時客戶端"]
SEND["send.mjs · 雲端發訊"]
LOGS["logs.mjs · 讀取 API"]
REFRESH["cookie 更新<br/>Patchright + OCR"]
end
subgraph CLOUD["雲端封存 · worker/ (Cloudflare Worker)"]
DO["Durable Object<br/>持有 cookie + WS · 自我修復<br/>正規化 · 解析名稱 · 附件"]
end
TURSO[("Turso · SQLite<br/>誰 / 何時 / 何處 / 什麼")]
R2[("R2 · 附件")]
GHA["GitHub Actions cron<br/>每 12h 更新 cookie"]
SKILLS <-->|"REST · session cookies"| TP
TUI <-->|"WebSocket + REST"| TP
DO <-->|"WebSocket + REST · session cookies"| TP
DO --> TURSO
DO --> R2
SEND -->|"經 worker 發送"| DO
LOGS -->|"GET /v1/logs"| DO
GHA -->|"簽章上傳新 cookie"| DO
兩半各自獨立 — 可以只跑其中一個,也可以都跑。雲端封存部署後不需要任何本機程序;唯一的例行工作是重新上傳新的 cookies(TSSID 約一天過期),由 GitHub Actions cron 代勞。
已退役: 早期有一個 TeamPlus → Telegram 橋接 daemon(
channel/,Bun 行程,把訊息鏡射到 Telegram bot 並代擬回覆)。它已被退役,程式碼保留在archive/telegram-bridge/供參考,現行架構不依賴它。
- 🗄️ 雲端訊息封存 — Durable Object 持有 TeamPlus WebSocket,把每則訊息寫入 Turso
- 🏷️ 名稱解析 — 數字 ID 透過 TeamPlus REST API 解析為真實姓名(session 內快取)
- 🖼️ 附件封存 — 圖片與檔案下載後存入 R2;flex 卡片保留為 JSON
- 🔗 限時檢視連結 — 帶簽章、可在瀏覽器開啟的附件網址,一週內強制過期
- 🔑 讀取 API —
GET /v1/logs以 JSON 回傳近期訊息(預設 24h,最長 7 天),另有logs.mjsCLI - ✉️ 隨處發訊 —
./scripts/send.mjs透過 worker 發送 TeamPlus DM/群組訊息,不需本機 daemon - 🤖 Claude Code skills —
dms做收件匣分流(讀、擬、發、忽略清單);fetch-hx用名字直接跳到某人/某群的近期對話 - 🖥️ 即時終端機客戶端 —
make tui:瀏覽對話、看回覆即時到達、直接回覆 - ♻️ 自我修復 — Durable Object 斷線自動重連,另有 cron keepalive 保底
- ☁️ 不需要筆電 — cookie 更新交給 GitHub Actions cron
| 頁面 | 內容 |
|---|---|
| [[簡介 | Introduction]] |
| [[快速開始 | Getting-Started]] |
| [[名詞解釋 | Glossary]] |
| 頁面 | 內容 |
|---|---|
| [[雲端封存 Worker | Cloud-Archive-Worker]] |
| [[資料模型 | Data-Model]] |
| [[讀取 API | Read-API]] |
| 頁面 | 內容 |
|---|---|
| [[CLI Skills | CLI-Skills]] |
| [[發送訊息 | Sending-Messages]] |
| [[即時 TUI 客戶端 | Live-TUI-Client]] |
| 頁面 | 內容 |
|---|---|
| [[維運指南 | Maintenance]] |
| [[Cookie 與認證 | Cookies-and-Auth]] |
| [[GitHub Actions 自動更新 Cookie | Cookie-Refresh-with-GitHub-Actions]] |
| [[安全性與密鑰 | Security-and-Secrets]] |
| [[常見問題 | FAQ]] |
| 頁面 | 內容 |
|---|---|
| [[發展藍圖 | Roadmap]] |
| [[計畫與技術債 | Plan-and-Tech-Debt]] |
| [[架構觀 | Head-First-Software-Architecture]] |
| [[架構觀・進階篇 | Head-First-Software-Architecture-II]] |
team-plus-server
入門與概念
雲端封存(worker)
讀與回(CLI / TUI)
維運與治理
觀點與規劃
外部連結