Sections de la base de connaissances ▾

Navigation

▸ Commencez ici Par rôles

Catégories

Outils 52
Glossaire 12

Outils

MiMo Code + JoinGonka Gateway : agent Xiaomi sur les modèles du réseau Gonka

MiMo Code (la commande mimo) est un agent de code pour terminal du laboratoire Xiaomi MiMo : il lit et écrit du code, exécute des commandes, travaille avec Git et conserve une mémoire persistante du projet entre les sessions. C'est un fork de OpenCode : tout ce que le parent sait faire est présent, avec en plus des points de contrôle de session, une récupération du contexte, des sous-agents et des flux de travail prêts à l'emploi. Le code est open source sous licence MIT ; le projet est jeune et évolue rapidement, donc tout ce qui suit est basé sur la version 0.1.15, sortie le 22 septembre 2026.

La couche modèle de MiMo Code est interchangeable : toute API compatible OpenAI se connecte en tant que fournisseur via une description dans mimocode.jsonc et une clé dans auth.json. JoinGonka Gateway est exactement ainsi, donc la connexion se résume à une seule commande d'installation.

Il n'y a pas de modèles MiMo propriétaires dans le réseau Gonka : le réseau décentralisé sert DeepSeek V4 Flash, GLM-5.3 Flash et MiniMax M2.7 — tous au même prix, $0.0069 par million de jetons d'entrée. L'agent n'est pas lié aux modèles Xiaomi : les fournisseurs sont interchangeables, et tout le système — mémoire, points de contrôle, sous-agents — fonctionne sur le modèle que vous avez choisi. Les commandes, fichiers et messages ci-dessous ont été vérifiés par une exécution en direct de MiMo Code via la passerelle le 23 septembre 2026. Après confirmation de l'adresse, 3M de jetons gratuits seront crédités sur le compte — assez pour répéter tout cela vous-même.

Démarrage rapide : installation et une seule commande

Étape 1 : installer MiMo Code. Les méthodes officielles du README du projet :

# 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

Le script installe le binaire dans ~/.mimocode/bin et ajoute ce répertoire au PATH via le profil du shell (l'option --no-modify-path le désactive). Il télécharge la build depuis le dépôt Xiaomi ; si le téléchargement ne fonctionne pas, installez via npm — c'est la même release, les deux méthodes nous ont livré la 0.1.15. Vérification — mimo --version.

Étape 2 : obtenir une clé. Inscrivez-vous sur gate.joingonka.ai/register, confirmez votre adresse et créez une clé avec le préfixe jg- dans la section « Clés API ». Une seule clé et un seul solde valent pour tous les modèles du réseau.

Étape 3 : lancer l'installateur.

npx @joingonka/setup --tool mimo-code

L'installateur demande la clé — elle ne se transmet pas en argument de ligne de commande — et écrit les deux mêmes fichiers que l'assistant de son propre fournisseur dans MiMo Code, mais directement avec le catalogue complet et les limites :

  • il inscrit le fournisseur joingonka dans le config global ~/.config/mimocode/mimocode.jsonc (ou dans mimocode.json voire config.json, si MiMo Code y écrit déjà) : l'adaptateur @ai-sdk/openai-compatible, l'adresse de la passerelle avec /v1 et les trois modèles du réseau avec leurs fenêtres de contexte, plafonds de réponse et prise en charge des outils ;
  • il place la clé dans le propre stockage de clés de MiMo Code — ~/.local/share/mimocode/auth.json avec les droits 600. La clé n'est pas dans le config lui-même, on peut donc la garder tranquillement dans ses dotfiles ;
  • il définit le modèle par défaut — le champ model — sur DeepSeek V4 Flash, mais uniquement s'il n'est pas choisi ou s'il pointe vers un modèle disparu du réseau. Il n'écrase pas votre choix, y compris dans un autre config global ;
  • il conserve des copies des fichiers précédents, ne touche pas aux fournisseurs, clés et commentaires des autres, et ne réécrit pas un fichier qu'il n'arrive pas à analyser — il s'arrête et indique quoi corriger ;
  • à la fin, il envoie une requête réelle à la passerelle et dit clairement si la clé, l'adresse et le modèle sont acceptés.

Les répertoires non standard sont pris en compte automatiquement par l'installateur : MIMOCODE_HOME, XDG_CONFIG_HOME, XDG_DATA_HOME et MIMOCODE_CONFIG. Un autre modèle par défaut se définit avec l'option --model et les raccourcis deepseek, glm ou minimax ; pour les dotfiles et les serveurs, il existe un mode sans questions :

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

Si MiMo Code était lancé, redémarrez-le : le nouveau fournisseur est pris en compte au démarrage.

Configuration manuelle : mimocode.jsonc et auth.json

Tout ce que fait l'installeur peut être fait à la main. Deux fichiers, chacun avec son rôle : le config décrit le fournisseur et les modèles, auth.json stocke la clé. Le lien entre les deux, c'est l'identifiant du fournisseur — joingonka doit être identique dans les deux fichiers. Le config, ~/.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"
}

