Как подключить Pi к Tokenator API
У Pi нет мастера настройки провайдера: свои провайдеры описываются одним JSON-файлом. Файл перечитывается каждый раз, когда вы открываете /model, поэтому перезапускать агента после правки не нужно.
Что получится в итоге
После настройки Pi перестаёт обращаться к своему стандартному провайдеру и отправляет все запросы в Tokenator. Оплата идёт токенами вашего ключа, а список доступных моделей задаётся ключом, а не инструментом.
| Инструмент | Pi |
| Протокол | OpenAI-совместимый |
| Base URL | https://api.tokenator.top/v1 |
| Ключ | sk-your-tokenator-key |
Требования и поддерживаемые ОС
- Windows 10/11, macOS 12+ или современный Linux с 64-битной архитектурой.
- Доступ в интернет к домену Tokenator по HTTPS.
- API-ключ Tokenator вида
sk-your-tokenator-key.
Нужны Node.js с npm и терминал. Файл со своими провайдерами создаётся вручную, редактор подойдёт любой.
Установка Pi
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
Флаг --ignore-scripts отключает lifecycle-скрипты зависимостей: для обычной установки Pi они не нужны. Запускается агент командой pi из каталога проекта.
Настройка Tokenator
- Зарегистрируйтесь в личном кабинете и купите пакет токенов.
- Ключ появится в кабинете сразу после подтверждения оплаты — копировать его нужно целиком, вместе с префиксом.
- В примерах ниже вместо настоящего ключа стоит плейсхолдер
sk-your-tokenator-key. Не публикуйте настоящий ключ в репозиториях и скриншотах.
Конфигурация
- Создайте файл
~/.pi/agent/models.json; на Windows это%USERPROFILE%\.pi\agent\models.json. - Опишите в нём провайдера: адрес, протокол, ключ и список моделей.
- Положите ключ в переменную окружения
TOKENATOR_API_KEY— в файле остаётся только ссылка на неё. - Запустите
piи откройте/model(или Ctrl+L): файл перечитывается при каждом открытии пикера.
{
"providers": {
"tokenator": {
"baseUrl": "https://api.tokenator.top/v1",
"api": "openai-completions",
"apiKey": "$TOKENATOR_API_KEY",
"models": [
{ "id": "gpt-5.5" }
]
}
}
}apiKey понимает три формы: $ПЕРЕМЕННАЯ или ${ПЕРЕМЕННАЯ} подставляет значение из окружения, строка с ! в начале выполняется как команда и берёт её вывод, всё остальное используется буквально. Поэтому TOKENATOR_API_KEY без доллара уйдёт на сервер как сам ключ — доллар обязателен. Если переменной в окружении нет, значение остаётся неразрешённым.Обязательный минимум у модели — только id. Остальные поля (name, contextWindow, maxTokens, input, cost) задают то, как модель выглядит и считается в интерфейсе, и заполняются по желанию.
Первый запрос
Перед запуском инструмента полезно убедиться, что ключ и модель рабочие. Один запрос curl отвечает на оба вопроса сразу.
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
piОткройте /model (или Ctrl+L) и выберите модель провайдера tokenator. Ctrl+S в пикере сохраняет подсвеченную модель как стартовую по умолчанию.
Успешный ответ означает, что ключ действителен, модель разрешена для этого ключа и апстрим доступен. Расход виден в кабинете сразу после запроса.
Переключение моделей
Каждая модель — элемент массива models в ~/.pi/agent/models.json. Файл перечитывается при открытии /model, поэтому добавленная модель появляется в пикере без перезапуска агента.
Примеры ID моделей, доступных сейчас:
claude-haiku-4-5claude-opus-4-6claude-opus-4-7claude-sonnet-4-6gpt-5.5deepseek-v4-pro
Актуальные ID и характеристики — в каталоге AI-моделей; там же видно, какие модели сейчас доступны. Выбрать между близкими вариантами помогает сравнение моделей.
Настройка reasoning
Рассуждающая модель помечается в models.json признаком "reasoning": true. Если сервер не принимает поле reasoning_effort, в блоке compat провайдера ставится "supportsReasoningEffort": false, а если он не понимает роль developer — "supportsDeveloperRole": false: тогда системный промпт уходит обычным system-сообщением. compat задаётся на уровне провайдера для всех моделей или на уровне конкретной модели.
Переключатель reasoning у ключа в личном кабинете работает независимо от инструмента, а размышление тарифицируется как output-токены.
Частые ошибки и способы исправления
| Симптом | Причина | Что сделать |
|---|---|---|
Модель загрузилась, но недоступна в /model | Для провайдера не настроена авторизация: без неё модели видны, но выбрать их нельзя. | Задайте apiKey в файле, сохраните ключ через /login или передайте --api-key при выборе модели. |
На сервер уходит строка TOKENATOR_API_KEY | Значение без $ считается литералом, а не именем переменной окружения. | Напишите $TOKENATOR_API_KEY и убедитесь, что переменная задана в окружении. |
| Файл не подхватился целиком | Синтаксическая ошибка в JSON. | Проверьте файл валидатором JSON и снова откройте /model — он перечитывается при каждом открытии пикера. |
401 или сообщение о недействительном ключе | Ключ скопирован с лишними пробелами, отозван, истёк или подставлен не в ту переменную окружения. | Проверьте ключ в личном кабинете и убедитесь, что переменная окружения действительно попала в тот процесс, где запускается инструмент. |
403 | Модель не входит в список разрешённых для этого ключа. | Посмотрите список моделей ключа в кабинете и выберите ID из каталога моделей. |
429 | Превышен лимит запросов в минуту или час либо лимит одновременных стримов для ключа. | Уменьшите параллелизм агента и повторите запрос с экспоненциальной задержкой. Лимиты ключа видны в кабинете. |
| Модель не найдена / не поддерживается | В запросе указан ID, которого нет в каталоге, либо алиас, недоступный этому ключу. | Скопируйте точный API ID со страницы модели — регистр и точки значимы. |
| Запрос завис или обрывается на длинном ответе | Клиент закрыл соединение по своему таймауту раньше, чем модель закончила генерацию. | Включите потоковый режим (stream: true) и увеличьте таймаут клиента: у длинных reasoning-ответов первый токен может прийти не сразу. |
| Ошибка вида «Request error» без деталей | Апстрим-провайдер вернул ошибку. Её текст не передаётся клиенту. | Повторите запрос: Tokenator сам переключается на следующего провайдера модели. Если ошибка стабильна — напишите в поддержку. |
Частые вопросы
Нужна ли подписка Pi или отдельный аккаунт провайдера?
Нет. Инструмент обращается к Tokenator, а оплата идёт токенами вашего ключа Tokenator.
Где посмотреть расход после подключения?
В личном кабинете: там видны запросы, израсходованные токены и остаток лимита ключа.
Можно ли использовать один ключ в нескольких инструментах?
Да. Ограничение — лимиты самого ключа: запросы в минуту и час, а также количество одновременных стримов.
Что будет, если токены закончатся посреди сессии?
Запросы начнут возвращать ошибку. Лимит восстанавливается пополнением того же ключа — переустанавливать инструмент не нужно.
Как вернуться к прежнему провайдеру?
Уберите добавленные настройки — переменные окружения или блок провайдера в конфиге. Инструмент вернётся к своему поведению по умолчанию.
Где почитать про сам формат API?
В документации Tokenator API и на странице про OpenAI-compatible API.