Continue: установка ИИ-помощника для кода со своим сервером
Copilot и Cursor решают задачу «ИИ пишет код рядом со мной» одним способом: подпиской в валюте и жёсткой привязкой к одному облачному провайдеру модели. Смените план — потеряете доступ. Провайдер поднимет цену или ограничит регион — доступ так же оборвётся. Continue устроен иначе: это открытое расширение, которое само по себе ничего не решает за вас — оно просто соединяет редактор с любой моделью, какую вы укажете, в том числе с той, что крутится на вашем собственном сервере. Ниже — установка Continue, варианты подключения моделей и настройка связки с LiteLLM на VPS, которая даёт единую точку входа вместо кучи разрозненных API-ключей.
Содержание
- Что такое Continue и чем он отличается от Copilot и Cursor
- Установка расширения Continue из маркетплейса VS Code
- Варианты подключения моделей: напрямую или через свой сервер
- Настройка LiteLLM на VPS как прокси
- Конфигурация config.json Continue со своим эндпоинтом
- Практическое использование: автодополнение, чат, объяснение и рефакторинг
- Ограничения и нюансы связки со своим сервером
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что такое Continue и чем он отличается от Copilot и Cursor
Continue — это открытый исходный код: расширение для VS Code и для семейства IDE на JetBrains (IntelliJ IDEA, PyCharm, WebStorm и остальные), которое добавляет в редактор автодополнение кода, чат по проекту и команды рефакторинга. Логика работы простая: расширение перехватывает то, что вы печатаете или выделяете, формирует промпт и отправляет его на эндпоинт модели, который вы сами прописали в конфиге.
Ключевое отличие от Copilot и Cursor — в том, кто выбирает модель. У Copilot модель одна и зашита в продукт GitHub, у Cursor выбор шире, но всё равно ограничен списком, который поддерживает сам Cursor, и тарифом. Continue не привязан ни к одному провайдеру: в конфиге можно указать облачную модель по API-ключу — OpenAI, Anthropic, любую другую с OpenAI-совместимым API — или локальную модель, поднятую на своём железе через Ollama, vLLM или LiteLLM. Расширение одинаково общается что с облаком, что со своим сервером, потому что везде говорит на одном протоколе.
Практическое следствие: с Continue вы не покупаете подписку у одного вендора, а платите ровно за токены той модели, которую сами выбрали, и можете держать несколько моделей одновременно — быструю и дешёвую для автодополнения, более сильную для сложного рефакторинга.
Установка расширения Continue из маркетплейса VS Code
Ставится Continue как обычное расширение, без отдельного бинарника и без демона в фоне.
- Откройте VS Code, перейдите на вкладку Extensions (значок квадратов на боковой панели или сочетание
Ctrl+Shift+X/Cmd+Shift+X). - В строке поиска введите
Continue— в выдаче нужен пункт от организации Continue Dev. - Нажмите Install. После установки в боковой панели появится отдельная иконка Continue — через неё открывается чат и настройки.
- При первом запуске расширение предложит быстрый старт с готовым облачным провайдером. Этот шаг можно пропустить — свои модели прописываются вручную в конфиге, разбор ниже.
Для JetBrains-редакторов путь тот же по смыслу: в Settings → Plugins ищете Continue и ставите из Marketplace. Логика конфигурации и формат файла в обоих случаях одинаковые, дальнейшие примеры одинаково применимы что к VS Code, что к IntelliJ.
Отдельно проверьте версию редактора: Continue активно развивается, и совсем старые сборки VS Code иногда не тянут актуальный релиз расширения. Если Install неактивен или расширение не подгружает конфиг — первым делом обновите сам редактор, а не переустанавливайте плагин.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Развернуть LiteLLMВарианты подключения моделей: напрямую или через свой сервер
У Continue два принципиально разных способа получить модель.
Напрямую по ключу. В конфиге указывается провайдер (например, openai или anthropic), модель и API-ключ. Просто, работает сразу, но у этого пути есть накопительный минус: каждый ключ живёт в конфиге отдельно, лимиты и биллинг у каждого провайдера свои, а смена модели с одного провайдера на другого — это правка конфига в каждом проекте, где Continue установлен, плюс новый ключ, который снова нужно где-то хранить.
Через свой сервер с LiteLLM как единым шлюзом. LiteLLM — прокси, который стоит перед разными моделями (облачными и локальными) и отдаёт их все через один OpenAI-совместимый эндпоинт со своим ключом. Continue в этом случае знает только один адрес — ваш сервер — а какая модель за ним реально отвечает, решается на стороне LiteLLM.
Разница на практике ощутима в трёх местах:
- Переключение моделей на лету. Добавили новую модель в конфиг LiteLLM на сервере — она сразу доступна во всех проектах, где Continue смотрит на этот эндпоинт, без правки локальных файлов на каждой машине.
- Единая точка биллинга и лимитов. Вместо разрозненных ключей у каждого провайдера — один список ключей и бюджетов в LiteLLM, с общей статистикой расхода по всем моделям сразу.
- Отвязка от конкретного облака. Если завтра выгоднее окажется другая модель или провайдер поднимет цену, меняется конфиг на сервере, а не привычки всей команды.
Для одиночного разработчика с одной моделью прямое подключение по ключу — рабочий и достаточный вариант. Как только моделей больше одной или редакторов и участников больше одного, схема со своим сервером и LiteLLM окупается почти сразу же за счёт того, что не нужно синхронизировать ключи вручную. Сравнение LiteLLM с готовыми агрегаторами вроде OpenRouter разобрано отдельно в материале LiteLLM против OpenRouter: что выгоднее и когда, а сколько ресурсов закладывать под сам прокси — в статье Сколько RAM нужно для LiteLLM Gateway.
Настройка LiteLLM на VPS как прокси
Разворачивать LiteLLM с нуля в этом материале не нужно — подробная пошаговая установка есть в отдельной статье Как установить и настроить LiteLLM на VPS. Здесь — минимум, достаточный, чтобы Continue было к чему подключаться.
Базовый запуск через pip выглядит так:
pip install 'litellm[proxy]'
litellm --config /etc/litellm/config.yaml --port 4000
Файл config.yaml описывает, какие модели прокси отдаёт наружу и какими ключами пользуется сам, обращаясь к реальным провайдерам:
model_list:
- model_name: gpt-4o
litellm_params:
model: openai/gpt-4o
api_key: sk-openai-xxxxxxxx
- model_name: claude-sonnet
litellm_params:
model: anthropic/claude-sonnet-4-5
api_key: sk-ant-xxxxxxxx
general_settings:
master_key: sk-litellm-master-xxxxxxxx
master_key — тот единственный ключ, который дальше увидит Continue. Реальные ключи OpenAI и Anthropic остаются на сервере и в клиентский конфиг не попадают. Порт 4000 наружу лучше не открывать напрямую — как и с любым API-сервером, правильная связка это Nginx с HTTPS-сертификатом перед LiteLLM и фаервол, закрывающий прямой доступ к порту снаружи.
Конфигурация config.json Continue со своим эндпоинтом
Continue хранит настройки в конфигурационном файле, доступном через команду Continue: Open Config из палитры команд редактора (Ctrl+Shift+P / Cmd+Shift+P) либо через шестерёнку в боковой панели расширения. Для подключения к своему LiteLLM-прокси модель описывается как OpenAI-совместимый провайдер с адресом вашего сервера вместо адреса OpenAI:
{
"models": [
{
"title": "Мой сервер — GPT-4o",
"provider": "openai",
"model": "gpt-4o",
"apiBase": "https://ai.example-domain.io/v1",
"apiKey": "sk-litellm-master-xxxxxxxx"
},
{
"title": "Мой сервер — Claude Sonnet",
"provider": "openai",
"model": "claude-sonnet",
"apiBase": "https://ai.example-domain.io/v1",
"apiKey": "sk-litellm-master-xxxxxxxx"
}
],
"tabAutocompleteModel": {
"title": "Автодополнение",
"provider": "openai",
"model": "gpt-4o",
"apiBase": "https://ai.example-domain.io/v1",
"apiKey": "sk-litellm-master-xxxxxxxx"
}
}
Три момента, на которые стоит обратить внимание:
provider: "openai"указывается даже для моделей Anthropic — потому что Continue обращается не напрямую к Anthropic, а к LiteLLM, а тот отдаёт единый OpenAI-совместимый интерфейс независимо от того, какая модель реально отвечает.modelв конфиге Continue должен совпадать сmodel_nameвconfig.yamlLiteLLM, а не с внутренним именем модели у провайдера — это то самое поле, по которому прокси решает, куда маршрутизировать запрос.tabAutocompleteModelзадаётся отдельно от списка моделей чата и обычно указывает на более быструю и дешёвую модель — автодополнение срабатывает на каждое нажатие клавиши, и гонять на это тяжёлую модель нерационально по деньгам и по задержке.
После сохранения конфига Continue переподхватывает настройки без перезапуска редактора — новые модели сразу появляются в выпадающем списке над окном чата.
Практическое использование: автодополнение, чат, объяснение и рефакторинг
С рабочим конфигом Continue закрывает те же сценарии, что и Copilot с Cursor, только через выбранную вами модель.
Автодополнение кода. Работает как призрачный текст (ghost text) прямо в редакторе, по мере набора — модель предлагает продолжение строки или блока, Tab принимает предложение. Именно этот сценарий чувствительнее всего к задержке ответа, поэтому для него обычно берут отдельную, более быструю модель.
Чат по коду. Боковая панель с диалогом, куда можно подтягивать контекст: конкретный файл, выделенный блок, весь открытый проект через специальные команды контекста (@file, @codebase и подобные). Модель отвечает с учётом реального кода, а не только текста вопроса.
Объяснение фрагментов. Выделяете участок кода, вызываете команду explain через палитру или контекстное меню — модель разбирает, что делает код, на естественном языке. Полезно на чужом или давно не открывавшемся участке.
Рефакторинг по команде. Выделяете блок, пишете инструкцию текстом («вынеси в отдельную функцию», «перепиши на async/await», «добавь обработку ошибок») — Continue формирует диff, который можно принять целиком, частично или отклонить. Ничего не применяется к файлу автоматически без подтверждения.
Все эти режимы используют модели из одного и того же config.json — если чат и автодополнение указывают на один и тот же сервер LiteLLM, переключение моделей в интерфейсе Continue происходит без единой правки конфига.
Ограничения и нюансы связки со своим сервером
У подхода со своим сервером есть обратная сторона, о которой стоит знать заранее.
Сетевая задержка. Автодополнение и чат нативных облачных эндпоинтов OpenAI и Anthropic оптимизированы под минимальный отклик и физически ближе к массовому трафику. Запрос к своему серверу добавляет дополнительный сетевой прыжок, и на медленном автодополнении, срабатывающем на каждое нажатие клавиши, разница в десятки-сотни миллисекунд заметна на глаз. Для чата и рефакторинга, где ответ ждут секундами, а не долями секунды, эта разница обычно не критична.
Локация сервера решает половину задержки. Если основная аудитория и сами разработчики физически в России, а сервер стоит в Лондоне или в США, каждый запрос идёт через океан или как минимум через границу — и наоборот. Выбирайте локацию VPS ближе к тем, кто реально пишет код через Continue, а не к тому, где физически находятся облачные API моделей — LiteLLM всё равно обращается к ним с сервера, а не с ноутбука разработчика.
Единая точка отказа. Пока модель ходит напрямую к OpenAI, авария в одном облаке ломает только эту модель. Когда весь трафик идёт через один сервер с LiteLLM, авария или простое обслуживание этого сервера временно останавливают доступ ко всем моделям сразу для всех, кто на него завязан. На практике это решается резервным API-ключом напрямую к провайдеру про запас, прописанным вторым пунктом в models конфига Continue.
Ключ LiteLLM — это одна точка компрометации вместо нескольких. Утечка master_key даёт доступ сразу ко всем моделям за прокси. Ротация ключа и ограничение бюджета на каждый выданный ключ в LiteLLM — не опция, а обязательная часть настройки, если сервером пользуется больше одного человека.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Развернуть LiteLLMОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Continue бесплатен?
Само расширение — да, открытый исходный код без подписки. Платите вы только за токены той модели, которую подключили: облачной по API-ключу или локальной, за которую платите инфраструктурой своего сервера.
Можно ли использовать Continue вообще без своего сервера?
Да, расширение прекрасно работает с прямым подключением по API-ключу к OpenAI, Anthropic или другому провайдеру. Свой сервер с LiteLLM нужен не для базовой работы, а для удобства, когда моделей и проектов становится больше одной-двух.
Работает ли Continue офлайн?
Только если модель за эндпоинтом сама локальная и без выхода в интернет — например, поднятая через Ollama на том же сервере. Само расширение всегда обращается к какому-то HTTP-эндпоинту, будь то облако или ваш сервер.
Чем LiteLLM лучше, чем просто вписать ключ OpenAI в config.json Continue?
Ключ OpenAI напрямую — это одна модель, один биллинг и правка конфига на каждой машине при любом изменении. LiteLLM на своём сервере даёт один эндпоинт для нескольких моделей сразу, общий учёт расхода и возможность добавлять или менять модели без переустановки конфигов у всех, кто подключён.
Нужен ли отдельный сервер под LiteLLM, если модели всё равно облачные?
Формально нет — можно подключаться напрямую. Но даже проксируя чисто облачные модели, отдельный сервер даёт единую точку биллинга, ограничение бюджета по ключам и защиту реальных API-ключей провайдеров от попадания в конфиги на рабочих машинах разработчиков.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.