Как это устроено
В OpenCode модели подключаются через провайдеров, которые описываются в файлеopencode.json. Для RuAPI нужны два:
Что понадобится
1
Ключ RuAPI
Зарегистрируйтесь на www.ruapi.ai и пополните баланс (как пополнить). Затем откройте Консоль → API-ключи и нажмите Создать ключ. Ключ начинается с
sk-.2
Установленный OpenCode
На macOS и Linux:Или через npm на любой системе, включая Windows:На Windows разработчики OpenCode рекомендуют работать в WSL.
Шаг 1. Сохраните ключ в переменной окружения
Чтобы ключ не попал в файл настроек, OpenCode будет брать его из переменной окруженияRUAPI_API_KEY.
- macOS / Linux
- Windows (PowerShell)
Добавьте строку в Затем откройте новое окно терминала, чтобы изменения вступили в силу.
~/.zshrc (или ~/.bashrc, если у вас bash), подставив свой ключ:Шаг 2. Опишите провайдеров в opencode.json
Откройте (или создайте) глобальный файл настроек~/.config/opencode/opencode.json и вставьте:
anthropic— встроенный провайдер OpenCode для Claude. В конфигурации ему только меняется адрес на RuAPI и подставляется ваш ключ, поэтому запросы идут в родном формате Claude, с кэшированием.ruapi— свой провайдер для всех остальных моделей. Чтобы добавить модель, допишите строку в блокmodels, например,"kimi/kimi-k3": { "name": "Kimi K3" }. Точные имена моделей приведены на странице цен.model— модель по умолчанию в форматепровайдер/модель.
Если файл
opencode.json лежит и в папке проекта, OpenCode объединяет оба файла, причём настройки проекта имеют приоритет над глобальными. Не храните ключ прямо в файле проекта — используйте {env:RUAPI_API_KEY}, как в примере.Шаг 3. Запустите OpenCode и выберите модель
Перейдите в папку проекта и запустите агента:/models и выберите модель, например, anthropic/claude-sonnet-5-5 или ruapi/deepseek-flash. Затем поставьте задачу:
Какую модель выбрать
Решение проблем
401 / неверный ключ
401 / неверный ключ
- Проверьте, что переменная
RUAPI_API_KEYдоступна в терминале, где запущен OpenCode: после её создания нужно открыть новое окно. - В обоих провайдерах
baseURLдолжен бытьhttps://www.ruapi.ai/v1.
Модели Claude нет в списке /models
Модели Claude нет в списке /models
Список моделей встроенного провайдера
anthropic OpenCode берёт из своего каталога. Обновите OpenCode; если модели всё равно нет, добавьте в блок anthropic раздел models с нужным именем, например, "claude-opus-5-5": { "name": "Claude Opus 5.5" }.Модель не найдена (404 или 503)
Модель не найдена (404 или 503)
Имя модели должно в точности совпадать с именем на RuAPI — скопируйте его со страницы цен. Модели Claude выбирайте у провайдера
anthropic, остальные — у ruapi.Ошибка в файле настроек
Ошибка в файле настроек
Проверьте, что JSON корректен: все кавычки двойные, после последнего элемента в блоке нет лишней запятой.
400: The reasoning_content in the thinking mode must be passed back
400: The reasoning_content in the thinking mode must be passed back
Такое случается у DeepSeek в режиме рассуждений, если сменить модель посреди задачи. В большинстве случаев RuAPI сам повторяет запрос в исправленном виде. Если ошибка не исчезла, начните новую сессию.
Что дальше
- Claude Code и Codex — другие агенты для терминала.
- Переход с Cursor — сравнение агентов и пошаговая инструкция.
- Модели и цены — список доступных моделей.