Вайб-кодинг в Pi: Настройка pi coding agent через RouterAI (Claude, GPT-6, DeepSeek, GLM)
Pi (pi coding agent)
Pi — минималистичный open-source (MIT) agent harness для работы в терминале: пакет @earendil-works/pi-coding-agent, репозиторий earendil-works/pi. Из коробки Pi читает и правит файлы, запускает команды и ведёт сессии, а всё остальное — расширения, skills, prompt templates и темы — вы подключаете сами или ставите готовыми Pi-пакетами. Намеренно нет sub-agents и plan mode: их предлагается собрать под себя.
Pi можно запускать интерактивно, в режимах print и json для автоматизации, через RPC или встраивать как TypeScript SDK. Через RouterAI Pi получает доступ к моделям Claude, GPT, DeepSeek, GLM и другим из каталога по одному ключу: работа из России без VPN, оплата в рублях, один баланс на все модели.
Требования
- macOS, Linux или Windows
- Node.js 22.19 или новее (установщики Pi могут поставить его сами)
- API-ключ из личного кабинета
Установка
Установщик для macOS и Linux — он фиксирует версии зависимостей, а обновляется Pi командой pi update:
curl -fsSL https://pi.dev/install.sh | sh
Windows (PowerShell):
powershell -c "irm https://pi.dev/install.ps1 | iex"
Или через npm (транзитивные зависимости при этом не фиксируются):
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
Проверьте установку:
pi --version

Подключение к RouterAI
Pi не знает про RouterAI «из коробки», но умеет работать с любым OpenAI-совместимым или Anthropic-совместимым endpoint. Он описывается в файле models.json в каталоге конфигурации Pi (по умолчанию ~/.pi/agent, путь меняется переменной PI_CODING_AGENT_DIR).
-
Сохраните ключ в переменную окружения, например в
~/.bashrcили~/.zshrc, и перезапустите терминал:export ROUTERAI_API_KEY="sk-xxxxxxxxxxxxxxxx"Замените значение на ключ из личного кабинета.
-
Создайте файл
~/.pi/agent/models.json:{ "$schema": "https://pi.dev/schemas/models.schema.json", "providers": { "routerai": { "name": "RouterAI", "baseUrl": "https://routerai.ru/api/v1", "api": "openai-completions", "apiKey": "$ROUTERAI_API_KEY", "models": [ { "id": "anthropic/claude-sonnet-5.5", "name": "Claude Sonnet 5.5", "reasoning": true, "input": ["text", "image"], "contextWindow": 1000000, "maxTokens": 32000 }, { "id": "deepseek/deepseek-v4.1-flash", "name": "DeepSeek V4.1 Flash", "contextWindow": 1048576, "maxTokens": 32000 } ] } } } -
Запустите Pi в каталоге проекта и откройте выбор модели командой
/model. Pi перечитываетmodels.jsonпри каждом открытии/model, перезапуск не нужен.

