Загрузка...

Вайб-кодинг в NeoVim: Настройка Avante+ RouterAI (Claude, GPT-5), бесплатная альтернатива Cursor.

Вайб-кодинг это когда вы занимаетесь проектированием, архитектурой и логикой, а ИИ написанием кода, отладкой и тестами. И сегодня это новая реальность.

До недавнего времени главной IDE для вайб-кодинга был Cursor. Но он платный, имеет ограничения на выбор моделей и поставщиков, к тому же если вы преданы Neovim, переходить на VSCode-подобный редактор больно. 

Выход это плагин avante.nvim, он приносит возможности Cursor прямо в Neovim.

В этой инструкции мы настроим его, используя RouterAI — агрегатор нейросетей, который дает доступ к топовым моделям (Claude 4.5 Sonnet, GPT-5.2 и многим другим) с возможностью работы без VPN и оплатой в рублях.

1. Получение API ключа RouterAI

Avante — это плагин предоставляющий интерфейс для вайб-кодинга в NeoVIM, а бекэнд это RouterAI. Чтобы раскрыть потенциал вайб-кодинга, нам нужен доступ к моделям по API. Для этого: 

  • Переходим на RouterAI.
  • Регистрируемся (почта или через VK, Yandex).
  • Пополняем баланс на любую сумму для теста
  • Переходим в раздел «Ключи API» и создаем новый ключ.
  • Добавьте его в переменные окружения вашего терминала (например, в .bashrc):
    export ROUTERAI_API_KEY="sk-y..."
    Не забудьте перезагрузить терминал или выполнить source ~/.bashrc.

2. Установка avante.nvim

В статье мы будем использовать lazy.nvim как пакетный менеджер. Про другие способы установки можно почитать на github Откройте ваш конфиг для плагинов и добавьте следующую конфигурацию. Здесь мы используем хитрость: Avante поддерживает кастомных вендоров. Мы настроим RouterAI как "кастомного" вендора, который наследует поведение OpenAI.

return {
  {
    "yetone/avante.nvim",
    build = "make",
    event = "VeryLazy",
    version = false,
    opts = {
      instructions_file = "avante.md",
      provider = "routerai",
      providers = {
        routerai = {
          __inherited_from = "openai",
          endpoint = "https://routerai.ru/api/v1/",
          model = "anthropic/claude-sonnet-4.5", -- Модель по умолчанию
          disabled_tools = { "python" }, -- Здесь можно указать какие инструменты Avante не будет использовать
          model_names = { -- Список моделей доступных для выбора
            "x-ai/grok-code-fast-1",
            "x-ai/grok-4.1-fast",
            "qwen/qwen3-coder-plus",
            "anthropic/claude-sonnet-4.5",
            "anthropic/claude-haiku-4.5",
          },
          api_key_name = 'ROUTERAI_API_KEY',
          timeout = 30000,
          extra_request_body = {
            temperature = 0.75,
            max_tokens = 16000
          },
          extra_headers = {
            ["HTTP-Referer"] = "https://github.com/yetone/avante.nvim",
            ["X-Title"] = "Avante.nvim"
          }
        },
      },
      behaviour = {
        auto_approve_tool_permissions = false
      },
    },
    dependencies = {
      "nvim-lua/plenary.nvim",
      "MunifTanjim/nui.nvim",
      "echasnovski/mini.pick",
      "nvim-telescope/telescope.nvim",
      "hrsh7th/nvim-cmp",
      "ibhagwan/fzf-lua",
      "stevearc/dressing.nvim",
      "folke/snacks.nvim",
      "nvim-tree/nvim-web-devicons",
      "zbirenbaum/copilot.lua",
      {
        "HakonHarnes/img-clip.nvim",
        event = "VeryLazy",
        opts = {
          default = {
            embed_image_as_base64 = false,
            prompt_for_file_name = false,
            drag_and_drop = {
              insert_mode = true,
            },
            use_absolute_path = true,
          },
        },
      },
      {
        'MeanderingProgrammer/render-markdown.nvim',
        opts = {
          file_types = { "markdown", "Avante" },
        },
        ft = { "markdown", "Avante" },
      },
    },
  }
}

