MiMoCode через RouterAI: терминальный агент Xiaomi на Claude, GPT и GLM
MiMoCode
MiMoCode — терминальный coding-агент от Xiaomi (репозиторий XiaomiMiMo/MiMo-Code). Он работает в TUI прямо в терминале: читает и правит код, запускает команды, работает с Git и подключает MCP-серверы. Между сессиями агент хранит память о проекте (файл MEMORY.md, чекпоинты, прогресс задач) и сам пересобирает контекст, когда он подходит к лимиту. Проект позиционируется как «Where Models and Agents Co-Evolve» — модель и агент развиваются вместе.
MiMoCode — форк OpenCode: он сохраняет его основу (много провайдеров, TUI, LSP, MCP, плагины) и добавляет память, управление контекстом, субагентов и автономные циклы. Если вы работали с OpenCode или Claude Code, интерфейс и сценарии будут знакомы.
MiMoCode подключается к любому OpenAI-совместимому API, поэтому RouterAI добавляется как обычный кастомный провайдер. В одном агенте вы получаете модели Claude, GPT, DeepSeek и GLM из каталога моделей, работу из России без VPN и оплату в рублях.
Требования
- macOS, Linux или Windows (PowerShell)
- Современный терминал. На macOS встроенный Terminal.app не поддерживается — используйте iTerm2 или терминал VS Code
- API-ключ из личного кабинета
Установка
Установщик для macOS и Linux:
curl -fsSL https://mimo.xiaomi.com/install | bash
Windows PowerShell:
powershell -ep Bypass -c "irm https://mimo.xiaomi.com/install.ps1 | iex"
Команды взяты из README проекта. Установщик кладёт бинарник mimo в ~/.mimocode/bin и дописывает этот путь в ~/.bashrc, поэтому после установки выполните source ~/.bashrc или откройте новый терминал и проверьте версию: mimo --version (проверено на 0.1.16). Запустите агент в папке проекта:
cd /path/to/your/project
mimo
При первом запуске MiMoCode спрашивает, доверяете ли вы папке (Yes, I trust this folder), и просит принять условия (Terms & Privacy, кнопка Agree & Continue). После этого открывается главный экран с подсказкой «Run /login»: команда /login открывает список провайдеров.

В списке есть вход через Xiaomi (Xiaomi (Recommended)), Codex (ChatGPT Pro/Plus), импорт авторизации из Claude Code (Import from Claude Code), провайдеры из каталога по API-ключу и пункт + Custom provider — любой OpenAI-совместимый API. Пункт «Custom provider» относится к группе Other, а список провайдеров длинный; быстрее всего найти его, набрав в строке Search слово Custom. RouterAI подключается через него или через конфиг.
Подключение к RouterAI
Есть два способа: интерактивно в TUI или через файл конфигурации. Результат одинаковый.
Способ 1: Custom Provider в TUI
- Запустите
mimo, выполните/login, наберите в строке Search словоCustomи выберите + Custom provider.

- Откроется форма из шести шагов, каждый подтверждается клавишей Enter:
-
Provider id (1/6) —
routerai(латиницей в нижнем регистре, на него потом ссылается полеmodel); -
Display name (2/6) —
RouterAI. Поле уже заполнено id провайдера: сотрите его и введите название, иначе имена склеятся; -
Base URL (3/6) —
https://routerai.ru/api/v1. Важно: с/v1на конце, MiMoCode сам ничего не добавляет и не убирает; -
API key (4/6) — ключ из личного кабинета (на кадрах и в примерах — заглушка
sk-xxxxxxxxxxxxxxxx); -
First model id (5/6) — id модели из каталога, например
anthropic/claude-sonnet-5.5; -
First model name (6/6) — отображаемое имя модели. Поле предзаполнено id, замените его на понятное, например
Claude Sonnet 5.5.
-
Provider id (1/6) —


