Об этом проекте
WindsurfAPI — это самостоятельно размещаемый обратный прокси-сервис, преобразующий более 100 AI-моделей облачной платформы Windsurf (ранее Codeium, ныне Devin Desktop) в несколько наборов стандартных 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=`
## Принцип работы
Сервис транслирует запросы различных протоколов во внутренний gRPC-протокол Windsurf, передавая их в облако Windsurf через локальный бинарник Language Server; также возможен прямой доступ к облаку Devin через путь `DEVIN_CONNECT`. Встроен пул аккаунтов с циклическим перебором, изоляцией ограничений скорости, отказоустойчивостью и размыканием цепи; перед возвратом удаляется информация об идентичности вышестоящего Windsurf.
## Развёртывание и использование
Предоставляются `setup.sh` для развёртывания одной командой, развёртывание через Docker Compose и скрипт обновления `update.sh`. Сначала необходимо добавить аккаунт Windsurf: можно войти через Google/GitHub OAuth в панели управления, по email и паролю, либо массово импортировать токены, полученные через `windsurf.com/show-auth-token`, с помощью интерфейса `/auth/login`.
Панель управления (`/dashboard`) предоставляет обзор, вход и получение аккаунтов, управление аккаунтами, чёрные и белые списки моделей, настройку прокси, журналы в реальном времени, панели статистического анализа и другое.
## Ключевые моменты конфигурации
Переменные окружения переопределяют порт, API-ключ, модель по умолчанию, максимальное количество токенов, уровень логирования, путь к бинарнику 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; в README также приведено личное заявление автора о коммерческом использовании.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.