Oh My Pi (omp): настройка coding-агента через RouterAI (Claude, GPT, DeepSeek)
Oh My Pi (omp)
Oh My Pi, он же omp, — open-source (MIT) coding-агент для терминала от Stencil Labs, репозиторий can1357/oh-my-pi. Разработчики описывают его как «coding agent with the IDE wired in»: агент работает с LSP, умеет подключать отладчик (DAP), запускать субагентов в изолированных worktree, делать code review и коммиты. Проект активно развивается: на момент написания последний релиз — v18.12.6.
omp — форк Pi Марио Цехнера. Если вы уже настраивали минималистичный Pi по статье Вайб-кодинг в Pi, логика та же: провайдер описывается в конфигурационном файле, но у omp это models.yml, а не models.json, и в комплекте больше встроенных инструментов.
Через RouterAI omp получает Claude, GPT, DeepSeek, Gemini и другие модели из каталога по одному ключу: работа из России без VPN, оплата в рублях, один баланс на все модели.
Требования
- macOS, Linux или Windows
- Bun 1.3.14 или новее — только для установки через
bun install -g; установщикomp.shбез подходящего Bun скачивает готовый бинарник - API-ключ из личного кабинета
Установка
macOS и Linux:
curl -fsSL https://omp.sh/install | sh
Windows (PowerShell):
irm https://omp.sh/install.ps1 | iex
Альтернативы — Homebrew или Bun:
brew install can1357/tap/omp
bun install -g @oh-my-pi/pi-coding-agent
Проверьте установку командой omp --version. Если после установщика команда не находится, добавьте ~/.local/bin в PATH.
Подключение к RouterAI
omp умеет работать с любым OpenAI- и Anthropic-совместимым endpoint. Он описывается в файле ~/.omp/agent/models.yml. Каждый ключ под providers — это имя провайдера, которое вы выбираете сами; оно же становится первой частью селектора модели провайдер/id-модели.
-
Сохраните ключ в переменную окружения (например, в
~/.bashrcили~/.zshrc) и перезапустите терминал:export ROUTERAI_API_KEY="sk-xxxxxxxxxxxxxxxx"Замените значение на ключ из личного кабинета. Вместо профиля оболочки можно положить строку
ROUTERAI_API_KEY=...в файл~/.omp/agent/.env— omp читает его при запуске. -
Создайте файл
~/.omp/agent/models.yml:providers: routerai: baseUrl: https://routerai.ru/api/v1 api: openai-completions apiKey: ROUTERAI_API_KEY discovery: type: openai-models-list routerai-anthropic: 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) contextWindow: 1000000 maxTokens: 32000
-
Проверьте, что omp загрузил файл и видит модели:
omp models routerai omp models routerai-anthropic
Что означают поля:
| Поле | Значение для RouterAI |
|---|---|
baseUrl |
https://routerai.ru/api/v1 для openai-completions; https://routerai.ru/api (без /v1) для anthropic-messages
|
api |
openai-completions — Chat Completions; anthropic-messages — Anthropic Messages API. Есть и openai-responses, если нужен Responses API |
apiKey |
имя переменной окружения. Если переменной с таким именем нет, omp использует значение как литеральный ключ; значение с ! в начале запускается как команда и берёт ключ из её вывода |
discovery.type |
openai-models-list — omp сам запрашивает список моделей у GET /v1/models, вручную перечислять их не нужно; omp models refresh routerai принудительно обновляет список |
models[].id |
точный id модели из каталога RouterAI, например anthropic/claude-sonnet-5.5
|
contextWindow, maxTokens
|
для вручную описанных моделей omp по умолчанию считает 128 000 токенов контекста и 16 384 токена ответа — для моделей с большим контекстом задайте значения из каталога |
Если нужен небольшой фиксированный набор, а не весь каталог, вместо discovery перечислите модели списком models — как для routerai-anthropic выше.
Выбор модели по умолчанию
При первом запуске omp показывает мастер настройки (Setup). Первый шаг — вход через аккаунты провайдеров — для RouterAI не нужен, его можно пропустить клавишей Esc. На втором шаге «Choose your default model» найдите модель провайдера routerai, например routerai/anthropic/claude-sonnet-5.5, и нажмите Enter.

Остальные шаги мастера (вид значков в терминале и прочее) можно пройти клавишей Enter. После них откроется основной экран: в строке состояния видны модель и текущий каталог.

