opencode в России: настройка своего провайдераAPI для ИИ-агентов и кодинга: подключение из России

opencode в России: настройка своего провайдера

Коротко: opencode — это ИИ-агент для терминала, который не привязан к одному провайдеру. В файле opencode.json можно объявить любой OpenAI-совместимый сервис, указать его baseURL и ключ — и работать дальше как обычно. Ниже — готовый конфиг и разбор ошибок, на которых спотыкаются чаще всего.

Что такое opencode

opencode — консольный агент для написания кода: он читает проект, правит файлы, запускает команды и умеет работать headless (без интерфейса), что удобно для CI. От расширений вроде Cline он отличается тем, что живёт в терминале и не требует VS Code.

Ключевое для нас свойство — свои провайдеры. opencode подключает их через пакет @ai-sdk/openai-compatible, который рассчитан ровно на эндпоинт /v1/chat/completions. Поэтому любой сервис с OpenAI-совместимым API добавляется в конфиг руками.

Шаг 1. Установка

Через npm (нужен Node.js 20 и новее):

npm install -g opencode-ai

Проверьте, что бинарник на месте:

opencode --version

Шаг 2. Получите base_url и ключ

Нужны две вещи, и обе выдаются одной кнопкой прямо здесь:

  • Base URL вида https://twelver.ru/api/ai/<config-id>/v1 — здесь config-id это ваш слот конфигурации, в котором хранится выбранная серия моделей;
  • API-ключ вида sk-… — показывается один раз, скопируйте сразу.

Прямо на странице

Получите доступ и готовый opencode.json

Кнопка создаёт конфиг и ключ — регистрация и карта не нужны. В блоке ниже ваш config-id и ключ уже подставлены, останется скопировать. Там же можно сразу отправить первый запрос и убедиться, что доступ живой.

Нажмите — и получите base_url и API-ключ.

Регистрация и карта не нужны.

Бесплатно. Ключ появится прямо здесь.

Скопированный конфиг рабочий как есть. Но ключ в нём лежит открытым текстом, поэтому в проекте его лучше вынести в переменную окружения — так он не уедет в git:

Шаблон — так работать не будет~/.zshrc или ~/.bashrcПодсвеченное — заглушки. Их выдаёт кнопка выше: пара секунд, без регистрации и карты.
export TWELVER_API_KEY="sk-<ваш-ключ>"

Шаг 3. Пропишите провайдера в opencode.json

Глобальный конфиг лежит в ~/.config/opencode/opencode.json, конфиг проекта — в opencode.json в корне репозитория. Настройки проекта перекрывают глобальные, так что под конкретный проект можно поставить другую модель.

Вариант из виджета выше объявляет одну модель — auto. Ниже тот же конфиг, но развёрнутый: ключ вынесен в переменную окружения, объявлено несколько серий и добавлен small_model.

Шаблон — так работать не будетopencode.jsonПодсвеченное — заглушки. Их выдаёт кнопка выше: пара секунд, без регистрации и карты. Синее — не заглушка: {env:…} подставляет значение из переменной окружения. Оставьте как есть.
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "twelver": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Twelver",
      "options": {
        "baseURL": "https://twelver.ru/api/ai/<ваш-config-id>/v1",
        "apiKey": "{env:TWELVER_API_KEY}"
      },
      "models": {
        "auto": { "name": "Qwen3.7-Plus (auto)" },
        "qwen-flash": { "name": "Qwen3.8-Flash" },
        "zai": { "name": "GLM-5.3" },
        "grok": { "name": "Grok 4.6" }
      }
    }
  },
  "model": "twelver/auto",
  "small_model": "twelver/qwen-flash"
}

Два поля внизу решают, сколько вы потратите. model — основная модель, которой агент пишет код. small_model — дешёвая модель для служебных задач (заголовки сессий, короткие вспомогательные запросы). Если её не задать, opencode использует основную модель и для этих мелких запросов.

Частая ошибка: лишний слэш

В baseURL не должно быть завершающего слэша. Адрес оканчивается на /v1, а не на /v1/ — иначе opencode соберёт путь с двойным слэшем и получит 404.

Если конфиг не хочется собирать руками

Попросите ИИ настроить opencode за вас

Откроется чат с уже набранным вопросом — останется нажать «отправить». API-интегратор выдаст ваш base_url и ключ, соберёт готовый opencode.json под выбранную серию и посчитает, во сколько обойдутся запросы. Туда же можно вставить текст ошибки, если запуск не удался.

Шаг 4. Запуск

cd ваш-проект
opencode

Внутри сессии модель переключается командой /models — там появится провайдер twelver с моделями, которые вы объявили в конфиге. Правила для агента (стиль кода, что трогать нельзя) кладутся в файл AGENTS.md в корне проекта.

Какую серию выбрать

Названия моделей в конфиге — это серии, а не конкретные версии. Серия сама указывает на актуальную модель, поэтому конфиг не придётся править после обновления.

