Разделы базы знаний ▾

Навигация

▸ Начните здесь По ролям

Категории

Инструменты 52
Глоссарий 12

Инструменты

MiMo Code + JoinGonka Gateway: агент Xiaomi на моделях сети Gonka

MiMo Code (команда mimo) — терминальный кодовый агент лаборатории Xiaomi MiMo: читает и пишет код, запускает команды, работает с Git и держит постоянную память о проекте между сессиями. Это форк OpenCode: всё, что умеет родитель, на месте, а сверху добавлены контрольные точки сессии, восстановление контекста, субагенты и готовые рабочие процессы. Код открыт под лицензией MIT; проект молодой и быстро меняется, поэтому всё ниже привязано к версии 0.1.15, вышедшей 22 сентября 2026.

Модельный слой у MiMo Code сменный: любой OpenAI-совместимый API подключается как свой провайдер — описанием в mimocode.jsonc и ключом в auth.json. JoinGonka Gateway именно такой, поэтому подключение сводится к одной команде установщика.

Собственных моделей MiMo в сети Gonka нет: децентрализованная сеть обслуживает DeepSeek V4 Flash, GLM-5.3 Flash и MiniMax M2.7 — все по одной цене, $0.0069 за миллион входных токенов. Агент к моделям Xiaomi и не привязан: провайдеры в нём сменные, а вся обвязка — память, контрольные точки, субагенты — работает поверх той модели, которую вы выбрали. Команды, файлы и сообщения ниже сверены живым прогоном MiMo Code через шлюз 23 сентября 2026. После подтверждения адреса на счёт придут 3M бесплатных токенов — их хватит, чтобы повторить всё это самому.

Быстрый старт: установка и одна команда

Шаг 1: поставить MiMo Code. Официальные способы из README проекта:

# macOS and Linux
curl -fsSL https://mimo.xiaomi.com/install | bash

# Windows (PowerShell)
powershell -ep Bypass -c "irm https://mimo.xiaomi.com/install.ps1 | iex"

# via npm, on any system
npm install -g @mimo-ai/cli

Скрипт ставит бинарник в ~/.mimocode/bin и прописывает этот каталог в PATH через профиль оболочки (флаг --no-modify-path это отключает). Сборку он скачивает из хранилища Xiaomi; если загрузка не идёт, ставьте через npm — это тот же релиз, у нас обоими путями приходила 0.1.15. Проверка — mimo --version.

Шаг 2: получить ключ. Зарегистрируйтесь на gate.joingonka.ai/register, подтвердите адрес и создайте ключ с префиксом jg- в разделе «API-ключи». Один ключ и один баланс действуют для всех моделей сети.

Шаг 3: запустить установщик.

npx @joingonka/setup --tool mimo-code

Установщик спросит ключ — в аргументах командной строки он не передаётся — и запишет те же два файла, что и мастер своего провайдера в самом MiMo Code, только сразу с полным каталогом и лимитами:

  • пропишет провайдера joingonka в глобальный конфиг ~/.config/mimocode/mimocode.jsonc (или в mimocode.json либо config.json, если MiMo Code уже пишет туда): адаптер @ai-sdk/openai-compatible, адрес шлюза с /v1 и три модели сети с окнами контекста, потолками ответа и поддержкой инструментов;
  • положит ключ в собственное хранилище ключей MiMo Code — ~/.local/share/mimocode/auth.json с правами 600. В самом конфиге ключа нет, поэтому его можно спокойно держать в дотфайлах;
  • поставит модель по умолчанию — поле model — на DeepSeek V4 Flash, но только если она не выбрана или указывает на модель, ушедшую из сети. Выбор, сделанный вами, в том числе в другом глобальном конфиге, он не перебивает;
  • сохранит копии прежних файлов, не тронет чужих провайдеров, ключи и комментарии, а файл, который не удаётся разобрать, не перезапишет — остановится и скажет, что исправить;
  • в конце отправит живой запрос на шлюз и прямо скажет, приняты ли ключ, адрес и модель.

Нестандартные каталоги установщик учитывает сам: MIMOCODE_HOME, XDG_CONFIG_HOME, XDG_DATA_HOME и MIMOCODE_CONFIG. Другую модель по умолчанию задаёт флаг --model с сокращением deepseek, glm или minimax; для дотфайлов и серверов есть режим без вопросов:

JOINGONKA_API_KEY=jg-your-key npx @joingonka/setup --tool mimo-code --non-interactive

Если MiMo Code был запущен, перезапустите его: новый провайдер подхватывается при старте.

Ручная настройка: mimocode.jsonc и auth.json

