How dwgx/windsurfapi works
WindsurfAPI is a Node.js gateway that converts OpenAI, Anthropic, and Gemini requests into Windsurf Cascade or Devin requests, then returns compatible responses. The principal flow is client request → HTTP routing and protocol handler → backend selection → upstream execution → response conversion. Account onboarding and pooling, conversation continuity, response storage, and the dashboard are supporting product areas. The README documents major capabilities; sampled excerpts do not expose every handler’s internal calls, so uncertain wiring is omitted.
Main entry points: server.js HTTP Server · chat.js Chat Handler · backend-router.js Backend Router · api.js Dashboard API
Components 26
API Gateway
- HTTP Server
src/server.js - Chat Handler
src/handlers/chat.js - Messages Handler
src/handlers/messages.js - Responses Handler
src/handlers/responses.js - Completions Handler
src/handlers/completions.js - Gemini Handler
src/handlers/gemini.js - Model Catalog
src/models.js - Tool Emulation
src/handlers/tool-emulation.js - Response Store
src/response-store.js
Model Backends
- Backend Router
src/backend-router.js - Cascade Client
src/client.js - gRPC Transport
src/grpc.js - Devin Connect
src/devin-connect.js - Special Agent
src/special-agent.js
Accounts And Sessions
- Account Authentication
src/auth.js - Account Pool
src/conversation-pool.js - Sticky Sessions
src/account/sticky-session.js
Operations Dashboard
- Dashboard API
src/dashboard/api.js - Account Import
src/dashboard/import-parser.js - OAuth Sessions
src/dashboard/oauth-sessions.js
Other components
- OpenAI Clients
- Anthropic Clients
- Gemini Clients
- Language Server
- Devin Cloud
- Dashboard Operator
Connections 25
- OpenAI Clients → HTTP Server: HTTP requests
- Anthropic Clients → HTTP Server: HTTP requests
- Gemini Clients → HTTP Server: HTTP requests
- HTTP Server → Chat Handler: dispatches
- HTTP Server → Messages Handler: dispatches
- HTTP Server → Responses Handler: dispatches
- HTTP Server → Completions Handler: dispatches
- HTTP Server → Gemini Handler: dispatches
- HTTP Server → Account Authentication: onboards accounts
- Chat Handler → Backend Router: selects backend
- Chat Handler → Model Catalog: resolves model
- Chat Handler → Tool Emulation: emulates tools
- Responses Handler → Response Store: stores responses
- Backend Router → Cascade Client: routes Cascade
- Backend Router → Devin Connect: routes direct
- Backend Router → Special Agent: routes agent
- Cascade Client → gRPC Transport: sends gRPC
- gRPC Transport → Language Server: local RPC
- Devin Connect → Devin Cloud: HTTPS requests
- Account Authentication → Account Pool: provides accounts
- Account Pool → Sticky Sessions: binds conversations
- Dashboard Operator → Dashboard API: manages accounts
- Dashboard API → Account Import: parses imports
- Dashboard API → OAuth Sessions: manages login
- Dashboard API → Account Authentication: adds accounts