MiMoCode est un assistant de code en terminal, pensé pour lire un projet, lancer des actions et garder une mémoire de travail. Mon verdict court : ça marche pour produire un vrai livrable sur un petit cas d’usage, mais l’installation et la maturité du packaging demandent encore de la prudence.
Je l’ai testé comme je testerais un outil pour mon quotidien de freelance sécu/DevOps : pas avec une démo marketing, mais sur un mini service Flask volontairement vulnérable, avec une demande concrète d’audit et un fichier de rapport à produire.
MiMoCode, c’est quoi ?
MiMoCode, ou MiMo Code dans le dépôt GitHub, est un assistant de développement en ligne de commande publié par XiaomiMiMo. Le projet se présente comme un fork d’OpenCode, enrichi avec de la mémoire persistante, des sous-agents, un mode compose, des objectifs de session et une logique de checkpoint.
L’idée est simple côté utilisateur : on ouvre un terminal dans un projet, on donne une tâche, puis l’agent peut lire les fichiers, écrire du code, lancer des commandes et produire un résultat. Il supporte plusieurs fournisseurs de modèles, dont OpenRouter et les API compatibles OpenAI.
Pour un profil DevOps ou sécurité, la promesse est intéressante : confier à un agent une tâche longue, par exemple analyser un dépôt, rédiger un rapport, préparer un correctif ou explorer une base de code inconnue. Sur le papier, c’est exactement le genre de brique qui peut faire gagner du temps si elle reste contrôlable.
| Élément | Ce que j’ai observé |
|---|---|
| Dépôt testé | XiaomiMiMo/MiMo-Code |
| Type | Assistant de code terminal |
| Stack | Bun, TypeScript, SQLite, providers LLM |
| Interface testée | CLI, commande run |
| Modèle utilisé | openrouter/openai/gpt-4o-mini via proxy local |
| Cas d’usage | Audit sécurité d’un mini service Flask |
| Résultat | Rapport Markdown créé par l’agent |
Installation de MiMoCode
Le README propose deux chemins : un script d’installation en une ligne, ou le paquet npm @mimo-ai/cli. Pour ce test, j’ai d’abord cloné le dépôt dans /tmp, puis lu le README, le package.json racine et le package CLI dans packages/opencode.
Les commandes utiles côté dépôt sont :
git clone --depth 1 https://github.com/XiaomiMiMo/MiMo-Code /tmp/MiMo-Code
bun install
bun run --cwd packages/opencode --conditions=browser src/index.ts models openrouter
Premier point important : le binaire npm précompilé n’a pas fonctionné dans mon conteneur de test. La variante Linux x64 a fini en erreur bas niveau, avec un crash de type bus error, et la variante baseline a aussi échoué. Je ne vais pas en faire une généralité, car ce type de binaire packagé peut être sensible au conteneur, au système de fichiers ou au runtime, mais pour un outil CLI censé être simple à installer, c’est un vrai caillou dans la chaussure.
La voie source, elle, a fonctionné. J’ai installé Bun dans un dossier temporaire, lancé bun install, puis exécuté MiMoCode depuis le code source. L’installation a téléchargé un gros volume de dépendances, plus de 4600 paquets dans mon run, avec un postinstall dédié à node-pty. Ce n’est pas léger, mais l’installation source s’est terminée proprement.
MiMoCode à l’usage
Pour éviter un test trop vague, j’ai créé un mini service Flask volontairement fragile :
from flask import Flask, request
import sqlite3
app = Flask(__name__)
@app.route('/login')
def login():
username = request.args.get('u', '')
password = request.args.get('p', '')
conn = sqlite3.connect('users.db')
query = f"SELECT * FROM users WHERE username='{username}' AND password='{password}'"
rows = conn.execute(query).fetchall()
return {'ok': bool(rows)}
@app.route('/debug')
def debug():
return {'secret': app.config.get('SECRET_KEY', 'dev-secret')}
J’ai configuré MiMoCode avec un provider OpenRouter pointant vers le proxy local compatible OpenAI fourni pour le test :
{
"model": "openrouter/openai/gpt-4o-mini",
"small_model": "openrouter/openai/gpt-4o-mini",
"provider": {
"openrouter": {
"options": {
"baseURL": "http://172.17.0.1:8790/v1",
"apiKey": "sk-proxy"
}
}
}
}
Puis j’ai lancé une vraie demande : analyser le service Flask du point de vue sécurité, créer un fichier SECURITY_REVIEW.md en français, classer les vulnérabilités par gravité, citer les preuves dans le code et recommander des corrections.
bun run --cwd packages/opencode --conditions=browser src/index.ts run \
--dir /tmp/mimo-case \
--model openrouter/openai/gpt-4o-mini \
--dangerously-skip-permissions \
"Analyse ce petit service Flask du point de vue sécurité..."