Всё, что делает установщик, можно написать руками. Файлов два, и у каждого своя работа: конфиг описывает провайдера и модели, auth.json хранит ключ. Связывает их идентификатор провайдера — joingonka должен совпадать в обоих файлах. Конфиг, ~/.config/mimocode/mimocode.jsonc:

{
  "$schema": "https://mimo.xiaomi.com/mimocode/config.json",
  "provider": {
    "joingonka": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "JoinGonka (Gonka)",
      "options": {
        "baseURL": "https://gate.joingonka.ai/v1"
      },
      "models": {
        "deepseek-ai/DeepSeek-V4-Flash-0731": {
          "name": "DeepSeek V4 Flash (Gonka)",
          "tool_call": true,
          "reasoning": true,
          "limit": { "context": 380000, "output": 32768 }
        },
        "zai-org/GLM-5.3-Flash": {
          "name": "GLM 5.3 Flash (Gonka)",
          "tool_call": true,
          "reasoning": true,
          "limit": { "context": 390000, "output": 8192 }
        },
        "MiniMaxAI/MiniMax-M2.7": {
          "name": "MiniMax M2.7 (Gonka)",
          "tool_call": true,
          "limit": { "context": 200000, "output": 8192 }
        }
      }
    }
  },
  "model": "joingonka/deepseek-ai/DeepSeek-V4-Flash-0731"
}

Ключ, ~/.local/share/mimocode/auth.json с правами 600:

{
  "joingonka": { "type": "api", "key": "jg-your-key" }
}
ПолеЗначениеЧто важно
provider.joingonkaидентификатор провайдераСтрочными; тот же ключ — в auth.json, иначе MiMo Code не свяжет ключ с провайдером
npm@ai-sdk/openai-compatibleАдаптер для OpenAI-совместимых API — им MiMo Code говорит со шлюзом по Chat Completions
options.baseURLhttps://gate.joingonka.ai/v1С /v1 на конце: путь /chat/completions MiMo Code дописывает сам
modelsключи — id моделей сетиИдентификатор уходит в запрос как есть, вместе с префиксом вендора
limitcontext и output по списку вышеБез них MiMo Code считает окно модели равным миллиону токенов и начнёт сжимать историю слишком поздно — запрос упрётся в настоящий предел модели
tool_calltrueМодель вызывает инструменты. Для своих моделей MiMo Code и так считает это по умолчанию, установщик пишет флаг явно
reasoningtrueОтметка рассуждающей модели: её получают DeepSeek V4 Flash и GLM-5.3 Flash, запись MiniMax M2.7 обходится без неё

Модель по умолчанию записывается как provider/model-id; провайдер отделяется по первой косой черте, поэтому идентификаторы сети с собственной косой чертой пишутся как есть.

Где ещё может лежать ключ. README MiMo Code показывает и вариант с ключом прямо в конфиге — options.apiKey. Он работает, но ключ тогда легко закоммитить вместе с дотфайлами, а забытый там старый ключ перекроет новый из auth.json — поэтому установщик убирает options.apiKey из своего блока. В проектный .mimocode/mimocode.jsonc ключ тем более не кладите.

Какой файл главный. Глобальные config.json, mimocode.json и mimocode.jsonc MiMo Code сливает в этом порядке, следующий перекрывает предыдущий. Итог печатает mimo debug config, а пути к конфигу и ключам на вашей системе — mimo debug paths.

Провайдер из интерфейса, auth.json и выбор модели

Своего провайдера можно завести и без файлов — встроенным мастером. При первом запуске в каталоге проекта MiMo Code спрашивает, доверяете ли вы папке (Yes, I trust this folder): агент получит право читать, править и запускать файлы в ней. Затем команда /connect открывает список Select provider: вверху вход в платформу Xiaomi MiMo, Codex и импорт из Claude Code, ниже каталог провайдеров, а в самом конце — + Custom provider. Мастер задаёт шесть вопросов:

ШагЧто ввестиПримечание
Provider id (1/6)joingonkaТот же id, что у установщика: запущенный позже, он обновит эту запись, а не заведёт вторую
Display name (2/6)JoinGonkaПодпись в списках; по умолчанию совпадает с id
Base URL (3/6)https://gate.joingonka.ai/v1С суффиксом /v1
API key (4/6)ваш ключ jg-…Уходит в auth.json, в конфиг не пишется
First model id (5/6)deepseek-ai/DeepSeek-V4-Flash-0731Полный id модели сети, с префиксом вендора
First model name (6/6)DeepSeek V4 FlashПодпись; по умолчанию — сам id