La clé, ~/.local/share/mimocode/auth.json avec les droits 600 :

{
  "joingonka": { "type": "api", "key": "jg-your-key" }
}
ChampValeurÀ retenir
provider.joingonkaidentifiant du fournisseurEn minuscules ; la même clé doit figurer dans auth.json, sinon MiMo Code ne fera pas le lien entre la clé et le fournisseur
npm@ai-sdk/openai-compatibleL'adaptateur pour les API compatibles OpenAI — c'est par lui que MiMo Code dialogue avec la passerelle via Chat Completions
options.baseURLhttps://gate.joingonka.ai/v1Avec /v1 à la fin : le chemin /chat/completions, MiMo Code l'ajoute lui-même
modelsles clés sont les id des modèles du réseauL'identifiant part dans la requête tel quel, préfixe du vendeur inclus
limitcontext et output selon la liste ci-dessusSans eux, MiMo Code considère la fenêtre du modèle comme égale à un million de tokens et commencera à compresser l'historique trop tard — la requête se heurtera à la vraie limite du modèle
tool_calltrueLe modèle appelle des outils. Pour ses propres modèles, MiMo Code le suppose par défaut ; l'installeur écrit le flag explicitement
reasoningtrueMarqueur de modèle raisonnant : DeepSeek V4 Flash et GLM-5.3 Flash l'ont, l'entrée MiniMax M2.7 s'en passe

Le modèle par défaut s'écrit provider/model-id ; le fournisseur est séparé au premier slash, c'est pourquoi les identifiants du réseau contenant leur propre slash s'écrivent tels quels.

Où d'autre la clé peut se trouver. Le README de MiMo Code montre aussi une variante avec la clé directement dans le config — options.apiKey. Ça fonctionne, mais la clé risque alors d'être commitée avec les dotfiles, et une vieille clé oubliée à cet endroit écrasera la nouvelle de auth.json — c'est pourquoi l'installeur retire options.apiKey de son bloc. Dans le .mimocode/mimocode.jsonc du projet, ne mettez la clé encore moins.

Quel fichier est prioritaire. MiMo Code fusionne les config.json, mimocode.json et mimocode.jsonc globaux dans cet ordre, le suivant écrase le précédent. Le résultat s'affiche avec mimo debug config, et les chemins vers le config et les clés sur votre système avec mimo debug paths.

Fournisseur depuis l'interface, auth.json et sélection du modèle

Vous pouvez ajouter votre propre fournisseur sans fichiers — via l'assistant intégré. Lors du premier lancement dans le répertoire du projet, MiMo Code vous demande si vous faites confiance au dossier (Yes, I trust this folder) : l'agent recevra le droit de lire, modifier et exécuter des fichiers à l'intérieur. Ensuite, la commande /connect ouvre la liste Select provider : en haut, l'accès à la plateforme Xiaomi MiMo, Codex et l'importation depuis Claude Code, plus bas le catalogue des fournisseurs, et tout à la fin — + Custom provider. L'assistant pose six questions :