Ce que MiMoCode a produit n’est pas seulement une réponse dans le terminal. Il a réellement utilisé l’outil de lecture sur app.py, puis créé un fichier SECURITY_REVIEW.md dans le projet de test. Le rapport contient les vulnérabilités attendues : injection SQL critique, exposition d’une clé via /debug, mots de passe en clair, utilisation de GET pour des identifiants.

Sur ce petit cas, le résultat est exploitable. Ce n’est pas un audit complet, bien sûr, mais le rapport est correct, lisible, et cite les bonnes lignes. J’ai surtout apprécié que l’outil fasse bien la différence entre parler d’une action et produire un fichier réel.
Ce que j’aime dans MiMoCode
Le premier bon point, c’est l’approche terminal native. Pour un usage DevOps, c’est plus naturel qu’une interface web lourde. On peut travailler dans le dossier du projet, garder Git sous la main, et observer les fichiers produits.
Deuxième point : la sortie de la commande run est assez claire. On voit le modèle utilisé, les outils appelés, puis le texte final. Dans mon test, la trace indiquait explicitement la lecture de app.py et l’écriture de SECURITY_REVIEW.md, ce qui aide à comprendre ce que l’agent a vraiment fait.
Troisième point : la configuration provider est flexible. En passant par baseURL et apiKey, j’ai pu utiliser un proxy local compatible OpenAI sans chercher de vraie clé. C’est indispensable quand on route les appels LLM via une passerelle interne.
Enfin, la roadmap est cohérente : mémoire SQLite FTS5, sous-agents, checkpoints, modes build, plan et compose.
Les limites de MiMoCode
Le packaging est la limite la plus visible. Le paquet npm existe, mais le binaire précompilé a planté dans mon environnement. J’ai pu contourner en lançant depuis les sources avec Bun, mais ce n’est pas l’expérience que j’attends d’un outil CLI grand public.
La deuxième limite, c’est le poids. Le dépôt est conséquent, l’installation source tire beaucoup de dépendances, et le démarrage initialise une base SQLite.
Troisième point : le mode autonome demande de la discipline. J’ai utilisé l’option qui saute les permissions, parce que le projet de test était jetable. Dans un vrai dépôt client, je ne ferais pas ça sans sandbox stricte et revue Git obligatoire.
Enfin, le rapport généré était bon mais un peu scolaire. Il a identifié les vulnérabilités évidentes, ce qui est déjà utile, mais il n’a pas ajouté de test d’exploitation, ni de patch complet. Pour un audit sérieux, je le vois comme un assistant de première passe, pas comme un remplaçant.
Est-ce que MiMoCode marche vraiment ?
Oui, sur le scénario testé. MiMoCode a été installé depuis les sources, configuré avec un provider compatible OpenAI, lancé sur un projet réel, et il a produit un fichier de revue sécurité cohérent.
Je nuance quand même : le chemin npm précompilé n’a pas passé mon environnement, et je n’ai pas testé les fonctions avancées comme les sous-agents, la mémoire longue ou le mode compose. Le coeur CLI, lui, a bien fait le job sur une tâche concrète de lecture, raisonnement et écriture.
Faut-il adopter MiMoCode ?
Mon verdict : essayer, mais ne pas adopter aveuglément en production.
Pour un freelance sécu/DevOps, MiMoCode vaut le test si vous cherchez un agent terminal capable de produire des livrables dans un dépôt. Il peut servir pour des premières revues, de la documentation, de la navigation dans du code inconnu, ou des tâches répétitives avec un modèle routé par votre propre proxy.
Je ne le mettrais pas encore au centre d’un workflow critique sans garde-fous. Il faut valider le packaging sur votre environnement, isoler les runs, contrôler les permissions, et relire tout ce qu’il modifie. Mais la base est réelle, et le projet mérite clairement une veille.
FAQ
MiMoCode remplace-t-il un audit sécurité ?
Non. Il aide à repérer des problèmes et à produire une première synthèse, mais il ne remplace pas une validation manuelle, des tests d’exploitation et une revue de contexte.
Peut-on utiliser MiMoCode sans clé officielle Xiaomi ?
Oui, dans mon test je l’ai configuré avec un provider OpenRouter et une base URL compatible OpenAI. Il faut fournir une clé ou un proxy local, selon votre environnement.
MiMoCode est-il prêt pour un usage client ?
Pour de l’assistance encadrée, oui. Pour lui donner des droits larges sur un dépôt sensible, je recommande d’attendre, ou de le faire tourner dans une sandbox avec revue Git obligatoire.

