В Cursor можно подключить любую LLM по API, которая совместима с OpenAI форматом запросов. Но если у вас есть подписка Claude или ChatGPT, вы не сможете напрямую их использовать в Cursor. Там формат запросов отличается от того, который используется в API. Вам нужен обходной путь — проксирование запросов.
На GitHub уже есть решения, которые конвертирует формат OpenAI в требуемый формат провайдера и обратно. Но чтобы добавить это в Cursor, недостаточно просто запустить процесс на localhost и добавить его в Cursor, потому что Cursor сначала отправляет запросы на свой бэкенд, а оттуда в OpenAI совместимый API. Если вы добавите туда localhost, то их бэкенд просто не достучится до вас. Поэтому нужно поднимать туннель, который будет прокидывать трафик на ваш localhost. Для этого очень хорошо подходит Cloudflare. С помощью команды cloudflared tunnel вы можете поднять туннель и добавить адрес туннеля в Cursor.
Таким образом, покупая подписку ChatGPT за 20$, вы получаете возможность использовать токены на сумму ~1000$. Покупая подписку Claude за 100$, вы получаете токенов на сумму ~2000$. Но чтобы использовать кастомные OpenAI URL в Cursor, вам еще нужна подписка Cursor за 20$.
Эти решения поддерживают не всё, что требуется для разработки. В некоторых решениях хорошо проксируется только чат, но любое использование инструментов, например изменение файлов или режим планирования, не поддерживаются. Другие поддерживают только некоторые инструменты, но не все. Где-то поддерживается только Claude и не работает ChatGPT.
Я взял всё лучшее из этих решений, добавил поддержку всех инструментов и создал расширение для Cursor. Оно позволяет авторизоваться в Claude и ChatGPT через OAuth, запускает процесс для проксирования запросов и поднимает Cloudflare туннель. На всю настройку уходит минута и вы можете использовать ваши подписки в Cursor без оплаты за API токены.
Репозиторий проекта: https://github.com/orchidfiles/ungate
Установка
Вы можете установить расширение из панели расширений в Cursor, введя в поиске @id:orchidfiles.ungate.
Установка из терминала: cursor --install-extension orchidfiles.ungate
Также вы можете скомпилировать расширение из исходников:
git clone https://github.com/orchidfiles/ungate.gitcd ungatepnpm installpnpm run package:buildcursor --install-extension "apps/extension/out/ungate.vsix"
После установки расширения в Cursor снизу появится кнопка Ungate: API running | Tunnel stopped. Это означает, что сервис проксирования работает, а туннель остановлен. При нажатии на кнопку откроется Dashboard со статистикой проксированных запросов и настройками. В настройках вы можете поменять порт прокси, перезапустить туннель, авторизоваться в Claude и ChatGPT через OAuth и посмотреть логи туннеля и прокси.
Настройки:
-
В дашборде запустить туннель и получить URL от Cloudflare.
-
Этот URL вставить в
Cursor Settings -> Models -> API Keys -> Override OpenAI Base URL. -
Скопировать API Key из дашборда и вставить в
Cursor Settings -> Models -> API Keys -> OpenAI Api Key. Это не ключ вашей подписки, а api-key для сервиса проксирования, чтобы другие люди не могли выполнять запросы к вашему localhost. Он генерируется при установке расширения. -
Скопировать ID нужной модели и добавить кастомную модель в Cursor с этим названием.
После этих настроек вы можете выбрать эту модель в чате Cursor и все запросы будут идти через вашу подписку.
В расширении есть режим быстрых действий. При наведении на расширение в статус баре появится тултип. В нем можно перезапустить туннель, скопировать адрес туннеля и включить\выключить проксирование запросов.
Проблемы и решения
-
Cursor автоматически каждые несколько часов выключает кастомную настройку OpenAI Base URL и все запросы снова идут через API токены. Этот “баг” существует очень давно, они его не исправляют. Думаю, для них исправлять этот баг экономически не выгодно. Расширение автоматически проверяет активацию этой настройки. Когда Cursor выключает этот чекбокс, расширение его включает обратно.
-
Стандартные названия моделей в Cursor работают только для некоторых провайдеров. Например, если вы отправляете запрос со встроенной моделью GPT-5.4, то запрос пройдет через прокси используя вашу подписку. Но если использовать Sonnet 4.6, то запрос пройдет через API к Claude используя токены. В расширении вы можете создать кастомные названия моделей и добавить их в Cursor, чтобы запросы точно проходили через прокси.
-
Чтобы не публиковать расширение для каждой версии Node и ОС, расширение при первой установке скачивает билды better-sqlite3 и cloudflared из их репозиториев.
-
Если отключить ноутбук от интернета, а затем включить, то нужно перезапускать туннель. Если при запросе в чате вы видите “Reconnecting…”, нужно перезапустить туннель.
-
Если вы получаете 401 ошибку при запросах, значит у вас неправильный api-key. Вам нужно зайти в Dashboard расширения, скопировать api-key и вставить в
Cursor Settings -> Models -> API Keys -> OpenAI Api Key. -
Если вы получаете 404 ошибку, значит не запущен туннель или указан неверный адрес туннеля.
-
Автоматические рефреш токена работает только для Claude. В ChatGPT вам нужно каждые несколько недель заново авторизовываться в аккаунте через OAuth.
Если у вас что-то не работает в расширении или есть вопросы, создайте issue в гитхабе или напишите здесь в комментариях. Буду благодарен за любую обратную связь.
ссылка на оригинал статьи https://habr.com/ru/articles/1038998/