Загрузка...

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 открывает список провайдеров.

Команда /login: список провайдеров Select provider — Xiaomi, Codex, Import from Claude Code, OpenAI, Anthropic и другие

В списке есть вход через 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

  1. Запустите mimo, выполните /login, наберите в строке Search слово Custom и выберите + Custom provider.

Поиск Custom в списке провайдеров: пункт + Custom provider в группе Other

  1. Откроется форма из шести шагов, каждый подтверждается клавишей 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.

Поле Base URL (3/6) формы Custom Provider

Шаг First model name (6/6): имя первой модели провайдера

  1. После шестого шага 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.

  1. Задайте ключ в переменной окружения (например, в ~/.zshrc):
export ROUTERAI_API_KEY="sk-xxxxxxxxxxxxxxxx"
  1. Добавьте провайдера в ~/.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.
  1. Перезапустите mimo: конфиг читается при запуске. Проверено: если изменить файл, пока TUI открыт, список моделей остаётся прежним до перезапуска.

Файл ~/.config/mimocode/mimocode.jsonc с блоком provider.routerai

Выбор модели

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

Список Select model: модели провайдера RouterAI — Claude Haiku 5.5, Claude Sonnet 5.5, DeepSeek V4.1 Flash, GLM 5.3, GPT-5.6 Sol

Идентификаторы проверены по каталогу 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

Вывод mimo models routerai: окно 1M и порог сжатия 900K для каждой модели RouterAI

Для проверки MCP-серверов есть команда mimo mcp.

Пример: правка и запуск тестов

Возьмите небольшой Node-проект (в примере — учебный «Invoices» с файлами app.js, invoices.js и invoices.test.js), откройте его в терминале и запустите mimo. Попросите агента, например:

Найди в invoices.js функцию подсчёта итога счёта, добавь округление до копеек и запусти npm test

Агент прочитает файлы, внесёт правку и запустит npm test. По умолчанию основной агент build имеет полные права на разработку, а агент plan — режим только для чтения: он подходит, когда нужно сначала обсудить решение. Переключение — клавишей Tab.

Сессия MiMoCode в демо-проекте Invoices: diff в invoices.js, успешный npm test, модель Claude Sonnet 5.5 провайдера RouterAI

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

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) и чекпоинты агент подтягивает при возобновлении сессии.

Что дальше