Актуальный список доступных моделей, вы можете посмотреть в разделе моделей, на RouterAI.

После перезапуска Neovim и установки плагинов, avante.nvim готов к работе.

Работа с правилами в Avante

Правила это текстовые инструкции на естественном языке о которых avante всегда знает. Правила заставляют агента вести себя одинаково в разных сессиях и помнить о важных деталях.

Создайте в корне проекта файл avante.md и добавьте туда ваши требования. Они автоматически применятся при каждом новом чате с ИИ.

Пример файла с правилами avante.md.

- приложение работает в через docker compose в контейнере web, учитывай это когда нужно выполнить команды в консоли
- вся документация по проекту лежит в папке docs, не забывай актуализировать документацию если что то меняешь
- никогда не используй hardcoded строки на русском в коде
- эталонная локаль - русская (ru)
- После изменений в файлах локали запускай скрипт для проверки bin/compare_locales.rb

Если вам нужна более тонкая настройка правил ознакомьтесь с официальной документацией.

3. Как использовать

Чат с кодовой базой

Интерфейс Avante.nvim: просмотр Diff изменений кода в NeoVim

Откройте нужный файл и нажмите <leader>aa (обычно Leader — это пробел, то есть пробел + a + a). Откроется боковая панель. Здесь вы можете писать запросы на русском или английском:
"Объясни, что делает функция init в этом файле."
"Перепишите эту функцию так, чтобы она стала асинхронной."
Для отправки нажмите Ctrl + s.
Если вы попросили что то изменить Avante сгенерирует изменения и покажет их в режиме Diff View. Вам остается одобрить изменения либо отклонить при помощи кнопок Allow/Reject в боковой панели. Если изменений много то можно переключить фокус в окно с кодом нажав <leader>af, проверить все предложенные изменения и таким сочетанием клавиш <leader>af вернутся в панель Avante. 
В контекст чата можно добавлять не только файл целиком но и любой кусок кода, для этого выделите его и нажмите <leader>aa

Inline редактирование кода

Inline редактирование кода

Выделите кусок кода в визуальном режиме (v) и нажмите <leader>ae. Появится поле ввода. Напишите что нужно сделать, например "Добавь обработку ошибок".

4. Нюансы работы

Важно понимать механику работы LLM. У моделей есть "окно контекста", и каждый раз, когда вы отправляете новый вопрос в текущий чат, плагин отправляет модели всю историю переписки плюс все приложенные файлы.

Это создает две проблемы:

  1. Снижение качества (Шум): Если полчаса назад вы обсуждали верстку, а теперь просите оптимизировать SQL-запрос в том же чате, "внимание" модели размывается. Старые инструкции могут конфликтовать с новыми, вызывая галлюцинации или игнорирование свежих требований.
  2. Перерасход бюджета: Входящие токены (Input tokens) стоят денег. Если ваш чат разросся до 20 000 токенов, то даже простой вопрос "А как назвать переменную?" будет дорогим. Вы будете платить за повторную отправку старой истории снова и снова.

Главное правило: Новая задача это новый чат

Возьмите за привычку регулярно сбрасывать контекст.

  • Закончили фичу? Нажмите <leader>an (начинает новый сеанс).
  • Сменили контекст задачи (например, переключились с бэкенда на фронтенд)? — Новый сеанс.
  • Модель начала "тупить"? Не пытайтесь ее переубедить в длинной ветке. Проще открыть новый чат, скинуть нужный кусок кода и задать вопрос с чистого листа.

Такой подход («Short-lived sessions») не только экономит ваш баланс в RouterAI, но и держит ответы модели максимально точными и релевантными. Стоимость каждого запроса, а также расходы по моделям за нужный период вы можете отслеживать на странице статистики в RouterAI.