# Kimi Code CLI через RouterAI: настройка config.toml для Kimi K3, Claude и DeepSeek

## Kimi Code CLI

Kimi Code CLI — терминальный coding-агент от Moonshot AI (репозиторий [MoonshotAI/kimi-code](https://github.com/MoonshotAI/kimi-code), npm-пакет `@moonshot-ai/kimi-code`). Он читает и правит файлы, запускает команды, подключает MCP-серверы и ведёт сессии в интерактивном TUI. Команда запуска — `kimi`.

Это новое поколение инструмента, а не старый Python-проект [kimi-cli](https://github.com/MoonshotAI/kimi-cli): тот репозиторий заархивирован и больше не обновляется. Новый CLI переписан на TypeScript, поставляется как готовый бинарник (Node.js для скрипта установки не нужен) и хранит данные в `~/.kimi-code/`, а не в `~/.kimi/`. Если у вас остались данные старой версии, при первом запуске `kimi` предложит их перенести, либо выполните `kimi migrate`.

RouterAI подключается как обычный провайдер в `config.toml`: по OpenAI-совместимому протоколу или по Anthropic Messages API. В одном агенте доступны Kimi K3, Kimi K3.1 Pro, Claude, DeepSeek и другие модели из [каталога](/models), работа из России без VPN и оплата в рублях.

## Требования

- macOS, Linux или Windows (на Windows нужен Git for Windows: CLI использует Git Bash как оболочку)
- Node.js 22.19.0 или новее — только если ставите через npm; установочному скрипту Node не нужен
- API-ключ из [личного кабинета](/settings/keys)

## Установка

Рекомендуемый способ — официальный скрипт, он скачивает последний релиз, проверяет контрольную сумму и кладёт `kimi` в `PATH`.

```bash
# macOS / Linux
curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash
```

```powershell
# Windows (PowerShell)
irm https://code.kimi.com/kimi-code/install.ps1 | iex
```

Альтернатива — npm (нужен Node.js 22.19.0+):

```bash
npm install -g @moonshot-ai/kimi-code
kimi --version
```

Команда `kimi --version` выводит номер версии, на момент написания — `2.5.2`. Обновление — `kimi upgrade`.

## Подключение к RouterAI

Kimi Code CLI читает ключи провайдеров только из `~/.kimi-code/config.toml`. Просто `export OPENAI_API_KEY=...` в терминале ничего не даст. Исключение — поле `api_key_env`: в нём указывают имя переменной окружения, и CLI берёт ключ из неё при каждом запросе. Так ключ не попадает в файл конфигурации и в репозиторий с dotfiles.

1. Сохраните ключ в переменной окружения (для постоянной работы добавьте строку в `~/.bashrc` или `~/.zshrc`):

```bash
export ROUTERAI_API_KEY=sk-xxxxxxxxxxxxxxxx
```

2. Откройте `~/.kimi-code/config.toml` (файл создаётся при первом запуске) и добавьте провайдера, модели и модель по умолчанию. Алиас модели с точкой в имени берите в кавычки.

### Вариант 1: OpenAI-совместимый провайдер

Подходит для Kimi, DeepSeek, GPT и других моделей из каталога. Base URL — `https://routerai.ru/api/v1`.

```toml
default_model = "routerai/k3-1-pro"

[providers.routerai]
type = "openai"
base_url = "https://routerai.ru/api/v1"
api_key_env = "ROUTERAI_API_KEY"

[models."routerai/k3-1-pro"]
provider = "routerai"
model = "moonshotai/kimi-k3.1-pro"
max_context_size = 1048576
display_name = "Kimi K3.1 Pro (RouterAI)"

[models."routerai/k3"]
provider = "routerai"
model = "moonshotai/kimi-k3"
max_context_size = 1048576
display_name = "Kimi K3 (RouterAI)"
```

### Вариант 2: Anthropic-совместимый провайдер

Тот же ключ работает и с Anthropic Messages API. Base URL здесь без `/v1` — `https://routerai.ru/api`, SDK добавляет путь сам:

```toml
[providers.routerai-anthropic]
type = "anthropic"
base_url = "https://routerai.ru/api"
api_key_env = "ROUTERAI_API_KEY"

[models."routerai-anthropic/sonnet"]
provider = "routerai-anthropic"
model = "anthropic/claude-sonnet-5.5"
max_context_size = 1000000
display_name = "Claude Sonnet 5.5 (RouterAI)"
```

Поля таблицы `models`: `provider` — имя из `providers`, `model` — id модели ровно как в каталоге RouterAI (с префиксом производителя), `max_context_size` — размер контекста в токенах. Ключ таблицы (`routerai/k3-1-pro`) — это алиас, который вы указываете в `default_model` и в флаге `-m`.

![Версия Kimi Code CLI и config.toml с провайдерами RouterAI: type openai и type anthropic, ключ в api_key_env](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/8712eccec7e3e7a74bb5d2e4ba0c4e6e.png)

Ключ можно записать и прямо в файл (`api_key = "sk-xxxxxxxxxxxxxxxx"`), но тогда следите, чтобы `config.toml` не попал в git. Поля `api_key` и `api_key_env` взаимоисключающие: указывайте одно из них.

Разовый запуск с другой моделью без правки `default_model`:

```bash
kimi -m routerai/k3
```

## Выбор модели

В агенте переключайте модель командой `/model`: список строится из таблицы `models` в вашем `config.toml`. Команда `/provider` работает с каталогами провайдеров и реестрами, поэтому для RouterAI проще дописать провайдера в файл.

![Команда /model в Kimi Code CLI: алиасы RouterAI из config.toml, Kimi K3.1 Pro отмечена как текущая](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/4180d4f9090c887956c9c66895297df5.png)

| Модель | Для чего |
| --- | --- |
| `moonshotai/kimi-k3.1-pro` | Основная модель для сложных задач: рефакторинг, отладка, большие репозитории (контекст 1 048 576 токенов) |
| `moonshotai/kimi-k3` | Универсальная модель того же поколения с таким же контекстом |
| `moonshotai/kimi-k2.7-code` | Модель Moonshot AI, заточенная под код (контекст 262 144 токенов) |
| `anthropic/claude-sonnet-5.5` | Альтернатива для сложного кода через Anthropic-провайдер |
| `deepseek/deepseek-v4-flash` | Дешёвые массовые правки и переименования |

Цены на токены и актуальный список смотрите в [каталоге моделей](/models). Подробнее о моделях — в статьях [Kimi K3](/pages/kimi-k3) и [Kimi K3.1 Pro](/pages/kimi-k3-1-pro-routerai). Для агента важна поддержка вызова инструментов (tool calling): у всех моделей из таблицы она есть.

## Проверка подключения

Быстрая проверка без интерактивного интерфейса: флаг `-p` (`--prompt`) выполняет один запрос, печатает ответ и завершает работу.

```bash
kimi -p "Ответь одним словом: OK"
```

Для проверки в работе перейдите в папку проекта с тестами, запустите `kimi` и попросите: «Запусти npm test и коротко скажи, что проверяют тесты». Агент покажет вызов инструмента Bash и спросит разрешение (**Approve once**, **Approve for this session**, **Reject**, **Reject with feedback**). Режим **Ask When Needed** (флаг `--yolo`) выполняет обычные команды сам и спрашивает только про рискованные. В строке статуса видна модель из вашего `config.toml`, а рядом — занятый контекст.

![Сессия Kimi Code CLI на демо-проекте: npm test выполнен, в строке статуса модель Kimi K3.1 Pro (RouterAI)](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/622018a7bbeafb223209e76a3502d2e4.png)

Полезные команды внутри сессии: `/sessions` — история и возврат к диалогу, `/new` — чистый контекст, `/compact` — сжатие контекста, `/help` — список команд. Продолжить последний диалог можно запуском `kimi -c`.

## Решение проблем

![Сообщения об ошибках Kimi Code CLI: 401 Unauthorized, модель не найдена, пустая api_error и незаданная переменная окружения](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/9f4c0ab625dc01918c41274e485b5749.png)

### provider.auth_error: 401 Unauthorized

Ключ неверный или скопирован не полностью. Проверьте значение `ROUTERAI_API_KEY` и сверьте с ключом в [личном кабинете](/settings/keys). Переменную CLI читает при старте процесса: после смены ключа перезапустите `kimi`.

### config.invalid: variable is not set or is empty

В `api_key_env` указано имя переменной, которой нет в окружении того терминала, где запущен `kimi`. Выполните `export ROUTERAI_API_KEY=...` в той же сессии или добавьте строку в профиль оболочки. Одновременно `api_key` и `api_key_env` задавать нельзя.

### Model '…' not found

Идентификатор в поле `model` не совпадает с каталогом. Берите id целиком, с префиксом производителя, из [каталога](/models), например `moonshotai/kimi-k3.1-pro`. Не путайте поле `model` (id для RouterAI) с алиасом — ключом таблицы `models`.

### provider.api_error без текста или 404

Чаще всего неверный Base URL или тип провайдера. Для `type = "openai"` нужен `https://routerai.ru/api/v1` (с `/v1`), для `type = "anthropic"` — `https://routerai.ru/api` (без `/v1`). Если в OpenAI-провайдере указать `https://routerai.ru/api`, запрос уйдёт на несуществующий путь и сервер вернёт 404, а CLI покажет `api_error` без пояснений. Подробности ищите в логе `~/.kimi-code/logs/kimi-code.log`.

### 402 Payment Required

Недостаточно средств на балансе — пополните его в разделе [Биллинг](/settings/billing).

## Что дальше

- [Каталог моделей](/models) — подберите модель под задачу
- [Аутентификация](/docs/guides/overview/authentication) — управление API-ключами
- [Kimi K3](/pages/kimi-k3) и [Kimi K3.1 Pro](/pages/kimi-k3-1-pro-routerai) — о моделях Moonshot AI
- [Codewhale через RouterAI](/pages/codewhale-routerai) и [Open Interpreter через RouterAI](/pages/open-interpreter-routerai) — другие терминальные агенты
- [Документация Kimi Code](https://www.kimi.com/code/docs/en/) — полное описание `config.toml`, MCP-серверов и плагинов

Инструкция проверена на Kimi Code CLI 2.5.2.
