v2.0 — Devin 云端直连 · 零二进位 · 四协议

Devin 雲端的 AI 模型
變成你熟悉的 API

WindsurfAPI 長成了 DevinAPI:同一个服务同时说 /v1/chat/completions/v1/responses/v1/messages 与 Gemini 四套协议,直連 Devin 雲端的百餘個模型。Claude Code、Cursor、Cline 直接連。零 npm 依賴,預設路徑無需任何二進位。

零 npm 依賴 Node.js ≥ 20 MIT License Docker 就緒
0
AI 模型
9
供應商
3
相容協定
0
npm 依賴
协议 · Protocols

一个服务,四套 API 面

OpenAI Chat Completions、OpenAI Responses、Anthropic Messages、Google Gemini —— 四套主流协议同时暴露,指向同一个 DevinAPI 实例即可。全部汇进同一个 chat 处理器、同一个账号池,再送往 Devin 云端。

OpenAI 相容

POST /v1/chat/completions
$ curl http://localhost:3003/v1/chat/completions \
  -H "Authorization: Bearer sk-dv-demo" \
  -d '{
    "model": "gpt-5.2",
    "messages": [
      {"role":"user","content":"hello"}
    ],
    "stream": true
  }'
# → Server-Sent Events (OpenAI chunk 格式)

Anthropic 相容

POST /v1/messages
$ curl http://localhost:3003/v1/messages \
  -H "x-api-key: sk-dv-demo" \
  -d '{
    "model": "claude-opus-4.6",
    "messages": [
      {"role":"user","content":"hello"}
    ],
    "stream": true
  }'
# → SSE (Anthropic message_delta 格式)

OpenAI Responses

POST /v1/responses
$ curl http://localhost:3003/v1/responses \
  -H "Authorization: Bearer sk-dv-demo" \
  -d '{
    "model": "gpt-5.5",
    "input": "hello",
    "stream": true
  }'
# → SSE (response.output_text.delta 事件)

Google Gemini

POST …:generateContent
$ curl http://localhost:3003/v1beta/models/gemini-3.0-pro:streamGenerateContent \
  -H "x-goog-api-key: sk-dv-demo" \
  -d '{
    "contents": [{"parts":[{"text":"hello"}]}]
  }'
# → SSE (Gemini streamGenerateContent 格式)
同一个请求体、同一个账号池、同一个速率限制器——切换协议只是换路由前缀。Claude Code / Cline 走 /v1/messages,Cursor / OpenAI SDK 走 /v1/chat/completions,Codex / Agents SDK 走 /v1/responses,Gemini 客户端走 generateContent / streamGenerateContent,互不干扰。另有 /v1/models 目录与 /v1/messages/count_tokens
模型 · Models

一個端點,145 個模型

橫跨 9 家供應商的 145 個現役模型,一致計費、即時切換,不必為每家重接一次 API。最新上線 Claude Opus 4.8(low→max 與 fast 全通道)、GPT-5.5 全系Gemini 3.1 Pro;另有 9 個免費模型與 14 個思考型變體。清單由 src/models.js 權威生成、後端雲端目錄自動發現。

免費帳號:可用模型依帳號 tier 而定,免費層通常僅開放輕量模型;Claude、GPT-5 全系等需要對應的 Devin 付費 tier,後台會自動偵測並標記。
看不到最新模型?Devin 雲端路徑(DEVIN_CONNECT=1)透過 GetChatMessage 自動發現雲端目錄,/v1/models 即時反映,無需拷貝任何二進位。
模型清單怎麼更新?本頁清單由 scripts/gen-docs-models.jssrc/models.js 自動生成。
架構 · Architecture

一层翻译,直连云端

請求從客戶端出發,經過協定翻譯、帳號池選號、工具仿真、路徑淨化,再以手寫 Protobuf 透過 Connect-RPC 直送 Devin 雲端的 GetChatMessage——預設路徑不需要任何二進位。回應原路返回,流式解析後交付。傳統的 Windsurf 語言伺服器(本地 gRPC)仍保留為第二條傳輸鏈。

Client
IDE / CLI
Claude Code · Cursor
Cline · OpenAI SDK
HTTP · SSE
Node.js Proxy
DevinAPI
協定翻譯 · 帳號池輪詢
工具仿真 · 上下文複用
速率限制 · 故障轉移
Connect-RPC · HTTP
Connect-RPC · 帳號池
Devin Connect
手寫 Protobuf 編解碼
語言伺服器為選用第二鏈
TLS · HTTPS
Upstream
Devin Cloud
GetChatMessage 推理引擎
100+ 模型
四协议翻译
Chat · Responses · Messages · Gemini
多帳號池
輪詢 · 故障轉移 · 自動封禁偵測
工具仿真
Prompt 注入 · 三格式解析
上下文複用
Fingerprint 池 · Devin 會話快取
安全淨化
路徑剝離 · SSRF 防護 · Proto 截斷檢測
SOCKS5 · Docker
每帳號獨立代理 · 容器化部署
請求流 · 回應流
工程內幕 · Under the Hood