- После шестого шага MiMoCode сам записывает провайдера в
~/.config/mimocode/mimocode.jsonc(поляbaseURL,models,env: ["ROUTERAI_API_KEY"]), а введённый ключ сохраняет в~/.local/share/mimocode/auth.json. Остальные модели добавляются кнопкой + Add model в списке выбора модели.
Способ 2: файл конфигурации
MiMoCode читает JSON/JSONC. Расположение файлов по README:
| Файл | В проекте | Глобально |
|---|---|---|
| Основной конфиг |
.mimocode/mimocode.jsonc (или .json) |
~/.config/mimocode/mimocode.jsonc (или .json) |
| Конфиг TUI | .mimocode/tui.json |
~/.config/mimocode/tui.json |
| Ключи (сохранённые через TUI) | — | ~/.local/share/mimocode/auth.json |
В Windows эти пути лежат в %LOCALAPPDATA%\mimocode\; все пути можно переопределить переменной MIMOCODE_HOME.
- Задайте ключ в переменной окружения (например, в
~/.zshrc):
export ROUTERAI_API_KEY="sk-xxxxxxxxxxxxxxxx"
- Добавьте провайдера в
~/.config/mimocode/mimocode.jsonc:
{
"$schema": "https://mimo.xiaomi.com/mimocode/config.json",
"model": "routerai/anthropic/claude-sonnet-5.5",
"provider": {
"routerai": {
"name": "RouterAI",
"npm": "@ai-sdk/openai-compatible",
"only_configured_models": true,
"models": {
"anthropic/claude-sonnet-5.5": { "name": "Claude Sonnet 5.5" },
"anthropic/claude-haiku-5.5": { "name": "Claude Haiku 5.5" },
"openai/gpt-5.6-sol": { "name": "GPT-5.6 Sol" },
"deepseek/deepseek-v4.1-flash": { "name": "DeepSeek V4.1 Flash" },
"z-ai/glm-5.3": { "name": "GLM 5.3" }
},
"options": {
"baseURL": "https://routerai.ru/api/v1",
"apiKey": "{env:ROUTERAI_API_KEY}"
}
}
}
}
Что здесь важно:
- ключи называются строго
baseURLиapiKey; - ключ в
models— это id модели из каталога RouterAI; id с/поддерживаются, потому что провайдера от модели отделяет только первый/в полеmodel; -
npm: "@ai-sdk/openai-compatible"— адаптер для OpenAI-совместимых API, а{env:VAR}подставляет переменную окружения, так что ключ не попадает в git; -
routeraiможно заменить любым другим свободным id провайдера в нижнем регистре, но тогда он же должен стоять в начале поляmodel.
- Перезапустите
mimo: конфиг читается при запуске. Проверено: если изменить файл, пока TUI открыт, список моделей остаётся прежним до перезапуска.

Выбор модели
Модели, зарегистрированные в кастомном провайдере, появляются в списке выбора модели в TUI: откройте его командой /models. Команды и настройки интерфейса открываются через палитру команд по Ctrl+P.

