Антон Ларичев

Neovim + avante.nvim с Claude из России: настройка
avante.nvim — плагин для Neovim, который добавляет ИИ-ассистента в стиле Cursor: боковую панель с чатом по коду, правки выделенного фрагмента и применение изменений прямо в буфер. С Claude он работает через провайдер claude, но из России напрямую не подключится: API Anthropic отклоняет российские адреса, а ключ оплачивается зарубежной картой. Решение — указать в конфиге плагина свой адрес API (endpoint) и ключ AI для кода от PurpleSchool с оплатой в рублях. Ниже — установка через lazy.nvim, актуальный конфиг, горячие клавиши и частые ошибки.
Что нужно заранее
- Neovim 0.11 или новее. Более старые версии avante.nvim не поддерживает. Проверить версию:
nvim --version. - lazy.nvim — менеджер плагинов. Инструкция ниже для него; для других менеджеров зависимости те же.
- make на macOS и Linux или PowerShell на Windows — плагин при установке собирает или скачивает свои компоненты.
- Ключ — оформите тариф на странице AI для кода и скопируйте ключ в личном кабинете.
Шаг 1. Задайте ключ
avante.nvim читает ключ Claude из переменной окружения. Удобнее всего — переменная только для avante, с префиксом AVANTE_: так она не пересечётся с другими программами. Добавьте строку в ~/.zshrc или ~/.bashrc:
export AVANTE_ANTHROPIC_API_KEY="ваш ключ"
Плагин понимает и обычную переменную ANTHROPIC_API_KEY. Если она у вас уже задана для Claude Code с тем же ключом PurpleSchool, отдельную заводить не обязательно.
Откройте новый терминал, чтобы переменная подхватилась, и запускайте Neovim из него. Как работают переменные окружения и почему уже запущенные программы не видят новые значения — в статье про переменные окружения в Bash.
Шаг 2. Добавьте плагин в lazy.nvim
Создайте файл спецификации плагина, например ~/.config/nvim/lua/plugins/avante.lua:
return {
"yetone/avante.nvim",
build = vim.fn.has("win32") ~= 0
and "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false"
or "make",
event = "VeryLazy",
version = false,
opts = {
provider = "claude",
providers = {
claude = {
endpoint = "https://app.purpleschool.ru/api-v2/public/ai-proxy/anthropic",
model = "claude-sonnet-5-5",
timeout = 60000,
extra_request_body = {
temperature = 1,
max_tokens = 20480,
},
},
["claude-opus"] = {
endpoint = "https://app.purpleschool.ru/api-v2/public/ai-proxy/anthropic",
model = "claude-opus-5-5",
timeout = 60000,
extra_request_body = {
temperature = 1,
max_tokens = 20480,
},
},
},
},
dependencies = {
"nvim-lua/plenary.nvim",
"MunifTanjim/nui.nvim",
{ "ColinKennedy/mega.cmdparse", dependencies = { "ColinKennedy/mega.logging" } },
},
}
Что здесь важно:
providers.claude— настройки провайдера Claude. В новых версиях avante они лежат внутриproviders; старая записьclaude = {...}прямо вoptsещё работает, но плагин выводит предупреждение[DEPRECATED].endpoint— адрес API без/v1: avante сам добавляет к нему/v1/messages.model— Sonnet 5.5 для повседневной работы. Второй провайдерclaude-opus— Opus 5.5 для сложных задач, на него можно переключаться по ходу работы.timeout— сколько миллисекунд ждать ответа. Длинные ответы с рассуждениями идут дольше 30 секунд по умолчанию, поэтому здесь минута.extra_request_body— параметры запроса.max_tokensограничивает длину ответа.temperature = 1стоит потому, что по умолчанию avante отправляет 0,75, а современные модели Claude рассуждают перед ответом и с рассуждениями API допускает только значение 1.version = false— так рекомендует сам avante: брать последнюю версию из основной ветки.dependencies— обязательные зависимости. Плагины для выбора файлов, автодополнения команд и иконок необязательны.
Ключ в этом файле не хранится — avante возьмёт его из переменной окружения. Поэтому конфиг Neovim можно спокойно держать в репозитории с dotfiles.
Шаг 3. Установите плагины
Откройте Neovim и синхронизируйте плагины:
:Lazy sync
lazy.nvim скачает avante и зависимости и выполнит команду из build. Если сборка не прошла, её можно повторить командой :AvanteBuild.
Шаг 4. Проверьте работу
Откройте файл проекта и вызовите ассистента:
<leader>aa
Справа откроется панель avante. Задайте вопрос по открытому файлу, например «что делает эта функция?». Если пришёл ответ — подключение работает.
Основные команды и клавиши
| Клавиши или команда | Что делает |
|---|---|
<leader>aa или :AvanteAsk | открыть панель и задать вопрос по коду |
:AvanteEdit | изменить выделенный фрагмент по описанию |
:AvanteToggle | показать или скрыть панель |
:AvanteChatNew | начать новый чат |
:AvanteSwitchProvider | переключиться между claude и claude-opus |
:AvanteModels | показать список моделей |
:AvanteStop | остановить текущий запрос |
Предложенные правки avante показывает как конфликт в буфере. Клавиши c t принимают вариант ассистента, c o — ваш, ] x и [ x переходят между конфликтами.
Если <leader>aa у вас уже занят, lazy.nvim его не перезапишет — назначьте свою клавишу на :AvanteAsk.
Частые ошибки
«Claude: API key is not set». avante не нашёл ключ. Проверьте в том же терминале, где запускаете Neovim: echo $AVANTE_ANTHROPIC_API_KEY. Пустая строка — переменная задана не в том файле или терминал открыт раньше, чем вы её добавили.
Ответ 404. В endpoint лишний /v1. avante добавляет /v1/messages сам, поэтому адрес должен заканчиваться на /ai-proxy/anthropic.
Ответ 401. Ключ скопирован с ошибкой или отключён в личном кабинете.
Ошибка региона или 403 от Anthropic. Запросы уходят на api.anthropic.com: endpoint не применился. Проверьте, что настройки лежат внутри providers.claude, и перезапустите Neovim. Для claude-opus адрес тоже нужно указать — по умолчанию у него прописан адрес Anthropic.
Ошибка про параметр temperature. API отклоняет значение, отличное от 1, у моделей с рассуждениями. Проверьте, что в extra_request_body стоит temperature = 1.
Ответ обрывается по таймауту. Увеличьте timeout, например до 120000.
Предупреждение [DEPRECATED] при запуске. Конфиг в старом формате: блок claude = {...} лежит прямо в opts. Перенесите его внутрь providers, как в примере выше.
Плагин не собирается. Нет make или нет доступа к сети при сборке. Установите make (на macOS он входит в Xcode Command Line Tools) и выполните :AvanteBuild.
Сколько стоит
Сам avante.nvim бесплатный и с открытым кодом. Платите вы только за модель. Через AI для кода от PurpleSchool — по тарифу в рублях: 499 ₽ за 2,5 млн токенов в месяц, 1 199 ₽ за 5,5 млн и 2 499 ₽ за 12,5 млн. Токены общие для Claude, GPT и Qwen, неизрасходованные переносятся на следующий месяц. Чтобы расход был меньше, держите по умолчанию Sonnet, а Opus включайте для сложных задач — подробнее в статье Haiku, Sonnet или Opus 5.5: какую модель Claude выбрать.
Частые вопросы
Нужен ли VPN? Нет. Запросы уходят на адрес из endpoint, который доступен из России.
Работает ли на Windows? Да. Сборка на Windows идёт через PowerShell — это уже учтено в строке build в примере. Ключ на Windows сохраняется в пользовательскую переменную окружения.
Можно ли использовать avante вместе с Claude Code? Да, они не мешают друг другу и могут работать от одного ключа PurpleSchool. avante удобен для правок прямо в буфере, Claude Code — для длинных задач, которые агент выполняет сам. Какой режим работы вам ближе, разобрано в сравнении Claude Code или Cursor — для avante те же соображения, что для Cursor.
Где взять полный список настроек? В README репозитория yetone/avante.nvim на GitHub — там описаны все провайдеры, клавиши и параметры.
Итог
Чтобы пользоваться Claude в Neovim из России, достаточно одного файла спецификации для lazy.nvim: провайдер claude внутри providers, endpoint без /v1, модель claude-sonnet-5-5, temperature = 1 и ключ в переменной AVANTE_ANTHROPIC_API_KEY. Ключ с оплатой в рублях — на странице AI для кода от PurpleSchool.






Комментарии
0