ÉtapeSaisieNote
Provider id (1/6)joingonkaLe même id que celui de l'installateur : lancé plus tard, il mettra à jour cette entrée au lieu d'en créer une seconde
Display name (2/6)JoinGonkaSignature dans les listes ; par défaut identique à l'id
Base URL (3/6)https://gate.joingonka.ai/v1Avec le suffixe /v1
API key (4/6)votre clé jg-…Va dans auth.json, n'est pas écrit dans la configuration
First model id (5/6)deepseek-ai/DeepSeek-V4-Flash-0731Id complet du modèle du réseau, avec le préfixe du fournisseur
First model name (6/6)DeepSeek V4 FlashSignature ; par défaut — l'id lui-même

Dans notre test, l'assistant a enregistré un bloc de fournisseur avec un modèle sans limites et deux champs absents de l'installateur : env avec le nom de variable JOINGONKA_API_KEY, où MiMo Code cherchera également la clé, et options.setCacheKey: true. Cela fonctionne avec la passerelle, mais la configuration mérite d'être complétée : sans limit, mimo models joingonka affichera une fenêtre de 1M de jetons. Le plus simple est de lancer l'installateur une fois après l'assistant — il ajoutera le catalogue complet avec les limites dans le même bloc.

Sélection du modèle. Le choix permanent est le champ model dans la configuration. Dans l'interface, le modèle est changé par la commande /models, et pour une exécution unique — par le flag -m. Quels modèles MiMo Code voit chez le fournisseur et avec quelle fenêtre il travaille, est affiché par mimo models joingonka — ainsi que le seuil à partir duquel l'agent commencera à compresser l'historique :

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

Le prix est identique pour tous les modèles du réseau, donc le choix dépend du comportement. Voici comment ils ont fonctionné lors de notre test mimo run sur une tâche — lire un fichier et trouver une erreur :

ModèleContexte / réponseComportement dans MiMo Code
DeepSeek V4 Flash380K / 32768Résout la tâche correctement ; le plus grand plafond de réponse du réseau — celui que l'installateur définit par défaut
GLM-5.3 Flash390K / 8192Réponse propre en deux étapes et quelques secondes. Modèle de raisonnement : le raisonnement est inclus dans le plafond de réponse
MiniMax M2.7200K / 8192Résout la tâche correctement. Le raisonnement du modèle arrive séparément de la réponse : par défaut mimo run affiche uniquement la réponse et les appels d'outils, et le flag --thinking affiche également le raisonnement

La raison pour laquelle DeepSeek V4 Flash est sélectionné par défaut est expliquée dans la revue du modèle.

Vérification : ce qui devrait se produire

Commencez par vérifier que MiMo Code voit bien le fournisseur et la clé :

mimo models joingonka
mimo providers list

La première commande liste les trois modèles du réseau avec leurs fenêtres, comme dans l'exemple ci-dessus ; la seconde affiche le chemin du stockage des clés et la ligne joingonka api. Ensuite, un test ponctuel. Placez dans le répertoire du projet un fichier calc.py contenant une erreur évidente — par exemple, l'aire d'un rectangle où l'on additionne les côtés au lieu de les multiplier — et demandez-lui de la trouver :

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

La sortie affichera l'agent et le modèle (> build · deepseek-ai/DeepSeek-V4-Flash-0731), l'appel d'outil (→ Read calc.py) et une réponse concrète — avec l'expression fautive. Le flag --format json transforme la sortie en flux d'événements, où chaque étape dispose d'un compteur de tokens, et -m joingonka/<model-id> lance l'exécution sur un autre modèle. Lors de notre test, le cycle « requête → appel d'outil → résultat → réponse » a été complété par les trois modèles du réseau.

