Настройка Command Code через RouterAI
Command Code (cmd) — терминальный coding-агент, который по умолчанию работает через собственный сервис Command Code. Режим BYOK (Bring Your Own Key, сейчас в beta) позволяет подключить любой OpenAI- или Anthropic-совместимый endpoint со своим ключом. Запросы к такому провайдеру идут напрямую с вашей машины, минуя серверы Command Code. Через RouterAI вы получаете Claude, GPT, DeepSeek и GLM под одним ключом, без VPN и с оплатой в рублях.
Не путайте BYOK с Provider API самого Command Code: здесь вы подключаете RouterAI как внешнего провайдера, а не используете модели и тариф Command Code.
Требования
- Node.js 22 или новее (на Node 20 и ниже CLI не запускается).
- Аккаунт на RouterAI с положительным балансом и API-ключ из раздела «Ключи API».
- Аккаунт Command Code: при первом запуске CLI просит войти (
cmd login).
Установка
npm i -g command-code@latest
cmd --version
CLI доступен под именами command-code и cmd (в нативном Windows — cmdc). Войдите в аккаунт и запустите агента в папке проекта:
cmd login
cd my-project
cmd
Подключение к RouterAI
Провайдеров можно добавить двумя способами: через меню /connect или правкой файла ~/.commandcode/providers.json.
Через команду /connect
В сессии cmd введите /connect. Меню показывает Command Code, GitHub Copilot, OpenAI ChatGPT/Codex и пункт (BYOK) Add your own provider; уже добавленные провайдеры отображаются в этом же списке с числом моделей.

- Выберите (BYOK) Add your own provider. Откроется форма Add a provider.
-
provider id — короткое имя провайдера латиницей: введите
routerai(можно выбрать и из списка известных провайдеров). Оно станет именем записи вproviders.jsonи префиксом моделей (routerai/anthropic/claude-sonnet-5.5). - What does the endpoint speak? — тип протокола (клавиши ↑/↓ и Enter):
| Wire в меню | Значение в providers.json
|
Когда выбирать | Endpoint RouterAI |
|---|---|---|---|
| OpenAI-compatible (по умолчанию) | openai-completions |
модели через /chat/completions
|
https://routerai.ru/api/v1 |
| OpenAI Responses | openai-responses |
модели через /responses
|
https://routerai.ru/api/v1 |
| Anthropic wire | anthropic-messages |
Claude через Messages API | https://routerai.ru/api |
-
base URL — корень API из таблицы. Если вставить адрес с хвостом (
…/v1/chat/completions), CLI сам обрежет его до корня. -
key — ваш ключ RouterAI (
sk-xxxxxxxxxxxxxxxx). Вводимые символы скрыты звёздочками, ключ сохраняется в~/.commandcode/auth.json, а не вproviders.json.

-
models — меню запрашивает список у endpoint (
/models). Если автоматически получить его не удалось, введите точные id через запятую, напримерanthropic/claude-sonnet-5.5, openai/gpt-5.5, deepseek/deepseek-v4-flash, z-ai/glm-5.3, и нажмите Enter. Список можно поправить и позже вproviders.json.
После этого модели провайдера появятся в /model рядом с моделями Command Code.
Ручная правка providers.json
Файл ~/.commandcode/providers.json можно править руками, изменения подхватываются сразу (откройте /connect или /model заново). Пример с двумя провайдерами — OpenAI-совместимым и Anthropic:
{
"provider": {
"routerai": {
"name": "RouterAI",
"baseURL": "https://routerai.ru/api/v1",
"apiKey": "$ROUTERAI_API_KEY",
"models": {
"anthropic/claude-sonnet-5.5": { "name": "Claude Sonnet 5.5" },
"openai/gpt-5.5": { "name": "GPT-5.5" },
"deepseek/deepseek-v4-flash": { "name": "DeepSeek V4 Flash" },
"z-ai/glm-5.3": { "name": "GLM 5.3" }
}
},
"routerai-claude": {
"name": "RouterAI (Anthropic)",
"api": "anthropic-messages",
"baseURL": "https://routerai.ru/api",
"apiKey": "$ROUTERAI_API_KEY",
"models": {
"anthropic/claude-haiku-5.5": { "name": "Claude Haiku 5.5" }
}
}
}
}
Что важно:
-
baseURLиmodelsобязательны; без корректного URL или без единой модели провайдер пропускается. - В
apiKeyпишется ссылка на ключ, а не сам ключ:"$ROUTERAI_API_KEY"читает переменную окружения,"!команда"берёт ключ из вывода команды. Ключ, сохранённый через/connect, имеет приоритет над этим полем (в карточке провайдера это видно по надписи «overrides $ROUTERAI_API_KEY»). Сырой ключ в этом поле CLI отвергает. - Для
contextWindow(по умолчанию 200K),maxOutputиreasoningEfforts(low,medium,high,xhigh,max) задавайте значения из карточки модели в каталоге. - Один провайдер может обслуживать модели по разным протоколам: у отдельной модели можно указать
"api": "openai-responses"или"api": "anthropic-messages".
Экспортируйте ключ в окружение (или сохраните его через /connect):
export ROUTERAI_API_KEY=sk-xxxxxxxxxxxxxxxx
Выбор модели
Откройте /model и выберите модель в секции провайдера RouterAI (помечена (byok)): список можно отфильтровать, набрав «RouterAI». Id берите из каталога моделей.

