Continue.dev + BotHub: аналог Cursor, собираю за вечер

от автора

Cursor Pro — $20 в месяц и вечная проблема с оплатой из РФ. Я три недели проработала на open-source связке Continue.dev+ один API-ключ.

Ниже рабочий конфиг, реальный счёт с токенами и честный список того, что тут хуже, чем в Cursor.

Гуглят такое обычно как «курсор нейросеть» или «deepseek vscode»: людям нужна не отдельная AI-IDE, а нейросеть прямо в привычном редакторе.

Continue.dev за 30 секунд

Open-source плагин для VS Code и JetBrains: чат по коду, inline-автокомплит, редактирование выделенного фрагмента, объяснение ошибок, генерация тестов, работа с контекстом проекта. То есть базовый набор, ради которого и ставят Cursor. Сам плагин бесплатный — платите только за токены. Не зайдёт — рядом живут Cline, Roo Code и Aider.

Модели я подключаю через BotHub: один ключ на Claude, GPT, Gemini и DeepSeek, оплата рублёвой картой, без зарубежных карт и VPN. Endpoint OpenAI-совместимый, поэтому Continue цепляется к нему из коробки:

https://bothub.ru/api/v2/openai/v1

Установка

VS Code: Extensions → Continue → откройте панель в сайдбаре → Local Config.

Установка плагина Continue.dev в VS Code

Установка плагина Continue.dev в VS Code

JetBrains: Settings → Plugins → Continue → перезапуск IDE.

Конфиг лежит в ~/.continue/config.yaml (Windows: %USERPROFILE%\.continue\config.yaml).

Если модели после настройки не появились — вы всё ещё сидите на дефолтном ассистенте Continue. Переключитесь на Local Config.

Переключение Continue.dev на Local Config

Переключение Continue.dev на Local Config

Слаги моделей не копируйте из статей — они устаревают. Забирайте актуальные из API:

curl https://bothub.ru/api/v2/openai/v1/models -H «Authorization: Bearer $BOTHUB_API_KEY»

Рабочий конфиг

Главная ошибка всех гайдов: roles выносят на верхний уровень. Они вкладываются в модель, иначе YAML просто не распарсится.

Claude, Gemini и DeepSeek в одном списке моделей Continue.dev

Claude, Gemini и DeepSeek в одном списке моделей Continue.dev

name: bothub-assistant

version: 0.0.1

schema: v1

models:

  — name: Claude Sonnet

    provider: openai

    model: claude-sonnet-4-5

    apiBase: https://bothub.ru/api/v2/openai/v1

    apiKey: ${{ secrets.BOTHUB_API_KEY }}

    roles: [chat, edit, apply]

  — name: DeepSeek Coder

    provider: openai

    model: deepseek-coder

    apiBase: https://bothub.ru/api/v2/openai/v1

    apiKey: ${{ secrets.BOTHUB_API_KEY }}

    roles: [autocomplete]

  — name: Gemini

    provider: openai

    model: gemini-2.5-pro

    apiBase: https://bothub.ru/api/v2/openai/v1

    apiKey: ${{ secrets.BOTHUB_API_KEY }}

    roles: [chat, edit]

Ключ храните в секретах Continue или переменной окружения. Конфиг с ключом внутри в репозиторий не коммитим — напоминаю, потому что видела это в проде.

Автокомплит: здесь ошибаются

Для чата подойдёт любая модель. Для автодополнения — нет: Continue шлёт FIM-запрос (fill-in-the-middle), и chat-модель на нём выдаёт мусор или дописывает объяснения прямо в код. Поэтому на роль autocomplete ставим именно coder-модель — DeepSeek Coder тут оптимален по цене и скорости.

Если подсказки тормозят или прилетают обрезанными, лечится тремя параметрами:

tabAutocompleteOptions:

  debounceDelay: 350

  maxPromptTokens: 1024

  multilineCompletions: never

Почему для автокомплита нужна coder-модель, а не chat

Почему для автокомплита нужна coder-модель, а не chat

Автокомплит незаметно сжигает больше всего токенов: один запрос копеечный, но за день их сотни. Держать на нём Claude Sonnet — способ платить флагманскую цену за каждый Tab.

@codebase без embed-модели не работает

Про это молчит половина гайдов: поиск по проекту требует отдельной модели эмбеддингов. Без неё Continue просто ничего не найдёт.

 — name: embed

    provider: openai

    model: text-embedding-3-small

    apiBase: https://bothub.ru/api/v2/openai/v1

    apiKey: ${{ secrets.BOTHUB_API_KEY }}

    roles:

Сколько это стоит по факту

Три недели, боевой проект на TypeScript, 6–7 часов в день:

Роль

Модель

Доля расхода

autocomplete

DeepSeek Coder

~55% запросов, ~15% денег

chat / edit

Claude Sonnet

~30% запросов, ~65% денег

длинный контекст

Gemini

~10% запросов, ~15% денег

Итог — около 900 ₽ в месяц против $20 подписки Cursor. Экономия не драматическая, но платите вы по факту: в отпуске счёт стремится к нулю, а не капает.

Где Continue честно проигрывает Cursor

  • Агентский режим слабее: Cursor лучше сам ходит по файлам и правит несколько сразу.

  • apply иногда мажет diff — на больших файлах приходится перечитывать патч.

  • Настройка руками. Cursor ставится и работает, тут вы час собираете конфиг.

Если нужна максимальная простота — берите Cursor. Continue выигрывает там, где важны контроль над моделями, расходами и своя IDE.

Если код нельзя отдавать наружу

Любой прокси видит то, что вы ему отправили. Для NDA-проектов в том же конфиге поднимается локальная модель:

 — name: local

    provider: ollama

    model: qwen2.5-coder:7b

    roles: [chat, edit, autocomplete]

Качество ниже, зато код не покидает машину. Профили переключаются в один клик.

Проверка

Откройте файл и спросите: «Объясни, что делает этот файл, найди потенциальные баги, код пока не переписывай». Потом выделите функцию: «Отрефактори фрагмент, верни минимальный diff, публичное поведение не менять». Ответ пришёл — связка живая.

Continue.dev закрывает интерфейс в редакторе, BotHub — доступ к моделям по одному ключу и рублёвой карте. Дальше вы сами решаете, где нужен Claude, а где хватит дешёвого DeepSeek.

А вы что держите на автокомплите? У меня DeepSeek Coder выигрывает по цене, но стабильно ошибки на TypeScript-дженериках — интересно, чем это лечат.


ссылка на оригинал статьи https://habr.com/ru/articles/1070706/