Continue.dev: превращаем VS Code в IDE с AI-ассистентом
Введение: Когда Copilot стоит денег, а хочется локальной LLM
GitHub Copilot — отличный инструмент. Но он платный (10$/мес за Individual), требует интернета и привязывает вас к модели от Microsoft. Если вы хотите использовать локальную LLM — Llama, Mistral, Qwen — прямо в VS Code, вам нужен Continue.dev.
Continue — это open-source расширение для VS Code (и Neovim, и JetBrains), которое подключается к любой LLM-бэкенду: Ollama, llama.cpp, vLLM, OpenAI, Anthropic. Вы получаете функционал Copilot — бесплатно, приватно, с моделями на вашем компьютере.
В этой статье — полное руководство по Continue: от установки до продвинутых кастомизаций, с примерами конфигурации, настройкой бэкендов и типичными проблемами.
Что такое Continue и чем он отличается от Copilot
Continue.dev — это open-source (лицензия Apache 2.0) AI-ассистент для разработчиков, который:
- Работает с любой LLM — локальной (Ollama, llama.cpp) или облачной (OpenAI, Anthropic, Gemini)
- Полностью кастомизируем — Modelfile-подобная конфигурация в JSON, свои промпты, свои инструменты
- Работает офлайн — если бэкенд локальный, интернет не нужен
- Открытый код — никаких чёрных ящиков, можно форкнуть и доработать
# Установка в VS Code
# Расширение: "Continue" (автор Continue Dev)
# Или через командную палитру:
# Ctrl+Shift+P → "Extensions: Install Extensions" → "Continue"
Ключевое отличие от Copilot: Copilot привязывает вас к одной модели (GitHub-выбранной). Continue позволяет переключаться между моделями, использовать локальные модели бесплатно и полностью контролировать свои данные.
Установка и первый запуск
VS Code
- Откройте Extensions (Ctrl+Shift+X)
- Найдите "Continue"
- Нажмите Install
- Перезапустите VS Code
После установки в правой части редактора появится иконка Continue (⌘L на Mac, Ctrl+L на Windows/Linux).
Neovim
-- В вашем nvim-конфиге
-- Используйте Mason для установки mason-lspconfig
-- Затем добавьте lsp-конфигурацию для Continue
Continue поддерживает LSP-протокол, поэтому работает с любым редактором, поддерживающим Language Server Protocol.
JetBrains IDEs
Установка аналогична VS Code — через Plugin Marketplace. Поддерживаются IntelliJ IDEA, PyCharm, WebStorm, GoLand и другие.
Бэкенды: подключение моделей
Самая мощная сторона Continue — поддержка множества бэкендов. Конфигурация хранится в ~/.continue/config.json.
Ollama: локальная модель бесплатно
{
"models": [
{
"title": "Llama 3.2",
"provider": "ollama",
"model": "llama3.2"
}
],
"tabAutocompleteModel": {
"title": "Llama 3.2 (Fast)",
"provider": "ollama",
"model": "llama3.2:3b"
}
}
Быстрый старт:
# Установите Ollama
brew install ollama
ollama pull llama3.2
# Перезапустите VS Code
# Continue автоматически подключится к localhost:11434
llama.cpp: прямой запуск GGUF
{
"models": [
{
"title": "Qwen 2.5 7B",
"provider": "llama.cpp",
"model": "./models/qwen2.5-7b-instruct.Q4_K_M.gguf",
"apiBase": "http://localhost:8080"
}
]
}
Запустите сервер llama.cpp:
./server -m ./models/qwen2.5-7b-instruct.Q4_K_M.gguf -c 8192 -ngl 35
vLLM: production-качество для локального API
{
"models": [
{
"title": "Mistral 7B (vLLM)",
"provider": "openai",
"model": "mistralai/Mistral-7B-Instruct-v0.3",
"apiBase": "http://localhost:8000/v1/"
}
]
}
pip install vllm
python -m vllm.entrypoints.openai.api_server \
--model mistralai/Mistral-7B-Instruct-v0.3 \
--max-model-len 8192 \
--port 8000
OpenAI и Anthropic: облачные модели
{
"models": [
{
"title": "GPT-4o",
"provider": "openai",
"model": "gpt-4o",
"apiKey": "sk-..."
},
{
"title": "Claude Sonnet",
"provider": "anthropic",
"model": "claude-sonnet-4-20250514",
"apiKey": "sk-ant-..."
}
]
}
Mix: несколько моделей для разных задач
{
"models": [
{
"title": "Llama 3.2 (Локальная)",
"provider": "ollama",
"model": "llama3.2"
},
{
"title": "GPT-4o (Облачная)",
"provider": "openai",
"model": "gpt-4o",
"apiKey": "sk-..."
},
{
"title": "Claude Sonnet (Облачная)",
"provider": "anthropic",
"model": "claude-sonnet-4-20250514",
"apiKey": "sk-ant-..."
}
]
}
Continue позволяет переключаться между моделями через командную палитру: Ctrl+Shift+P → "Continue: Change Model".
Интерфейс: чат, коммиты и автодополнение
Чат с кодом (Ctrl+L / ⌘L)
Основной интерфейс — чат, открываемый по Ctrl+L. Он показывает:
- Контекст: текущий файл автоматически включается в промпт
- Выделение: выбранный код отправляется как контекст
- Результат: ответ LLM с возможностью вставки в редактор
Выделите функцию → Ctrl+L → "Почему этот код не работает?"
→ LLM анализирует и отвечает с примерами
→ Кнопка "Insert" вставляет исправленный код
Команды в чате
Continue поддерживает slash-команды для специфических задач:
| Команда | Описание |
|---|---|
/edit |
Редактирует выделенный код |
/comment |
Добавляет комментарии к коду |
/share |
Экспортирует историю чата |
/cmd |
Генерирует команду терминала |
/so |
Ищет решение на Stack Overflow |
/new |
Начинает новый чат |
/clear |
Очищает историю чата |
Tab Autocomplete (Ctrl+Tab)
Continue предлагает автодополнение кода, работающее с локальной моделью:
{
"tabAutocompleteModel": {
"title": "StarCoder2 (Fast)",
"provider": "ollama",
"model": "starcoder2:3b"
}
}
Настройка автодополнения:
{
"tabAutocompleteOptions": {
"maxPromptTokens": 1500,
"prefixPercentage": 0.5,
"debounceDelay": 250,
"multilineCompletions": "always"
}
}
Inline Chat (Ctrl+I / ⌘I)
Inline-чат позволяет редактировать код прямо на месте, без переключения на боковой чат:
- Выделите код
- Нажмите Ctrl+I
- Введите инструкцию: "Добавь обработку ошибок"
- Получите diff прямо в редакторе
Продвинутая конфигурация
System Prompt: настройка поведения модели
{
"systemMessage": "Ты — опытный senior-разработчик. Отвечай кратко, с примерами кода. Если не знаешь ответа — скажи прямо. Не генерируй код, если не уверен."
}
Custom Prompts: свои команды для чата
{
"contextProviders": [
{
"name": "code",
"params": {}
},
{
"name": "docs",
"params": {}
},
{
"name": "open",
"params": {}
},
{
"name": "diff",
"params": {}
}
]
}
Context Providers: что отправляется в промпт
Continue собирает контекст из разных источников:
| Provider | Описание |
|---|---|
| code | Текущий файл и связанные файлы |
| open | Все открытые вкладки |
| diff | Несохранённые изменения в git |
| terminal | Вывод терминала |
| problems | Ошибки и предупреждения из панели Problems |
| docs | Документация проекта |
| url | Содержимое по URL |
| folder | Содержимое папки проекта |
Пример: полный config.json
{
"models": [
{
"title": "Llama 3.2",
"provider": "ollama",
"model": "llama3.2"
},
{
"title": "GPT-4o",
"provider": "openai",
"model": "gpt-4o",
"apiKey": "${OPENAI_API_KEY}"
}
],
"tabAutocompleteModel": {
"title": "StarCoder2",
"provider": "ollama",
"model": "starcoder2:3b"
},
"tabAutocompleteOptions": {
"maxPromptTokens": 1500,
"debounceDelay": 200,
"multilineCompletions": "always"
},
"systemMessage": "Ты — senior-разработчик. Отвечай с примерами кода.",
"allowAnonymousTelemetry": false,
"contextProviders": [
{ "name": "code" },
{ "name": "open" },
{ "name": "diff" },
{ "name": "terminal" },
{ "name": "problems" }
]
}
Environment Variables и безопасность
Хранение API-ключей
{
"models": [
{
"title": "GPT-4o",
"provider": "openai",
"model": "gpt-4o",
"apiKey": "${OPENAI_API_KEY}"
}
]
}
Continue поддерживает переменные окружения через синтаксис ${VAR_NAME}. Установите ключи в окружение:
# В ~/.zshrc или ~/.bashrc
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."
Конфиденциальность
{
"allowAnonymousTelemetry": false
}
По умолчанию Continue отправляет анонимную телеметрию. Отключите её для полной приватности.
RAG с Continue: работа с документацией
Continue поддерживает индексацию собственной документации для RAG-поиска:
{
"contextProviders": [
{
"name": "docs",
"params": {
"docsToIndex": ["./docs", "./README.md"]
}
}
]
}
Настройка через UI
- Откройте настройки Continue (шестерёнка в чате)
- Перейдите в "Documentation"
- Добавьте URL или пути к файлам
- Нажмите "Index"
Пример: индексация React-документации
{
"contextProviders": [
{
"name": "docs",
"params": {
"urls": [
"https://react.dev/reference/react",
"https://react.dev/learn"
]
}
}
]
}
Теперь при запросе "Как использовать useEffect?" Continue найдёт ответ в официальной документации React.
Continue в команде: shared configuration
Team config.json
{
"__comment": "Этот файл можно коммитить в репозиторий для команды"
}
Создайте .continue/config.json в корне проекта — Continue автоматически использует его вместо глобального конфига.
Пример: командный стандарт
{
"models": [
{
"title": "Qwen 2.5 (Локальная)",
"provider": "ollama",
"model": "qwen2.5:7b"
}
],
"tabAutocompleteModel": {
"title": "StarCoder2",
"provider": "ollama",
"model": "starcoder2:3b"
},
"systemMessage": "Ты — разработчик проекта o6. Пиши код в стиле проекта. Используй TypeScript, не добавляй лишних зависимостей."
}
.gitignore для личных ключей
# Личные API-ключи
.continue/config.local.json
Используйте .continue/config.local.json для личных настроек с ключами, а .continue/config.json — для общих настроек команды.
Производительность и оптимизация
Что влияет на скорость автодополнения
| Фактор | Влияние |
|---|---|
| Модель | 3B ≈ в 3x быстрее 7B |
| Квантование | Q4 ≈ в 2x быстрее F16 |
| num_ctx | Меньше контекст = быстрее |
| GPU | CUDA/Metal ≈ в 5x быстрее CPU |
Рекомендуемые модели для autocomplete
| Модель | Размер | Скорость | Качество |
|---|---|---|---|
| starcoder2:3b | 2.1 ГБ | ⚡ Быстрая | ★★★★ |
| deepseek-coder:1.3b | 900 МБ | ⚡⚡ Очень быстрая | ★★★ |
| codellama:7b | 4.1 ГБ | Средняя | ★★★★★ |
| qwen2.5-coder:3b | 2.0 ГБ | ⚡ Быстрая | ★★★★ |
Оптимизация для MacBook
{
"models": [
{
"title": "Llama 3.2 (Metal)",
"provider": "ollama",
"model": "llama3.2",
"engine": "llama.cpp"
}
],
"tabAutocompleteModel": {
"title": "StarCoder2 (Metal)",
"provider": "ollama",
"model": "starcoder2:3b"
}
}
Типичные проблемы и решения
Проблема 1: Continue не подключается к Ollama
Симптом: В чате ошибка "Connection refused" или "Model not found".
Решение:
# Проверьте, запущен ли Ollama
ollama list
# Проверьте порт
curl http://localhost:11434/api/tags
# Перезапустите Ollama
ollama serve &
# Проверьте config.json
cat ~/.continue/config.json
Проблема 2: Медленное автодополнение
Симптом: Задержка при нажатии Tab — 2-5 секунд.
Решение:
- Используйте меньшую модель (3B вместо 7B)
- Уменьшите
maxPromptTokensдо 500-1000 - Уменьшите
debounceDelayдо 100-150 мс - Используйте GPU-бэкенд (CUDA/Metal)
{
"tabAutocompleteOptions": {
"maxPromptTokens": 800,
"debounceDelay": 150
}
}
Проблема 3: Модель "галлюцинирует" или даёт бессмысленные ответы
Решение:
- Увеличьте system prompt с конкретными инструкциями
- Попробуйте другую модель с лучшей инструкцией
- Уменьшите temperature (если бэкенд поддерживает)
{
"systemMessage": "Ты — senior-разработчик TypeScript. Отвечай ТОЛЬКО по существу. Если не знаешь ответа — скажи 'Не знаю'. Не генерируй псевдокод."
}
Проблема 4: Конфликт с GitHub Copilot
Решение: Отключите Copilot или настройте приоритеты:
{
"tabAutocompleteOptions": {
"useVsCodeEditorContext": true,
"showInlineSuggestion": true
}
}
Или полностью отключите Copilot в настройках VS Code:
{
"github.copilot.enable": {
"*": false
}
}
Проблема 5: Не индексируется документация
Решение:
# Проверьте права доступа к файлам
ls -la ./docs/
# Проверьте логи Continue
# Cmd+Shift+P → "Developer: Open Process Explorer"
# Убедитесь, что формат файлов поддерживается
# .md, .txt, .py, .ts — поддерживаются
# .pdf, .docx — могут не поддерживаться
Continue vs Copilot: честное сравнение
| Функция | Continue | Copilot |
|---|---|---|
| Цена | Бесплатно (локально) | $10/мес |
| Модели | Любая | Только GitHub-выбранная |
| Офлайн | Да (с локальной моделью) | Нет |
| Приватность | 100% (локально) | Код уходит на сервер |
| Автодополнение | Да (кастомизируемое) | Да (закрытое) |
| Чат | Да | Да |
| Редактирование кода | Да (/edit) | Да (Ghost Text) |
| RAG с документацией | Да | Нет (только Codebase) |
| Кастомные промпты | Да | Нет |
| Командная настройка | Да (shared config) | Нет |
| Поддержка IDE | VS Code, JetBrains, Neovim | VS Code, JetBrains, Vim |
| Open Source | Да (Apache 2.0) | Нет |
Чек-лист: первый день с Continue
- Установить расширение Continue из Marketplace
- Установить Ollama:
brew install ollama - Скачать модель:
ollama pull llama3.2 - Настроить
~/.continue/config.json - Перезапустить VS Code
- Протестировать чат (Ctrl+L)
- Протестировать автодополнение (Ctrl+Tab)
- Добавить system prompt
- Настроить context providers
- Добавить документацию для RAG
Итоги
Continue.dev — это лучший способ начать работу с AI-ассистентом в VS Code:
- Бесплатно: Локальные модели через Ollama — никаких подписок
- Приватно: Код не покидает ваш компьютер
- Гибко: Любая модель, любой бэкенд, любой промпт
- Открыто: Apache 2.0, можно форкать и дорабатывать
С чего начать прямо сейчас:
# 1. Установите Ollama
brew install ollama
# 2. Скачайте модель
ollama pull llama3.2
# 3. Установите расширение Continue в VS Code
# 4. Настройте config.json
# 5. Начните работать с AI-ассистентом
Continue — это не просто "бесплатный Copilot". Это более мощный, более гибкий и более приватный инструмент для разработчиков, которые ценят контроль над своими данными и рабочим процессом.