WindsurfAPI:把 Windsurf 的模型翻译成标准 API
WindsurfAPI 是个自托管 proxy,把 Windsurf/Devin 桌面端里那 100 多个模型掏出来,走标准 API 格式对外暴露。Claude、GPT、Gemini、DeepSeek、Kimi、GLM 都在里面,原本只能在它自家 IDE 用,现在四个口同时开:
POST /v1/chat/completions OpenAI 兼容
POST /v1/responses OpenAI Responses 兼容
POST /v1/messages Anthropic 兼容(Claude Code / Cline / Cursor)
POST /v1beta/models/* Gemini 兼容
转发链路是这样:服务在 3003 收 OpenAI/Anthropic 请求,打包成 Cascade 请求,再经本地一个 Language Server 二进制用 gRPC 打到 server.self-serve.windsurf.com。proxy 只中转 tool_use / tool_result,真正动文件的是本地 IDE agent,不在模型也不在 proxy 里。
技术栈纯 Node.js,零 npm 运行时依赖,只用 node:* 内置模块。protobuf 手写在 src/proto.js,图像编解码 vendor 进 src/vendor/,部署不用管依赖链。
工程上几个点。号池自动轮换,做限流隔离和故障转移。LS 池每个 proxy 一个独立实例不共享,按内存自动扩缩,最多 20 个,空闲了走 TTL 回收。NO_TOOL 模式用 planner_mode=3 关掉 Cascade 自带的 tool loop 防路径泄露,工具结果、<tool_call> 文本、输出路径三层清洗。
坑也说清楚。免费号大多只能跑开源模型,gemini-2.5-flash、GLM、Kimi、Qwen 这些能用,Claude 和 GPT 全家桶得 Pro。工具调用稳不稳看模型,Claude 家最稳。长流上游 236-243 秒直接切,本地调 timeout 没用,这是上游卡的。代码 MIT。