從 Windsurf 代理到 Devin 雲端,底層做了什麼

遷移不只是換個上游位址。為了純 HTTP 直連 Devin 雲端,我們手寫了整條協定棧——沒有 protobuf 執行庫,沒有 npm 依賴。

1

手寫 Protobuf 編解碼

零依賴、免 schema 的 wire-format codec,varint 全手寫,透過 Connect-RPC 對話 Devin 雲端。

2

四协议翻译

Chat Completions、Responses、Anthropic Messages、Gemini 四套前端汇进同一个 chat 处理器再扇出。

3

雙傳輸鏈共用底座

Devin 雲端(純 HTTP,新預設)與傳統 Windsurf 語言伺服器(本地 gRPC)共用同一套 proto + connect 底層。

4

精準計費解碼

解析 Devin 免費的 GetUserStatus 帳本,還原真實餘額、計費週期與各模型 credit 費率,零成本查詢。

5

視覺圖像支援

忠實重建圖像 tool_result 的 wire 結構,讓圖片輸入與文字走同一個 protobuf 封包。

6

零依賴影像編解碼

內建 jpeg-js(BSD-3)與自寫的純 Node PNG 解碼器(node:zlib)負責縮圖,不引入原生或 npm 影像庫。

管理後台 · Dashboard

10 個面板,帳號運維全搞定。

訪問 /dashboard,暗色 Web 介面。日誌即時串流、帳號一鍵登入、模型黑白名單、封禁偵測。

1

總覽

運行時間、帳號池狀態、分模型成功率

2

登入取號

Email/密碼直接註冊,自動取得 Token

3

帳號管理

新增、刪除、停用、真實餘額 / credit 查詢

4

模型控制

全域與帳號層的模型白/黑名單

5

代理配置

全域及個別帳號 HTTP/SOCKS5 代理

6

日誌檢視

即時 SSE 串流,級別篩選,關鍵字高亮

7

請求統計

按模型/帳號維度的指標與圖表

8

封禁偵測

錯誤模式偵測,帳號健康自動監控

9

自動更新

一鍵 git pull + PM2 重啟服務

10

致謝

Contributors 列表

部署 · Deploy

從零到跑起來,五分鐘

兩種方式任選。

安裝 Node.js 20+

bash
$ curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
$ apt install -y nodejs

Clone + 直接啟動

bash
$ git clone https://github.com/dwgx/WindsurfAPI.git
$ cd WindsurfAPI
$ cp .env.example .env
$ node src/index.js   # 零依賴,免安裝直接跑

設定 .env

.env
DEVIN_CONNECT=1              # 走 Devin 雲端 GetChatMessage,無需二進位
PORT=3003
API_KEY=                   # 留空 = 不驗證
DEFAULT_MODEL=claude-4.5-sonnet-thinking
DASHBOARD_PASSWORD=         # 留空 = 後台免密碼
帳號池:把 Devin session token 放進 accounts.json 即可,其餘免配置。傳統語言伺服器路徑仍可用,設 LS_BINARY_PATH 即回退到本地 gRPC。

啟動

bash
$ npm install -g pm2
$ pm2 start src/index.js --name devin-api
$ pm2 save && pm2 startup
一鍵更新:bash update.sh

準備配置

bash
$ git clone https://github.com/dwgx/WindsurfAPI.git
$ cd WindsurfAPI
$ cp .env.example .env

啟動容器

bash
$ docker compose up -d --build
$ docker compose logs -f
預設掛載:.docker-data/data 持久化帳號 / 配置。Devin 雲端路徑無需下載任何二進位,設好 accounts.json 即可啟動。

到 Releases 下載

GitHub Releases 下載,兩種任選(都零依賴、免裝 Node、免 clone,exe 內建 Node 執行環境):
· windsurfapi-windows.zip —— 系統匣托盤版(推薦)
· windsurfapi.exe —— 純控制台單檔(約 60 MB)

雙擊啟動