В нашем прогоне мастер записал блок провайдера с одной моделью без лимитов и два поля, которых нет у установщика: env с именем переменной JOINGONKA_API_KEY, где MiMo Code тоже поищет ключ, и options.setCacheKey: true. Со шлюзом это работает, но конфигурацию стоит доделать: без limit mimo models joingonka покажет окно в 1M токенов. Проще всего после мастера один раз запустить установщик — он допишет в тот же блок полный каталог с лимитами.

Выбор модели. Постоянный выбор — поле model в конфиге. В интерфейсе модель меняет команда /models, на один разовый прогон — флаг -m. Какие модели MiMo Code видит у провайдера и с каким окном работает, показывает mimo models joingonka — вместе с порогом, на котором агент начнёт сжимать историю:

joingonka/deepseek-ai/DeepSeek-V4-Flash-0731 — window 380K, compacts at 342K
joingonka/MiniMaxAI/MiniMax-M2.7 — window 200K, compacts at 180K
joingonka/zai-org/GLM-5.3-Flash — window 390K, compacts at 351K

Цена у всех моделей сети одна, поэтому выбор — про поведение. Так они отработали в нашем прогоне mimo run на одной задаче — прочитать файл и найти ошибку:

МодельКонтекст / ответКак ведёт себя в MiMo Code
DeepSeek V4 Flash380K / 32768Задачу решает верно; самый большой потолок ответа в сети — её установщик и ставит по умолчанию
GLM-5.3 Flash390K / 8192Чистый ответ за два шага и несколько секунд. Рассуждающая модель: рассуждение входит в потолок ответа
MiniMax M2.7200K / 8192Задачу решает верно. Рассуждение модели приходит отдельно от ответа: по умолчанию mimo run показывает только ответ и вызовы инструментов, а флаг --thinking выводит и рассуждение

Почему по умолчанию выбрана DeepSeek V4 Flash, разобрано в обзоре модели.

Проверка: что должно произойти

Сначала убедитесь, что MiMo Code видит провайдера и ключ:

mimo models joingonka
mimo providers list

Первая команда перечисляет три модели сети с окнами, как в примере выше; вторая печатает путь к хранилищу ключей и строку joingonka api. Затем — разовый прогон. Положите в каталог проекта файл calc.py с очевидной ошибкой — например, площадь прямоугольника, где стороны складываются вместо умножения, — и попросите её найти:

mimo run "Read the file calc.py in the current project directory and tell me in one sentence whether it has a bug."

В выводе появятся агент и модель (> build · deepseek-ai/DeepSeek-V4-Flash-0731), вызов инструмента (→ Read calc.py) и ответ по существу — с указанием ошибочного выражения. Флаг --format json превращает вывод в поток событий, где у каждого шага есть счётчик токенов, а -m joingonka/<model-id> запускает прогон на другой модели. В нашем прогоне цикл «запрос → вызов инструмента → результат → ответ» прошли все три модели сети.

Третья проверка — со стороны шлюза: в кабинете в разделе «Использование» запрос появится в разбивке «По моделям», а в блоке «По ключам» обновится время последнего запроса.

Если что-то пошло не так, диагноз обычно читается прямо из сообщения:

Что видноЧто это значитЧто сделать
Error: Invalid API keyШлюз не принял ключПроверьте ключ в auth.json или запустите установщик ещё раз; учтите, что options.apiKey в блоке провайдера перекрывает auth.json
Error: Method Not AllowedВ baseURL нет суффикса /v1Адрес должен быть ровно https://gate.joingonka.ai/v1
Error: Model not found: joingonka/… Did you mean: …?Модели нет в списке models провайдера — чаще всего id вписан без префикса вендораВозьмите полный id из подсказки или из mimo models joingonka
permission requested: external_directory (…); auto-rejecting, и прогон заканчивается без ответаВ mimo run обращение за пределы проекта отклоняется, и прогон останавливается. Так бывает, когда модель ищет файл за пределами проекта — например, в домашнем каталогеУказывайте, что файл в каталоге проекта; постоянный доступ к нужному каталогу даёт правило permission.external_directory
В mimo models joingonka окно 1MУ модели нет limit — так бывает после мастера Custom providerЗадайте limit в конфиге или запустите установщик
429 … is currently overloaded in the Gonka network (rate limit)У модели сейчас нет свободной ёмкости в сетиПовторите через минуту или переключитесь на соседнюю модель командой /models или флагом -m; состояние видно на странице статуса
402На балансе закончились средстваПополните счёт в разделе «Биллинг»; ключ при этом рабочий
Ответ оборвался на полусловеПоток ответа прервался по пути — так бывает в час пикmimo run -c "continue" продолжит последнюю сессию с того же места

Сколько это стоит

