इस प्रोजेक्ट के बारे में

WindsurfAPI एक सेल्फ-होस्टेड रिवर्स प्रॉक्सी सेवा है जो Windsurf (पूर्व में Codeium, अब Devin Desktop) क्लाउड के 100+ AI मॉडल को कई मानक API इंटरफ़ेस में बदलती है। प्रोजेक्ट शुद्ध Node.js में लागू है, शून्य npm रनटाइम निर्भरता का दावा करता है, और डिफ़ॉल्ट रूप से पोर्ट 3003 पर सुनता है। ## प्रदान किए गए इंटरफ़ेस - `POST /v1/chat/completions`: OpenAI Chat संगत, सीधे OpenAI SDK से उपयोग करें - `POST /v1/completions`: OpenAI पुराना Completions (नॉन-स्ट्रीमिंग) - `POST /v1/responses`: OpenAI Responses संगत, साथ ही `GET`/`DELETE /v1/responses/{id}` से संग्रहीत प्रतिक्रिया पढ़ें और हटाएँ, `previous_response_id` से संदर्भ जारी रखें - `POST /v1/messages`: Anthropic संगत, Claude Code, Cline, Cursor जैसे क्लाइंट के लिए - `POST /v1beta/models/*`: Gemini संगत, `x-goog-api-key` हेडर और `?key=` क्वेरी पैरामीटर समर्थित ## कार्य सिद्धांत सेवा विभिन्न प्रोटोकॉल के अनुरोधों को Windsurf के आंतरिक gRPC प्रोटोकॉल में अनुवादित करती है, स्थानीय Language Server बाइनरी के माध्यम से Windsurf क्लाउड तक अग्रेषित करती है; `DEVIN_CONNECT` पथ से सीधे Devin क्लाउड से भी जुड़ सकती है। अंतर्निहित अकाउंट पूल राउंड-रॉबिन, दर सीमा पृथक्करण, फेलओवर और सर्किट ब्रेकिंग प्रदान करता है; लौटाने से पहले अपस्ट्रीम Windsurf पहचान जानकारी हटा दी जाती है। ## तैनाती और उपयोग `setup.sh` एक-क्लिक तैनाती, Docker Compose तैनाती और `update.sh` अपडेट स्क्रिप्ट प्रदान करता है। पहले Windsurf अकाउंट जोड़ना आवश्यक है: Dashboard के Google/GitHub OAuth लॉगिन, ईमेल-पासवर्ड लॉगिन, या `windsurf.com/show-auth-token` से प्राप्त Token को `/auth/login` इंटरफ़ेस से बैच आयात करें। Dashboard (`/dashboard`) अवलोकन, लॉगिन/अकाउंट जोड़ना, अकाउंट प्रबंधन, मॉडल ब्लैक/व्हाइटलिस्ट, प्रॉक्सी कॉन्फ़िगरेशन, रीयल-टाइम लॉग, सांख्यिकी विश्लेषण आदि पैनल प्रदान करता है। ## कॉन्फ़िगरेशन मुख्य बिंदु पर्यावरण चर पोर्ट, API कुंजी, डिफ़ॉल्ट मॉडल, अधिकतम token, लॉग स्तर, LS बाइनरी पथ और डेटा निर्देशिका, LS इंस्टेंस पूल और मेमोरी गार्डरेल, प्रतिक्रिया भंडारण (TTL, संख्या, बाइट बजट), स्टिकी सेशन, प्रॉक्सी होस्ट व्हाइटलिस्ट आदि को ओवरराइड करते हैं। खाली `API_KEY` और खाली `DASHBOARD_PASSWORD` डिफ़ॉल्ट रूप से fail-closed (401 लौटाते हैं), स्थानीय खुला उपयोग स्पष्ट रूप से संबंधित स्विच सेट करने पर ही संभव है। ## मॉडल और क्लाइंट स्थिर मॉडल सूची Claude, GPT, Gemini, Grok, Qwen, Kimi, GLM, MiniMax, SWE, Arena आदि श्रृंखलाओं को कवर करती है, और स्टार्टअप पर क्लाउड से गतिशील रूप से भेजी गई मॉडल सूची को मर्ज करती है। दस्तावेज़ बताते हैं कि मॉडल स्वयं फ़ाइल संचालन नहीं करते, फ़ाइल पढ़ना/लिखना Claude Code, Cline जैसे क्लाइंट स्थानीय रूप से करते हैं, गेटवे केवल tool_use/tool_result पास करता है। Cursor क्लाइंट द्वारा `claude` युक्त मॉडल नामों की व्हाइटलिस्ट रोक के लिए, README में उपनाम मैपिंग तालिका प्रदान की गई है। प्रोजेक्ट MIT License के तहत ओपन सोर्स है, README में लेखक का व्यावसायिक उपयोग पर व्यक्तिगत वक्तव्य भी संलग्न है।