Troisième vérification, côté passerelle : dans la console, à la rubrique « Utilisation », la requête apparaîtra dans la répartition « Par modèles », et dans le bloc « Par clés », l'horodatage de la dernière requête sera mis à jour.

En cas de problème, le diagnostic se lit généralement directement dans le message :

Ce que vous voyezCe que cela signifieQue faire
Error: Invalid API keyLa passerelle n'a pas accepté la cléVérifiez la clé dans auth.json ou relancez l'installeur ; notez que options.apiKey dans le bloc du fournisseur écrase auth.json
Error: Method Not AllowedLe baseURL n'a pas le suffixe /v1L'adresse doit être exactement https://gate.joingonka.ai/v1
Error: Model not found: joingonka/… Did you mean: …?Le modèle n'est pas dans la liste models du fournisseur — le plus souvent, l'id est saisi sans le préfixe du vendeurReprenez l'id complet depuis la suggestion ou depuis mimo models joingonka
permission requested: external_directory (…); auto-rejecting, et l'exécution se termine sans réponseDans mimo run, tout accès en dehors du projet est refusé et l'exécution s'arrête. Cela survient quand le modèle cherche un fichier hors du projet — par exemple dans le répertoire personnelPrécisez que le fichier se trouve dans le répertoire du projet ; un accès permanent au répertoire voulu s'obtient via la règle permission.external_directory
Dans mimo models joingonka, la fenêtre 1MLe modèle n'a pas de limit — cela arrive après l'assistant Custom providerDéfinissez limit dans la config ou relancez l'installeur
429 … is currently overloaded in the Gonka network (rate limit)Le modèle n'a pas de capacité libre sur le réseau pour le momentRéessayez dans une minute ou basculez sur un modèle voisin avec /models ou le flag -m ; l'état est visible sur la page de statut
402Le solde est épuiséRechargez votre compte dans la rubrique « Facturation » ; la clé reste fonctionnelle
La réponse s'est coupée en plein motLe flux de réponse a été interrompu en route — cela arrive aux heures de pointemimo run -c "continue" reprend la dernière session là où elle s'est arrêtée

Combien cela coûte

Un outil agent consomme des tokens différemment d'un chat : à chaque phrase, MiMo Code ajoute un prompt système, des descriptions d'outils et le contexte de service de l'agent, et la tâche prend plusieurs étapes. Dans notre test, chaque requête au modèle transportait 22 à 25 000 tokens d'entrée, et la tâche « lire le fichier et trouver l'erreur » en deux étapes a coûté environ 45 à 50 000 tokens, presque entièrement en entrée. C'est pourquoi le prix par token est ici déterminant.

Via JoinGonka Gateway, les tokens coûtent $0.0069 par million en entrée et $0.021 par million en sortie — le prix est identique pour tous les modèles du réseau et est mis à jour sur cette page depuis une source en direct.

ScénarioConsommationVia Gateway
Tâche unique : lire un fichier, trouver une erreur45-50K tokenscentimes de cent
Journée de travail actif3-7M tokensquelques centimes
Mois de développement actif~150M tokensenviron un dollar

Les estimations dans la colonne de droite sont basées sur les prix de septembre 2026. À titre de comparaison, voici comment on peut payer pour les modèles dans MiMo Code :

MéthodeComment c'est payéCe qui est nécessaire
Plateforme Xiaomi MiMoselon les conditions de la plateformecompte Xiaomi MiMo, connexion via navigateur
Codexabonnement ChatGPTplan ChatGPT Plus ou Pro, connexion via navigateur
Clé vendeur du catalogue des fournisseursau token selon les tarifs du vendeurune clé séparée par vendeur
JoinGonka Gatewayau token depuis un solde prépayéclé jg-… ; trois modèles réseau au même prix, consommation visible dans le tableau de bord