Агентный инструмент тратит токены иначе, чем чат: к каждой вашей фразе MiMo Code добавляет системный промпт, описания инструментов и служебный контекст агента, а задача занимает несколько шагов. В нашем прогоне каждый запрос к модели нёс 22-25 тысяч входных токенов, и задача «прочитать файл и найти ошибку» из двух шагов обошлась примерно в 45-50 тысяч токенов — почти всё это вход. Поэтому цена за токен здесь решает.

Через JoinGonka Gateway токены стоят $0.0069 за миллион на входе и $0.021 за миллион на выходе — цена одинакова для всех моделей сети и подставляется на этой странице из живого источника.

СценарийРасходЧерез Gateway
Разовая задача: прочитать файл, найти ошибку45-50K токеновсотые доли цента
День активной работы3-7M токеновединицы центов
Месяц активной разработки~150M токеновоколо доллара

Оценки в правой колонке — по ценам на сентябрь 2026. Для сравнения — как вообще можно платить за модели в MiMo Code:

СпособКак оплачиваетсяЧто нужно
Платформа Xiaomi MiMoпо условиям платформыаккаунт Xiaomi MiMo, вход через браузер
Codexподписка ChatGPTплан ChatGPT Plus или Pro, вход через браузер
Ключ вендора из каталога провайдеровза токены по прайсу вендораотдельный ключ у каждого вендора
JoinGonka Gatewayза токены с предоплаченного балансаключ jg-…; три модели сети по одной цене, расход виден в кабинете

Своя оценка стоимости в MiMo Code для моделей шлюза равна нулю — в их записях нет поля cost, и в событиях --format json стоит "cost": 0. Настоящий расход и остаток — в кабинете, в разделах «Использование» и «Биллинг».

Что учесть в работе

Разрешения. В интерфейсе MiMo Code спрашивает подтверждение на рискованные действия, а в mimo run спросить некого — запрос на доступ за пределы проекта он отклоняет сам. Для доверенных одноразовых сред есть флаг --dangerously-skip-permissions (или переменная MIMOCODE_DANGEROUSLY_SKIP_PERMISSIONS=1): он разрешает всё, что не запрещено явным правилом, — только в контейнере или песочнице. В интерфейсе похожий режим на время сессии включает /skip-permissions.

Агенты. По умолчанию работает build с полным набором инструментов, plan только читает и анализирует, compose ведёт процесс от спецификации до проверенного кода; переключает их Tab.

Длинный контекст. У предела окна MiMo Code пересобирает контекст из последней контрольной точки, памяти проекта и свежих сообщений; порог он считает от limit.context. Сжимать раньше можно командой /context-limit, отдельно для каждой модели.

Что завязано на аккаунт Xiaomi. Голосовой ввод (/voice) распознаёт речь моделью платформы MiMo и доступен после входа в неё. Код, команды и субагенты работают через подключённого провайдера — в нашем прогоне без всякого входа.

Картинки. Модели сети текстовые: в /modalities оставьте им только текст, а для скриншотов заведите второго провайдера с моделью, которая умеет зрение.

MiMo Code и OpenCode — родственники с разными настройками. Каталоги и файлы у них свои, так что настройка одного другому не передаётся:

OpenCodeMiMo Code
Командаopencodemimo
Конфиг~/.config/opencode/opencode.json~/.config/mimocode/mimocode.jsonc
Ключи~/.local/share/opencode/auth.json~/.local/share/mimocode/auth.json
Установщик--tool opencode--tool mimo-code

Версия. Проект обновляется часто; для воспроизводимости фиксируйте её: npm install -g @mimo-ai/[email protected] или curl -fsSL https://mimo.xiaomi.com/install | bash -s -- --version 0.1.15.

Агенты от самих лабораторий есть и у семейств, которые обслуживает сеть: MiniMax Code работает на модели своего вендора MiniMax M2.7, свои агенты есть у DeepSeek и у Z.ai, авторов GLM. Все они подключаются к одному шлюзу с одним ключом.

MiMo Code — терминальный агент Xiaomi MiMo, форк OpenCode с памятью проекта и контрольными точками. Моделей MiMo в сети Gonka нет, но провайдер в агенте сменный: npx @joingonka/setup --tool mimo-code пропишет провайдера joingonka в ~/.config/mimocode/mimocode.jsonc (адаптер @ai-sdk/openai-compatible, адрес https://gate.joingonka.ai/v1, DeepSeek V4 Flash, GLM-5.3 Flash и MiniMax M2.7 с честными limit) и положит ключ jg-… в нативный auth.json. Вручную то же делает мастер /connect → + Custom provider, после него допишите модели и лимиты. Проверка — mimo models joingonka и mimo run; в разовом прогоне держите пути внутри проекта.

Хотите узнать больше?

Изучите другие разделы или начните зарабатывать GNK прямо сейчас.

Получить ключ и бесплатные токены →