Что означают поля:
| Поле | Значение для RouterAI |
|---|---|
baseUrl |
https://routerai.ru/api/v1 — без /chat/completions на конце |
api |
openai-completions (Chat Completions); для Claude через Messages API — anthropic-messages
|
apiKey |
$ИМЯ_ПЕРЕМЕННОЙ — ключ из окружения; можно и литерал, и !команда, но хранить ключ открытым текстом в файле не стоит |
models[].id |
id модели из каталога RouterAI, например anthropic/claude-sonnet-5.5
|
contextWindow, maxTokens
|
по умолчанию Pi считает 128 000 и 16 384 токенов — для моделей с большим контекстом укажите значения явно |
reasoning, input
|
true, если модель поддерживает thinking; ["text", "image"] — если принимает картинки |
Claude через Anthropic Messages API
Для моделей anthropic/* можно подключить нативный протокол Anthropic. Добавьте в providers второй провайдер; обратите внимание, что здесь Base URL без /v1:
"routerai-claude": {
"name": "RouterAI (Anthropic API)",
"baseUrl": "https://routerai.ru/api",
"api": "anthropic-messages",
"apiKey": "$ROUTERAI_API_KEY",
"models": [
{ "id": "anthropic/claude-sonnet-5.5", "name": "Claude Sonnet 5.5 (Messages)", "reasoning": true, "input": ["text", "image"], "contextWindow": 1000000, "maxTokens": 32000 }
]
}
Выбор модели
Команда /model открывает поиск по доступным моделям; Ctrl+S на модели сохраняет её как модель по умолчанию для новых сессий, Ctrl+P переключает модели по кругу, /thinking задаёт уровень рассуждений. Модель можно задать и при запуске: pi --model routerai/deepseek/deepseek-v4.1-flash. Список подключённых моделей — pi --list-models routerai.

| Модель | Для чего |
|---|---|
anthropic/claude-sonnet-5.5 |
основная модель для кода и многошаговых задач агента |
anthropic/claude-haiku-5.5 |
быстрые и недорогие правки, мелкие вопросы |
openai/gpt-6-sol |
альтернатива Claude для сложных задач, большой контекст |
deepseek/deepseek-v4.1-flash |
дешёвая модель для рутинной работы и экспериментов |
z-ai/glm-5.3 |
модель семейства GLM с контекстом 1M токенов — ещё один вариант для кода |
Актуальные цены и список — в каталоге RouterAI. Любой другой id из каталога добавляется в models так же, как в примере выше.
Проверка подключения
Быстрый способ — разовый запрос в режиме print (результат печатается в stdout, Pi завершается):
pi --model routerai/deepseek/deepseek-v4.1-flash --no-session -p "Ответь одним словом: привет"
Если ответ пришёл — endpoint, ключ и модель настроены верно. Затем проверьте работу с инструментами в интерактивном режиме:
cd /path/to/project
pi
Дайте задачу, например: «Создай файл hello.py, который печатает Hello, RouterAI!, и запусти его». Pi покажет каждый вызов write и bash и итоговый вывод.

Для проверки endpoint независимо от Pi:
curl https://routerai.ru/api/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $ROUTERAI_API_KEY" \
-d '{"model": "deepseek/deepseek-v4.1-flash", "messages": [{"role": "user", "content": "Привет!"}]}'
Решение проблем
401 Unauthorized
Ключ не принят. Проверьте, что echo $ROUTERAI_API_KEY в том же терминале, где запускается pi, выводит ваш ключ — переменная должна быть в окружении процесса Pi. Если переменной нет, Pi предложит выполнить /login. Ключ можно разово передать флагом --api-key, но только вместе с --model.
404 page not found
В baseUrl указан лишний путь. Для openai-completions нужен ровно https://routerai.ru/api/v1, Pi сам добавит /chat/completions. Для anthropic-messages — https://routerai.ru/api без /v1.
400 Model not found / модель не появляется в /model
Проверьте, что id в models.json совпадает с id из каталога (включая префикс anthropic/, openai/ и т. д.). В --model провайдер указывается первым: routerai/anthropic/claude-sonnet-5.5. Модели из models.json видны в /model только тогда, когда Pi может получить ключ — проверьте переменную окружения.
Модель отвечает, но не правит файлы
Pi — агент, ему нужен tool calling (вызов функций). Если выбранная модель его не поддерживает, она сможет только отвечать текстом. Для агентной работы берите модели из таблицы выше; поддержку конкретной модели смотрите в каталоге.
Контекст «обрезается» раньше времени
Для кастомных моделей Pi по умолчанию считает контекст 128 000 токенов и 16 384 токенов ответа. Задайте contextWindow и maxTokens по данным каталога.
VS Code и OpenClaw
У Pi есть сторонние обёртки для VS Code. Например, Pi Coding Agent UI — форк frostime/pi-vscode-ui — запускает установленный pi и использует ту же конфигурацию ~/.pi/agent, поэтому провайдер RouterAI из models.json подхватится без дополнительной настройки. Это неофициальные расширения: проверяйте их актуальность перед установкой.
Pi используется и как основа других инструментов: в README проекта в качестве примера интеграции указан OpenClaw. Как настроить OpenClaw с RouterAI, web-поиском и Telegram, — в статье OpenClaw через RouterAI.
Что дальше
- Каталог моделей — выберите модель под задачу
- Вайб-кодинг в Claude Code и в OpenCode — другие CLI-агенты с RouterAI
- Аутентификация — управление API-ключами и безопасность
- Документация Pi: выбор модели и models.json — расширенные настройки провайдера