模型 / 資料集
dwgx/WindsurfAPI avatar
dwgx/WindsurfAPI

WindsurfAPI:把 Windsurf 訂閱變成三套 API 的逆向代理,值得動手前先看這五件事

Turn Windsurf / Devin Desktop's 100+ AI models (Claude, GPT, Gemini, DeepSeek, Kimi, GLM, SWE) into OpenAI-, Anthropic- & Gemini-compatible APIs. Zero-dependency self-hosted reverse proxy for Claude Code, Cline & Cursor. 把 Windsurf/Devin 云端 100+ 模型变成三套兼容 API。

3,007 個 Star627 個 ForkJavaScriptMIT

秒懂

它是什麼?
WindsurfAPI 是一個零 npm 依賴的 Node.js 反向代理,將 Windsurf/Devin 桌面的 100 多個模型轉成 OpenAI、Anthropic 與 Gemini 相容介面。本文從架構、安裝、限制到授權爭議,幫你判斷這條路是否走得通。
適合誰用?
WindsurfAPI 適合已經擁有 Windsurf 或 Devin 訂閱、想在同一帳號下串接 Claude Code、Cline 或 Cursor 的個人開發者。不適合需要穩定 SLA、正式商業服務或無法接受逆向依賴的人。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 1 天前。
用什麼語言寫的?
主要是 JavaScript(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

一個把訂閱帳號變成 API 閘道的逆向專案

WindsurfAPI 解決的問題很具體:你已經付費訂閱 Windsurf(原 Codeium,現 Devin Desktop),但想用 Claude Code、Cline 或 Cursor 這些工具時,它們預設只認 OpenAI、Anthropic 或 Gemini 的官方 API。WindsurfAPI 在中間架一層 HTTP 服務,把三種標準協定翻譯成 Windsurf 內部的 gRPC 請求,再透過本機的 Language Server 轉送給 Windsurf 雲端。它同時暴露五組端點:OpenAI 的 chat/completions 與舊版 completions、OpenAI Responses、Anthropic 的 messages,以及 Gemini 的 v1beta/models。這個專案鎖定的對象是已經有 Windsurf 訂閱、想避免重複付費給多家模型供應商的開發者。它不是一個模型聚合服務,而是把單一訂閱帳號的模型目錄變成統一介面的隧道。

協定翻譯層與帳號池:架構上的三個關鍵機制

從 README 的 mermaid 圖與文字說明可以看出,WindsurfAPI 的核心不是簡單的 HTTP 轉發,而是三層分工。第一層是協定翻譯層,負責把 OpenAI 的 JSON 結構轉成 Anthropic 的 messages 格式,再轉成 Windsurf 的 Cascade 請求。第二層是帳號池,它做輪詢、限流隔離、故障轉移與熔斷。意思是當你有多個 Windsurf 帳號時,請求會輪流分配,單一帳號被限流時不會拖垮整個服務。第三層是身份中和,回應傳回客戶端前會剝掉上游 Windsurf 的痕跡,讓模型自稱是 Claude Opus 4.6 或 GPT 5。這個設計有個值得注意的後果:模型名稱只是字串,實際能力取決於 Windsurf 雲端後端怎麼路由。文件沒有揭露每個模型名稱對應的真實參數或版本,所以你不能假設名稱等於品質。

五分鐘跑起來:實際安裝與用戶端設定

README 標榜五分鐘可以跑起來,但沒有列出完整的安裝指令。它只說服務跑在 3003 埠,並提供三個用戶端的連線方向。Claude Code、Cline 與 Cursor 是透過 POST /v1/messages 這個 Anthropic 相容端點接入,所以你需要在這些工具中把 API base URL 改成 http://localhost:3003,並使用 Anthropic 的認證格式。OpenAI SDK 用戶則直接打 /v1/chat/completions,Gemini SDK 用戶打 /v1beta/models/*。環境變數的細節放在 docs/ENV-SWITCHES.md,README 沒有一一列出。實際啟動方式可能需要從原始碼安裝或下載 release,這點文件沒有明說。如果你打算部署,要先確認 Node.js 版本相容性,因為專案宣稱零 npm 依賴,這表示它不靠套件管理,而是直接使用 Node 內建模組。

真正的限制:逆向依賴與身份偽裝的風險

WindsurfAPI 的最大限制在於它依賴 Windsurf 的內部 gRPC 協定與 Language Server 二進位檔。這個二進位檔是 Windsurf 產品的一部分,不是公開 API。只要 Windsurf 更新用戶端或雲端協定,這個代理就可能失效。README 的版本歷史顯示 v3.9.31 在 2026 年 9 月 4 日釋出,v3.9.30 在同一天稍早釋出,這種短時間內連續出兩個版本的模式,暗示上游變動頻繁,維護者需要快速追趕。另一個限制是身份中和:回應會謊稱模型是 Anthropic 或 OpenAI 開發的。這對自動化測試或需要稽核模型來源的團隊是嚴重問題。最後,非串流的 /v1/completions 端點只支援 prompt 包成單一 user turn,不支援真正的舊版補全語意。文件也警告這個端點非串流。

授權聲明與商業使用的模糊地帶

程式碼本體以 MIT License 開源,但 README 開頭有一段作者個人聲明:沒點 Star 和 Follow 的人嚴禁商業使用、轉售、代部署、掛後台對外服務或包裝成轉售。有點的人作者說睜一隻眼閉一隻眼。這不是法律條款,而是作者態度。實際的法律效力取決於 MIT 條款本身,但作為採用者,你必須意識到社群與上游對這種逆向專案的觀感。如果你打算把 WindsurfAPI 當作商業服務的後端,即使 MIT 允許,作者聲明與 Windsurf 的服務條款都可能構成風險。文件沒有提供 Windsurf 官方對這種代理的立場,所以這部分需要你自己查證。

替代方案:官方 API 與 BYOK 閘道的本質差異

最直接的替代方案是直接使用 Anthropic、OpenAI 或 Google 的官方 API。差異在於計費模式:官方 API 按 token 計費,WindsurfAPI 是把你既有的訂閱月費變成無限額度(實際受速率限制)。如果你用量極大,訂閱制可能划算;如果用量小,官方 API 更簡單且沒有逆向風險。另一類替代是支援 BYOK(Bring Your Own Key)的開源閘道,例如 LiteLLM,它統一多個供應商的 API,但需要你自備各家金鑰。WindsurfAPI 不需要你另外拿金鑰,因為它直接吃 Windsurf 帳號的登入狀態。這個差異很關鍵:BYOK 閘道是正式整合,WindsurfAPI 是逆向工程。穩定性與合規性上,前者佔優;成本與模型多樣性上,後者可能更有吸引力。

維護成本與版本節奏:從提交歷史看專案健康度

README 提到一個歷史帳本,把 1311 次提交、191 個版本、72 個 PR、179 個 issue 攤開,並提供視覺化頁面。這個數字本身不證明品質,但版本號 v3.9.31 與頻繁的釋出日期(8 月 28 日、9 月 4 日兩次)顯示維護者仍在積極追趕上游變動。對採用者來說,這意味著升級成本不會是零。你必須定期更新這個代理,否則 Windsurf 雲端一旦改協定,你的 Claude Code 就會斷線。專案宣稱零 npm 依賴,這降低了供應鏈攻擊的風險,但也表示所有協定解析邏輯都自己寫,程式碼體積與潛在 bug 可能較高。建議在部署前先看 docs 目錄下的 ENV-SWITCHES.md,確認哪些環境變數控制限流與故障轉移行為,因為這會直接影響你帳號池的設定。

編輯結論

WindsurfAPI 適合已經擁有 Windsurf 或 Devin 訂閱、想在同一帳號下串接 Claude Code、Cline 或 Cursor 的個人開發者。不適合需要穩定 SLA、正式商業服務或無法接受逆向依賴的人。採用前必須先讀 README 頂部的授權聲明,確認自己是否已對專案點 Star 與 Follow,並理解程式本體雖為 MIT,但作者個人態度可能影響你轉售或代部署的權利。接著要驗證的是:你的 Windsurf 帳號是否具備足夠的速率額度,因為帳號池輪詢與限流隔離只能分散流量,不能憑空增加上游配額。最後,確認你的用戶端工具能接受模型自稱是 Claude 或 GPT,但實際回應來自 Windsurf 雲端的事實。若你無法接受這種身份偽裝或依賴逆向協定的脆弱性,應直接改用官方 API 或支援 BYOK 的開源閘道。

官方來源

  1. dwgx/WindsurfAPI on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
社群筆記

社群筆記