Розділи бази знань ▾

Навігація

▸ Почніть тут За ролями

Категорії

Інструменти 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 прямо зараз.

Отримати ключ та безкоштовні токени →