Модель по умолчанию можно задать и без мастера — в ~/.omp/agent/config.yml:
modelRoles:
default: routerai/anthropic/claude-sonnet-5.5
smol: routerai/deepseek/deepseek-v4-flash
Роль default — основная модель сессии, smol — лёгкие и быстрые задачи (например, субагенты), slow — сложные рассуждения, plan — режим планирования. Во время сессии модель меняет команда /model, а при запуске — флаг --model.
Выбор модели
Все модели ниже есть в каталоге RouterAI; актуальные цены смотрите там же.
| Модель | Для чего |
|---|---|
anthropic/claude-sonnet-5.5 |
основная модель для кода и многошаговых задач агента (default) |
anthropic/claude-haiku-5.5 |
быстрые и недорогие правки, мелкие вопросы |
anthropic/claude-opus-5.5 |
сложные задачи, архитектура, ревью (slow, plan) |
openai/gpt-5.5 |
альтернатива Claude, контекст около 1M токенов |
deepseek/deepseek-v4-flash |
дешёвая модель для рутины и субагентов (smol) |
Для агентной работы нужна модель с поддержкой tool calling — иначе она сможет только отвечать текстом. Поддержку конкретной модели смотрите в каталоге.
Проверка подключения
Быстрый способ — разовый запрос в неинтерактивном режиме (-p): omp напечатает ответ и завершится.
omp -p --model routerai/anthropic/claude-sonnet-5.5 "Ответь одним словом: привет"
Если ответ пришёл — endpoint, ключ и модель настроены верно. Так же проверьте протокол Anthropic: omp -p --model routerai-anthropic/anthropic/claude-sonnet-5.5 "Привет".
Затем запустите omp в каталоге проекта и дайте задачу, например: «В invoices.js добавь функцию averageInvoice(invoices) и кратко опиши, что изменил». omp сам прочитает файл, внесёт правку, проверит её и покажет итог.

Решение проблем
401 Unauthorized
Ключ не принят. Проверьте, что echo $ROUTERAI_API_KEY в том же терминале выводит ваш ключ. Если в apiKey указано имя переменной, которой нет в окружении, omp не сообщает об этом, а отправляет само имя как литеральный ключ — отсюда 401. Ключ можно разово передать флагом --api-key.
Model not found
Сообщение вида Model "routerai/…" not found значит, что omp не знает такую модель. Проверьте id командой omp models find <часть-названия>: id должен совпадать с каталогом, включая префикс anthropic/, openai/ и т. д., а в --model провайдер идёт первым: routerai/anthropic/claude-sonnet-5.5. Модели не загружаются и при неверном baseUrl — для openai-completions нужен ровно https://routerai.ru/api/v1, для anthropic-messages — https://routerai.ru/api.
models.yml validation failed
Если в файле ошибка схемы (например, models — не список), omp пишет models.yml validation failed — custom providers disabled и указывает поле, а модели RouterAI пропадают. Исправьте поле и снова выполните omp models routerai. Корневой объект файла принимает только ключ providers.
Контекст «обрезается» раньше времени
Для вручную описанных моделей omp по умолчанию считает контекст 128 000 токенов и ответ 16 384 токена. Задайте contextWindow и maxTokens по данным каталога.
omp setup requires an interactive TTY
Мастер настройки работает только в интерактивном терминале. В CI и скриптах пропустите его: пропишите modelRoles в config.yml и передавайте --model.
Pi и Oh My Pi: в чём разница
| Pi | Oh My Pi | |
|---|---|---|
| Файл провайдеров | ~/.pi/agent/models.json |
~/.omp/agent/models.yml |
| Ключ из окружения | "apiKey": "$ROUTERAI_API_KEY" |
apiKey: ROUTERAI_API_KEY (имя без $) |
| Субагенты и plan mode | намеренно нет, собираются расширениями | есть из коробки |
| Встроенный упор | минимализм | LSP, отладчик, review, коммиты, память |
Протоколы и Base URL для RouterAI одинаковы. Если Pi уже настроен, перенесите провайдера в models.yml по примеру выше.
Что дальше
- Каталог моделей — выберите модель под задачу
- Вайб-кодинг в Pi — исходный Pi с RouterAI
- Вайб-кодинг в Claude Code — другой CLI-агент
- Аутентификация — управление API-ключами и безопасность
- Документация omp: Custom models & providers — расширенные настройки провайдера