Как подключить OpenCode к Tokenator API

OpenCode позволяет объявить собственного провайдера в конфиге. Мы описываем Tokenator как OpenAI-совместимый провайдер и перечисляем модели, которые хотим видеть в переключателе.

Что получится в итоге

После настройки OpenCode перестаёт обращаться к своему стандартному провайдеру и отправляет все запросы в Tokenator. Оплата идёт токенами вашего ключа, а список доступных моделей задаётся ключом, а не инструментом.

ИнструментOpenCode
ПротоколOpenAI-совместимый
Base URLhttps://api.tokenator.top/v1
Ключsk-your-tokenator-key

Требования и поддерживаемые ОС

  • Windows 10/11, macOS 12+ или современный Linux с 64-битной архитектурой.
  • Доступ в интернет к домену Tokenator по HTTPS.
  • API-ключ Tokenator вида sk-your-tokenator-key.

OpenCode запускается в терминале; конфиг — обычный JSON-файл, редактируется любым редактором.

Установка OpenCode

Установка
npm install -g opencode-ai

Проверьте установку командой opencode --version.

Настройка Tokenator

  1. Зарегистрируйтесь в личном кабинете и купите пакет токенов.
  2. Ключ появится в кабинете сразу после подтверждения оплаты — копировать его нужно целиком, вместе с префиксом.
  3. В примерах ниже вместо настоящего ключа стоит плейсхолдер sk-your-tokenator-key. Не публикуйте настоящий ключ в репозиториях и скриншотах.

Конфигурация для Windows

%USERPROFILE%\.config\opencode\opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "tokenator": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Tokenator",
      "options": {
        "baseURL": "https://api.tokenator.top/v1",
        "apiKey": "{env:TOKENATOR_API_KEY}"
      },
      "models": {
        "gpt-5.5": { "name": "gpt-5.5" }
      }
    }
  }
}
PowerShell
$env:TOKENATOR_API_KEY = "sk-your-tokenator-key"
opencode

Пакет @ai-sdk/openai-compatible работает с эндпоинтом /v1/chat/completions. Ключ лучше не писать в файл, а подставлять из переменной окружения синтаксисом {env:…}. Каждая модель, которую вы хотите видеть в переключателе, перечисляется в models.

Конфигурация для macOS и Linux

~/.config/opencode/opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "tokenator": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Tokenator",
      "options": {
        "baseURL": "https://api.tokenator.top/v1",
        "apiKey": "{env:TOKENATOR_API_KEY}"
      },
      "models": {
        "gpt-5.5": { "name": "gpt-5.5" }
      }
    }
  }
}
bash / zsh
export TOKENATOR_API_KEY="sk-your-tokenator-key"
opencode

Пакет @ai-sdk/openai-compatible работает с эндпоинтом /v1/chat/completions. Ключ лучше не писать в файл, а подставлять из переменной окружения синтаксисом {env:…}. Каждая модель, которую вы хотите видеть в переключателе, перечисляется в models.

Первый запрос

Перед запуском инструмента полезно убедиться, что ключ и модель рабочие. Один запрос curl отвечает на оба вопроса сразу.

Проверка OpenAI-эндпоинта
curl https://api.tokenator.top/v1/chat/completions \
  -H "Authorization: Bearer sk-your-tokenator-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.5",
    "messages": [{"role": "user", "content": "ping"}]
  }'
Запуск агента
cd /path/to/project
opencode

Успешный ответ означает, что ключ действителен, модель разрешена для этого ключа и апстрим доступен. Расход виден в кабинете сразу после запроса.

Переключение моделей

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

Примеры ID моделей, доступных сейчас:

  • claude-haiku-4-5
  • claude-opus-4-6
  • claude-opus-4-7
  • claude-sonnet-4-6
  • gpt-5.5
  • deepseek-v4-flash

Актуальные ID и характеристики — в каталоге AI-моделей; там же видно, какие модели сейчас доступны. Выбрать между близкими вариантами помогает сравнение моделей.

Настройка reasoning

Если инструмент умеет передавать поле reasoning_effort в запросе, Tokenator пробрасывает его в апстрим без изменений. Дополнительно у самого ключа есть переключатель reasoning в личном кабинете — он действует независимо от инструмента.

Частые ошибки и способы исправления

СимптомПричинаЧто сделать
Модель не появилась в спискеМодель не перечислена в блоке models либо в JSON есть синтаксическая ошибка.Проверьте файл валидатором JSON и добавьте ID модели в models.
401 или сообщение о недействительном ключеКлюч скопирован с лишними пробелами, отозван, истёк или подставлен не в ту переменную окружения.Проверьте ключ в личном кабинете и убедитесь, что переменная окружения действительно попала в тот процесс, где запускается инструмент.
403Модель не входит в список разрешённых для этого ключа.Посмотрите список моделей ключа в кабинете и выберите ID из каталога моделей.
429Превышен лимит запросов в минуту или час либо лимит одновременных стримов для ключа.Уменьшите параллелизм агента и повторите запрос с экспоненциальной задержкой. Лимиты ключа видны в кабинете.
Модель не найдена / не поддерживаетсяВ запросе указан ID, которого нет в каталоге, либо алиас, недоступный этому ключу.Скопируйте точный API ID со страницы модели — регистр и точки значимы.
Запрос завис или обрывается на длинном ответеКлиент закрыл соединение по своему таймауту раньше, чем модель закончила генерацию.Включите потоковый режим (stream: true) и увеличьте таймаут клиента: у длинных reasoning-ответов первый токен может прийти не сразу.
Ошибка вида «Request error» без деталейАпстрим-провайдер вернул ошибку. Её текст не передаётся клиенту.Повторите запрос: Tokenator сам переключается на следующего провайдера модели. Если ошибка стабильна — напишите в поддержку.

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

Нужна ли подписка OpenCode или отдельный аккаунт провайдера?

Нет. Инструмент обращается к Tokenator, а оплата идёт токенами вашего ключа Tokenator.

Где посмотреть расход после подключения?

В личном кабинете: там видны запросы, израсходованные токены и остаток лимита ключа.

Можно ли использовать один ключ в нескольких инструментах?

Да. Ограничение — лимиты самого ключа: запросы в минуту и час, а также количество одновременных стримов.

Что будет, если токены закончатся посреди сессии?

Запросы начнут возвращать ошибку. Лимит восстанавливается пополнением того же ключа — переустанавливать инструмент не нужно.

Как вернуться к прежнему провайдеру?

Уберите добавленные настройки — переменные окружения или блок провайдера в конфиге. Инструмент вернётся к своему поведению по умолчанию.

Где почитать про сам формат API?

В документации Tokenator API и на странице про OpenAI-compatible API.