Идентификаторы проверены по каталогу RouterAI на момент написания; цены и актуальный список смотрите в каталоге.
| Модель | Для чего |
|---|---|
anthropic/claude-sonnet-5.5 |
Основная модель для кода: фичи, отладка, рефакторинг среднего размера |
anthropic/claude-opus-5.5 |
Сложные рефакторинги и архитектурные изменения |
anthropic/claude-haiku-5.5 |
Быстрые мелкие запросы и вспомогательные задачи |
openai/gpt-5.6-sol |
Альтернатива Claude от OpenAI для тех же задач |
deepseek/deepseek-v4.1-flash |
Дешёвые массовые правки и переименования |
z-ai/glm-5.3 |
Альтернативная модель для кода, когда нужен другой «взгляд» на задачу |
Контекст и смена модели
MiMoCode пересобирает контекст, когда он приближается к окну модели. Для моделей из конфига выше (каталог RouterAI отдаёт им окна от 1 000 000 до 1 050 000 токенов) MiMoCode определяет окно 1M и начинает сжатие на 900K. Окно, которое объявляет каталог, и окно, которое отдаёт конкретный маршрут, могут различаться, поэтому после смены модели проверьте значение и при необходимости задайте лимит вручную.
Команда mimo models routerai показывает для каждой модели окно, которое MiMoCode определил, и порог, на котором начнётся сжатие. В TUI тот же бюджет виден в подвале экрана (например, 7.6K/900K), а команда /context-limit позволяет выбрать меньший рабочий бюджет для текущей модели (200K, 300K, 500K, 1M или своё значение). Значение хранится отдельно для каждой модели и можно только занизить порог, но не поднять его выше окна. То же задаётся в конфиге:
{
"compaction": {
"max_context": {
"anthropic/*": "300K",
"openai/*": "272K"
}
}
}
Допустимы число токенов, строка вроде "300K" или "1M" и доля окна "50%"; поддерживаются маски (anthropic/*), побеждает самый длинный шаблон. Зачем занижать: очень длинный контекст дороже и медленнее, а после определённого порога не даёт выигрыша в качестве.
Проверка подключения
Быстрая проверка без запуска интерфейса:
mimo run "Объясни одной фразой, что делает этот проект"
Команда выполняет один запрос и печатает ответ в терминал. Чтобы убедиться, что MiMoCode видит модели RouterAI:
mimo models routerai

Для проверки MCP-серверов есть команда mimo mcp.
Пример: правка и запуск тестов
Возьмите небольшой Node-проект (в примере — учебный «Invoices» с файлами app.js, invoices.js и invoices.test.js), откройте его в терминале и запустите mimo. Попросите агента, например:
Найди в invoices.js функцию подсчёта итога счёта, добавь округление до копеек и запусти npm test
Агент прочитает файлы, внесёт правку и запустит npm test. По умолчанию основной агент build имеет полные права на разработку, а агент plan — режим только для чтения: он подходит, когда нужно сначала обсудить решение. Переключение — клавишей Tab.

Решение проблем
401 Unauthorized
Ключ не передан или неверный. Проверьте, что переменная ROUTERAI_API_KEY экспортирована в том же терминале, где запущен mimo (echo $ROUTERAI_API_KEY), что ключ скопирован из личного кабинета целиком и что в конфиге написано {env:ROUTERAI_API_KEY}, а не $ROUTERAI_API_KEY.
404 Not Found
Почти всегда виноват базовый адрес. Нужен https://routerai.ru/api/v1 — с /v1. MiMoCode не добавляет и не убирает /v1 сам, так что адрес https://routerai.ru/api для OpenAI-совместимого подключения не сработает.
Модель не найдена
Проверьте, что id есть в каталоге и написан точно. В блоке models ключ — это id без префикса провайдера (anthropic/claude-sonnet-5.5), а в поле model перед ним ставится id провайдера (routerai/anthropic/claude-sonnet-5.5). Кроме того, у кастомного провайдера в models должна быть зарегистрирована хотя бы одна модель.
Ключ или модель не подхватились после правки конфига
MiMoCode читает конфиг при запуске. Закройте TUI и запустите mimo заново; если ключ меняли в переменной окружения, откройте новый терминал. Если в проекте есть свой .mimocode/mimocode.jsonc, проверьте и его.
402 Payment Required
Недостаточно средств на балансе — пополните его в разделе Биллинг.
Агент «забывает» начало работы или сжимает историю слишком рано
Это штатное сжатие контекста. Посмотрите окно и порог через mimo models routerai, при необходимости поменяйте их командой /context-limit или compaction.max_context. Проектную память (MEMORY.md) и чекпоинты агент подтягивает при возобновлении сессии.
Что дальше
- Каталог моделей — подберите модель под задачу
- Аутентификация — управление API-ключами
- Вайб-кодинг в Crush и Вайб-кодинг в Claude Code — другие CLI-агенты через RouterAI
- README MiMoCode — конфигурация, MCP, память, субагенты