Votre propre estimation de coût dans MiMo Code pour les modèles de passerelle est nulle — leurs enregistrements n'ont pas de champ cost, et dans les événements --format json, on trouve "cost": 0. La consommation réelle et le solde se trouvent dans le tableau de bord, dans les sections « Utilisation » et « Facturation ».

Ce qu'il faut garder à l'esprit

Autorisations. Dans l'interface, MiMo Code demande confirmation pour les actions risquées, mais dans mimo run, il n'y a personne pour répondre — il rejette lui-même les tentatives d'accès en dehors du projet. Pour les environnements temporaires de confiance, il existe le flag --dangerously-skip-permissions (ou la variable MIMOCODE_DANGEROUSLY_SKIP_PERMISSIONS=1) : il autorise tout ce qui n'est pas interdit par une règle explicite — uniquement dans un conteneur ou un bac à sable. Dans l'interface, un mode similaire pour la durée de la session est activé via /skip-permissions.

Agents. Par défaut, build fonctionne avec l'ensemble complet d'outils, plan lit et analyse uniquement, et compose gère le processus de la spécification jusqu'au code vérifié ; Tab permet de basculer entre eux.

Contexte long. À la limite de la fenêtre, MiMo Code reconstruit le contexte à partir du dernier point de contrôle, de la mémoire du projet et des messages récents ; il calcule le seuil à partir de limit.context. Vous pouvez compresser plus tôt avec la commande /context-limit, séparément pour chaque modèle.

Ce qui est lié au compte Xiaomi. La saisie vocale (/voice) reconnaît la parole via le modèle de la plateforme MiMo et est disponible après s'y être connecté. Le code, les commandes et les sous-agents fonctionnent via le fournisseur connecté — lors de nos tests sans aucune connexion.

Images. Les modèles du réseau sont textuels : dans /modalities, laissez-leur uniquement du texte, et pour les captures d'écran, configurez un deuxième fournisseur avec un modèle capable de vision.

MiMo Code et OpenCode sont apparentés avec des réglages différents. Ils possèdent leurs propres répertoires et fichiers, donc la configuration de l'un n'est pas transférée à l'autre :

OpenCodeMiMo Code
Commandeopencodemimo
Config~/.config/opencode/opencode.json~/.config/mimocode/mimocode.jsonc
Clés~/.local/share/opencode/auth.json~/.local/share/mimocode/auth.json
Installateur--tool opencode--tool mimo-code

Version. Le projet est mis à jour fréquemment ; pour la reproductibilité, fixez la version : npm install -g @mimo-ai/[email protected] ou curl -fsSL https://mimo.xiaomi.com/install | bash -s — --version 0.1.15.

Des agents des laboratoires eux-mêmes existent aussi pour les familles desservies par le réseau : MiniMax Code fonctionne sur le modèle de son fournisseur MiniMax M2.7, DeepSeek et Z.ai (auteurs de GLM) ont leurs propres agents. Ils se connectent tous à la même passerelle avec une seule clé.

MiMo Code est un agent terminal de Xiaomi MiMo, un fork d'OpenCode avec mémoire de projet et points de contrôle. Il n'y a pas de modèles MiMo dans le réseau Gonka, mais le fournisseur dans l'agent est remplaçable : npx @joingonka/setup --tool mimo-code configurera le fournisseur joingonka dans ~/.config/mimocode/mimocode.jsonc (adaptateur @ai-sdk/openai-compatible, adresse https://gate.joingonka.ai/v1, DeepSeek V4 Flash, GLM-5.3 Flash et MiniMax M2.7 avec des limit honnêtes) et placera la clé jg-… dans le auth.json natif. La même opération peut être effectuée manuellement via l'assistant /connect → + Custom provider, puis ajoutez les modèles et les limites. Vérification — mimo models joingonka et mimo run ; lors d'une exécution unique, gardez les chemins à l'intérieur du projet.

Vous voulez en savoir plus ?

Explorez d'autres sections ou commencez à gagner des GNK dès maintenant.

Obtenir une clé et des jetons gratuits →