СерияМодельВход / выход, ₽ за 1 млнКогда брать
qwen-flashQwen3.8-Flash15 / 47small_model — самый дешёвый вход, но не для правки кода
zai-flashGLM-5.3-Flash15 / 50small_model, альтернатива qwen-flash
gptGPT-5.6 Luna20 / 120Дешёвый вход при заметно более сильной модели, чем flash-серии
auto / qwenQwen3.7-Plus40 / 160Рабочая лошадка на каждый день — основная модель агента
deepseek-flashDeepSeek V4 Flash44 / 132Дешёвые массовые запросы
minimaxMiniMax M360 / 240Простые правки, длинный контекст
xiaomiMiMo V2.5 Pro100 / 300Когда «auto» не дотягивает
zaiGLM-5.3140 / 440Рефакторинг, длинные цепочки правок
grokGrok 4.6200 / 600Сложные задачи и разбор архитектуры
qwen-maxQwen3.8-Max200 / 600Сложные задачи, 1 млн токенов контекста
deepseekDeepSeek V4 Pro240 / 480Сильные рассуждения; выход дешевле, чем у grok
gpt-maxGPT-6 Astra1000 / 5000Точечно, когда всё остальное не справилось
Ставки на 06.09.2026, проверяйте актуальные на /l/ru/twelver-coding-api.

Чего в этом API нет

Через Twelver API отдаются только перечисленные 13 серий — GPT, DeepSeek, Qwen, Grok, GLM, MiMo, MiniMax. Не отдаются Claude и Gemini: если нужен конкретно один из них, берите провайдера, у которого он есть. Схема настройки opencode при этом не изменится: тот же блок provider, другой baseURL.

Как не переплачивать

  • Задайте small_model. Служебные запросы идут постоянно, и на дорогой модели они незаметно съедают заметную долю счёта.
  • Новая сессия под новую задачу. Контекст отправляется целиком при каждом запросе, поэтому длинная сессия дорожает с каждым сообщением.
  • Сужайте контекст. Чем меньше файлов агент тянет в запрос, тем дешевле выходит вход — а именно вход доминирует в счёте.
  • Начинайте с дешёвой серии. Поднимать класс модели стоит только там, где качества действительно не хватило.

Если не работает

СимптомПричинаЧто делать
401 / UnauthorizedКлюч не подставился из окруженияПроверьте, что переменная экспортирована в той же оболочке: echo $TWELVER_API_KEY
404 на запросеЛишний слэш или неверный config-id в baseURLАдрес должен оканчиваться на /v1 без слэша, config-id — из вашей конфигурации
Model not foundВ конфиге указана серия, которой нетСверьте название серии с таблицей выше; список отдаёт GET /v1/models
Провайдера нет в /modelsopencode не подхватил конфигПроверьте, что JSON валиден и файл лежит в ~/.config/opencode/ либо в корне проекта
Ответ обрываетсяУпёрлись в окно контекстаНачните новую сессию или возьмите серию с большим контекстом

Частые вопросы

Как подключить opencode к своему API?
В файле opencode.json объявите блок provider с пакетом @ai-sdk/openai-compatible, укажите baseURL вашего провайдера и ключ через {env:ПЕРЕМЕННАЯ}, затем задайте model в формате провайдер/модель. Конфиг читается при старте, так что после правки файла перезапустите opencode.
Сколько стоит opencode?
Сам opencode бесплатный и с открытым кодом — платить нужно только за токены провайдера, которого вы к нему подключили. У Twelver самый дешёвый вход — 15 ₽ за 1 млн токенов (серия qwen-flash); для основной модели агента обычно берут auto — 40 / 160 ₽ за 1 млн вход / выход. Оплата в рублях.
Работает ли opencode в России?
Да, сам инструмент ставится через npm и никаких региональных ограничений не имеет. Ограничение обычно упирается в провайдера моделей: у зарубежных сервисов не проходит оплата российской картой. Решается это подключением провайдера с рублёвой оплатой — схема настройки описана выше.
Что такое small_model в opencode?
Это отдельная дешёвая модель для служебных задач — например, генерации заголовков сессий. Если её не указать, opencode использует для них основную модель, что заметно поднимает счёт при активной работе.
Чем opencode отличается от Cline?
opencode работает в терминале и умеет headless-режим для CI, а Cline — это расширение для VS Code с графическим интерфейсом. Оба подключаются к любому OpenAI-совместимому провайдеру, так что выбор сводится к тому, где вам удобнее работать.
Где хранится конфиг opencode?
Глобальный — в ~/.config/opencode/opencode.json, проектный — в opencode.json в корне репозитория. Проектный перекрывает глобальный, поэтому под отдельный проект можно назначить свою модель.

Попробуйте сами

Получите base_url и ключ прямо сейчас

Кнопка на странице API выдаёт адрес и ключ сразу — без регистрации и без привязки карты.

Получить API-ключ
Оцените свой опыт