| Модель | Для чего |
|---|---|
anthropic/claude-sonnet-5.5 |
основная модель для кода и агентных задач |
anthropic/claude-haiku-5.5 |
быстрые и дешёвые правки, объяснения |
openai/gpt-5.5 |
сложные задачи, рефакторинг |
deepseek/deepseek-v4-flash |
недорогой вариант для повседневной работы |
z-ai/glm-5.3 |
кодинг с большим контекстом |
Модель на один запуск можно задать флагом: cmd -m routerai/anthropic/claude-sonnet-5.5.
Проверка подключения
- В
/connectстрока провайдера должна быть с зелёной галочкой ✓ и числом моделей. - Выберите модель RouterAI в
/modelи отправьте короткий запрос, например «Кратко объясни, что делает invoices.js». В строке состояния вверху видна выбранная модель (routerai/anthropic/claude-sonnet-5.5 · routerai (byok)), а ниже — ответ.

- Можно проверить ключ отдельно:
curl -s https://routerai.ru/api/v1/models -H "Authorization: Bearer $ROUTERAI_API_KEY" | head -c 200
Решение проблем
-
Провайдера нет в
/model. Скорее всего,baseURLпропущен или неверен, либо вmodelsнет ни одной модели. Проверьте JSON и используйтеhttps://routerai.ru/api/v1(для Anthropic wire —https://routerai.ru/api). -
Провайдер пропущен из-за
api. Допустимы толькоopenai-completions,openai-responses,anthropic-messages; любое другое значение пропускает провайдер. -
Ошибка 401 («rejected your API key»). Ключ неверен: сохранённый через
/connectключ перекрывает переменнуюROUTERAI_API_KEY. Откройте/connect, выберите провайдера RouterAI и в карточке нажмитеr(заменить ключ) илиc(очистить сохранённый ключ, тогда снова действуетapiKeyизproviders.json). -
Ключ в
apiKeyотвергнут. В этом поле хранится только ссылка ($VAR,!команда); сам ключ вводится через/connect. -
Ошибка модели (404/400). Id не совпадает с каталогом. Сверьтесь с каталогом и обновите список клавишей
uв карточке провайдера. -
Лишний
/v1в Anthropic-провайдере. Для Anthropic wire указывайте кореньhttps://routerai.ru/api, CLI сам добавит/v1. -
«'routerai' is already declared in providers.json». Провайдер с таким id уже есть в файле: управляйте им из
/connect(карточка провайдера:enter— сохранить,r— заменить ключ,c— очистить,u— обновить модели,d— удалить) или правьте файл.
Что дальше
- Factory Droid через RouterAI — похожая настройка собственных моделей (BYOK).
- Kimi Code CLI через RouterAI и Codewhale через RouterAI — другие терминальные агенты.
- Каталог моделей RouterAI — id, контекст и цены.
- Документация: BYOK Providers.
Инструкция проверена на Command Code 1.88.5.