← all repositories
dwgx/WindsurfAPI

Reverse-engineering Windsurf into a universal LLM pipe

A zero-dependency Node.js proxy that turns Windsurf's internal gRPC API into standard OpenAI and Anthropic endpoints, complete with account pooling and rate-limit isolation.

2.8k stars JavaScript Coding AssistantsInference · Serving
WindsurfAPI
Velocity · 7d
+46
★ / day
Trend
steady
star history

What it does

WindsurfAPI sits between your favorite AI client and Windsurf’s cloud backend. It exposes two familiar HTTP interfaces—/v1/chat/completions (OpenAI) and /v1/messages (Anthropic)—then translates requests into Windsurf’s internal gRPC protocol via a local Language Server binary. The response gets sanitized on the way back: the model claims to be “Claude Opus 4.6 by Anthropic” rather than whatever Windsurf wants to call it.

The interesting bit

The project is essentially protocol laundering. Windsurf’s desktop app already contains a Language Server that speaks gRPC to their cloud; this proxy hijacks that same binary to tunnel requests from standard SDKs. It also maintains a pool of Windsurf accounts with automatic rotation, rate-limit isolation, and failover—turning a single-user IDE backend into a load-balanced API gateway. The author notes you may need to extract a newer Language Server from the actual Windsurf desktop app to see bleeding-edge models like Claude Opus 4.7, since public releases lag behind.

Key highlights

  • Zero npm dependencies; pure Node.js runtime
  • Dual-protocol output: OpenAI SDKs and Claude Code / Cline / Cursor connect without modification
  • Account pooling with round-robin, per-account rate limits, and automatic failover
  • Dashboard UI for OAuth login, token management, and account registration
  • Docker and PM2 deployment paths with one-line update scripts
  • Cursor-specific alias table to bypass client-side model name whitelisting

Caveats

  • Requires a valid Windsurf account (or multiple) to function; it’s not a free API
  • Newer models may need manually extracting the Language Server binary from the Windsurf desktop application
  • The author’s licensing preamble is performative: MIT license technically applies, but the README demands GitHub stars and follows for “permission” to resell or deploy commercially

Verdict

Worth a look if you’re already paying for Windsurf and want to pipe its model access into Claude Code, Cursor, or custom OpenAI-compatible tooling. Skip it if you need a stable, vendor-supported API with clear terms—this is reverse-engineered infrastructure that could break with any Windsurf backend update.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.