解壓 zip 後雙擊 tray.vbs:無黑窗,右下角系統匣出現圖示;或直接雙擊 windsurfapi.exe:彈出控制台視窗顯示日誌。首次執行自動產生 API_KEYDASHBOARD_PASSWORD(寫入同目錄 .env)並自動開啟後台面板。

右鍵系統匣圖示

托盤圖示右鍵選單一鍵完成日常操作:
打開面板 · 複製面板密碼 · 複製 API Key · 狀態 · 重啟 · 退出
密碼與金鑰直接複製到剪貼簿,不必翻找 .env。服務崩潰會自動重拉,連續異常才停並提示。

預設即最佳配置

.env(自動生成)
DEVIN_CONNECT=1              # Devin 雲端純 HTTP 主路,無需二進位
HOST=127.0.0.1          # 預設僅本機綁定
PORT=3003
API_KEY=sk-windsurf-…    # 首次隨機生成
DASHBOARD_PASSWORD=       # 首次隨機生成
上號:開後台面板貼上 Devin session token 即可,其餘免配置。要對外提供服務時,把 HOST 改成 0.0.0.0 並保留強 API_KEY
客戶端接入 · Integrations

你常用的那個 IDE,已經兼容了

改 BASE_URL,塞 API KEY,完事。

CClaude Code

/v1/messages · Anthropic 協定

export ANTHROPIC_BASE_URL="http://YOUR_IP:3003"
export ANTHROPIC_API_KEY="sk-dv-your-key"
claude

CCursor

/v1/chat/completions · OpenAI 協定

# Settings → Models → Custom OpenAI
Base URL: http://YOUR_IP:3003/v1
API Key:  sk-dv-your-key
Model:    claude-opus-4.6

CCline / Roo Code

AnthropicOpenAI provider 皆可

# Provider: OpenAI Compatible
Base URL: http://YOUR_IP:3003/v1
API Key:  sk-dv-your-key

OOpenAI SDK

/v1/chat/completions

from openai import OpenAI
client = OpenAI(
    base_url="http://YOUR_IP:3003/v1",
    api_key="sk-dv-your-key",
)
常見問題 · FAQ

你可能想問的。

需要 Devin 付費帳號嗎?
免費帳號可以跑,但可用模型依 tier 而定,免費層通常只開放輕量模型。Claude、GPT-5 全系、Gemini 3、GLM、Kimi 等需要對應的 Devin 付費 tier,後台會自動偵測並標記。
可以在 Windows 上跑嗎?
可以,而且最省事——到 Releases 下載 windsurfapi-windows.zip(內建 Node,免安裝、免 clone),解壓後雙擊 tray.vbs 即縮進系統匣,首次自動生成金鑰與後台密碼,右鍵可一鍵複製密碼 / API Key、開面板、重啟;只想要單檔也可下裸 windsurfapi.exe(控制台視窗版)。當然也能照手動 / Docker 方式跑:預設的 Devin 雲端路徑(DEVIN_CONNECT=1)是純 HTTP,不依賴平台專屬二進位,Windows / macOS / Linux 通吃,只有選用的傳統語言伺服器路徑仍限 Linux。
看不到最新模型怎麼辦?
走 Devin 雲端路徑時,/v1/models 透過 GetChatMessage 自動發現雲端目錄,新模型上線即可見,無需拷貝或更新任何二進位;清單看似落後就重啟服務重新拉取。
帳號會被封嗎?
高頻 burst 確實容易被識別。後台的封禁偵測面板會監控錯誤率,按 5 分鐘窗口做速率冷卻。推薦:每帳號 RPM < 10、配不同出口代理(支援 SOCKS5)、混用思考型和普通模型。
和其他類似專案的區別?
三點核心差異:
(1) 四协议——/v1/chat/completions/v1/responses/v1/messages 与 Gemini 端点。
(2) planner_mode=NO_TOOL——關掉 Devin 內建工具循環,消除路徑洩露。
(3) 手寫零依賴協定棧 + 帳號池——純 HTTP 直連 Devin 雲端,多號輪詢 + 故障轉移 + Docker 一鍵部署。
MIT License,可以商用嗎?
代碼本體 MIT License,法律上允許商用。README 顶上有一段作者態度:沒給 Star 和 Follow 的請別商業轉售,點了的隨便用。
致謝 · Credits

這些朋友把這個專案撐起來了。

每一條 PR 都附上 root-cause 分析;每一個 root-cause 都對應半夜在 Issues 區罵 Claude 的瞬間。權重按貢獻次數與精準度排,不是按代碼行數。

正在載入貢獻者名單...

想加入這份名單?到 Issues 提 bug 或到 Pull requests 直接動手都歡迎。