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。
秒懂
- 它是什么?
- WindsurfAPI 是一个零 npm 依赖的 Node.js 反向代理,把 Windsurf/Devin 的 100 多个模型转成 OpenAI、Anthropic、Gemini 三套接口。本文拆解它的协议翻译机制、部署方式、授权限制和适用边界。
- 适合谁用?
- WindsurfAPI 适合已经持有 Windsurf 订阅、想省去多平台 API 费用的个人开发者,尤其是同时使用 Claude Code、Cline 和 Cursor 的人。不适合需要稳定 SLA 的团队,也不适合任何想把它包装成商业中转服务的场景。
- 能商用吗?
- 可以。MIT 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
- 还在维护吗?
- 在维护。仓库在最近一天内有新的提交。
- 用什么语言写的?
- 主要是 JavaScript(依据 GitHub 的语言统计)。
以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。
开源项目深度解析
它解决的是账号资源复用,不是模型本身
它解决的是账号资源复用,不是模型本身。你有一个 Windsurf 订阅,账号里能用 Claude、GPT、Gemini、DeepSeek 等 100 多个模型,但这些模型只藏在 Windsurf 的客户端里,不能直接给 Claude Code、Cline 或 Cursor 用。这个项目在本地起一个 HTTP 服务,端口 3003,把 Windsurf 的云端能力翻译成 OpenAI、Anthropic、Gemini 三套标准 API。也就是说,你不用为每个工具单独买 API key,而是用一个 Windsurf 账号顶替多个付费 API。目标用户是已经有 Windsurf 订阅、又不想重复付费的开发者,或者想在一个地方管理多种模型的人。注意,它不提供模型本身,模型仍由 Windsurf 云端执行。
协议翻译层和账号池是核心机制
从 README 的架构图看,WindsurfAPI 内部有三层。第一层是协议翻译层,接收客户端的 OpenAI 格式请求(比如 POST /v1/chat/completions),把它转成 Anthropic 格式,再转成 Windsurf 内部的 gRPC 请求。第二层是账号池,负责轮询、限流隔离、故障转移和熔断。第三层是身份中和,返回给客户端前把上游 Windsurf 的身份信息剥掉,让模型自称是 Anthropic 开发的 Claude。这个设计有一个关键点:请求不是直接发到 Windsurf 云,而是先发给本地的 Language Server,也就是 Windsurf 的二进制程序,再由它通过 HTTPS 与 Windsurf 云通信。这意味着你的机器上必须运行 Windsurf 的 Language Server,而且它可能依赖 Windsurf 的登录状态。文档里提到 gRPC 是主要通道,也有一条可选的 HTTPS 直连路径通向 Devin 云,但细节没有展开。
三套 API 的覆盖范围和流式限制
这个项目同时暴露多条路由。OpenAI 兼容的有 /v1/chat/completions 和 /v1/completions,后者只支持非流式,prompt 会被包成一条 user turn,流式请求必须走 chat 接口。还有 /v1/responses 的 OpenAI Responses 兼容接口,支持 GET 和 DELETE 来读取或删除已存响应,但需要带身份 header。Anthropic 兼容的是 POST /v1/messages,Claude Code、Cline、Cursor 可以直接连。Gemini 兼容的是 /v1beta/models/*,可以直接对接 Gemini SDK。这个覆盖范围看起来完整,但有一个明显的不对称:旧版 Completions 不支持流式,而现代工具(比如 Cursor)通常依赖流式输出。如果你用的是只支持旧版 Completions 的老客户端,体验会打折扣。README 明确说流式请走 chat,这算是一个功能边界。
五分钟跑起来:部署方式
README 没有给出完整的安装命令,只提到端口 3003 和零 npm 依赖。根据仓库描述,这是一个纯 Node.js 项目,不需要 npm install 额外的运行时包。快速开始章节的标题是「5 分钟跑起来」,但正文被截断了,我只能确认它需要一个 HTTP 服务监听 3003,以及可能的环境开关配置,详细内容在 docs/ENV-SWITCHES.md 里。文档主页在 https://dwgx.github.io/WindsurfAPI/,有完整的部署说明。我无法从现有材料确认具体的启动命令,比如 node server.js 还是 node index.js,你需要去文档页查。部署前要确认你的 Windsurf 账号已经登录,因为 Language Server 需要有效的会话才能访问云端。
授权声明比代码许可证更严格
这个项目的授权情况很特殊。代码本体按 MIT License 开源,但 README 顶部有一段作者的个人声明,用加粗文字写着:没点 Star 和 Follow 的,严禁商业使用、转售、代部署、挂后台对外提供服务、包装成中转服务出售。点了 Star 和 Follow 的,随便用,作者睁一只眼闭一只眼。这段声明不是许可证,没有法律效力,但它表达了作者的明确态度。如果你打算把 WindsurfAPI 部署成公共服务或者卖给客户,即使代码是 MIT,作者也会反对。更现实的风险是 Windsurf 的服务条款,因为项目本质上是逆向 Windsurf 的 gRPC 协议,这很可能违反 Windsurf 的用户协议。一旦 Windsurf 封禁账号或者修改协议,这个项目就会失效。你需要在法律和平台风险上自己判断。
适合个人,不适合团队,维护成本由上游决定
这个项目适合个人开发者,尤其是想省掉多个 AI API 订阅费的人。但团队使用要谨慎。账号池轮询意味着多个请求共享一个或几个 Windsurf 账号,如果并发高,触发限流或封禁的风险会上升。虽然项目内置了限流隔离和故障转移,但那是为了应对上游波动,不是保证吞吐量。维护成本也不低。项目更新频繁,最近一个月内有多个版本,v3.9.31 发布于 2026 年 9 月 4 日,v3.9.30 在同一天,v3.9.29 在 8 月 28 日。这说明作者在持续修复问题,但你也得跟着升级,否则可能遇到兼容性 bug。由于零 npm 依赖,升级过程相对简单,但每次 Windsurf 云端改动协议,你都得等作者发新版。如果作者停止维护,这个项目很快就会失效。
替代方案是直接用各家官方 API
如果你不想承担逆向协议的风险,最直接的替代方案是使用 Anthropic、OpenAI 或 Google 的官方 API。官方 API 有 SLA、文档完善、不会因为账号共享被封,但你需要为每个模型单独付费。另一个思路是使用 LiteLLM 这类开源代理,它把多个官方 API 统一成 OpenAI 格式,但 LiteLLM 不涉及逆向,只是转发官方请求,所以没有账号池和身份中和的需求。WindsurfAPI 的独特之处在于它把订阅制账号变成按需 API,这在成本上有吸引力,但代价是依赖一个非官方的、可能随时失效的通道。如果你的需求是稳定可靠,官方 API 是更安全的选择;如果你只想在个人项目里省点钱,WindsurfAPI 值得试试,但别把它放在生产环境的关键路径上。
编辑结论
WindsurfAPI 适合已经持有 Windsurf 订阅、想省去多平台 API 费用的个人开发者,尤其是同时使用 Claude Code、Cline 和 Cursor 的人。不适合需要稳定 SLA 的团队,也不适合任何想把它包装成商业中转服务的场景。部署前先读 LICENSE 和 README 顶部的作者声明,确认自己是否接受 Star/Follow 作为非商业使用的前提。还要验证 Windsurf 服务条款是否允许账号池轮询和协议逆向,这决定项目能否长期运行。最后,检查 v3.9.31 的 release notes,确认最新版本修复了哪些问题,再决定是否跟进。
社区笔记