Dans Moon CLI, Moon Blur tourne sur votre machine. Avant chaque envoi au modèle, il remplace les secrets et, selon le mode, les données personnelles par des valeurs de remplacement. Les vraies valeurs sont remises dans les réponses : le modèle ne les voit pas, vos fichiers les gardent.
Le principeLien vers la section Le principe
- Moon CLI analyse tout ce qui part vers le modèle : vos messages, les fichiers lus par l’agent, les résultats des commandes et des outils.
- Chaque valeur détectée est remplacée par une valeur de remplacement de la forme
MOONBLUR_<TYPE>_<16. Une même valeur garde la même valeur de remplacement pendant toute la session.caractères> - Dans les réponses du modèle et dans ses appels d’outils, Moon CLI remet les vraies valeurs avant que l’agent ne les utilise : un fichier modifié contient vos vraies valeurs.
- La table de correspondance reste en mémoire, sur votre machine, le temps de la session. Elle est effacée à la fin, et Moon CLI indique combien de valeurs ont été masquées.
STRIPE_KEY=MOONBLUR_STRIPEKEY_8C1F0A9E3B7D2C45
DATABASE_URL=MOONBLUR_CONNSTRING_41D7E0B92A6C5F18Les modesLien vers la section Les modes
| Mode | Ce qui est masqué | Envoi |
|---|---|---|
off | Rien. | Le texte part tel quel. |
secrets (défaut) | Clés, jetons, mots de passe, IBAN et cartes bancaires. | Masqué. |
redact | Les secrets et les données personnelles : e-mail, téléphone, numéro de sécurité sociale, SIRET, TVA. | Masqué. |
strict | Comme redact. | Refuse d’envoyer un nouveau message ou résultat d’outil qui contient un secret. |
detect | Rien : les éléments sont seulement comptés. | Le texte part tel quel. |
Le mode secrets est le défaut parce que, dans du code, les données personnelles déclenchent beaucoup de faux positifs (adresses de test, numéros d’exemple), alors qu’un secret ne doit jamais partir.
En mode strict, un nouveau contenu qui contient un secret n’est pas envoyé. L’agent affiche : « Moon Blur (mode strict) : votre dernier message ou résultat d’outil contient un secret, rien n’a été envoyé. Retirez-le, ou passez en mode secrets (/blur) pour l’envoyer masqué. » L’historique déjà envoyé ne bloque pas la suite.
Choisir le modeLien vers la section Choisir le mode
Voir le mode actif et son origine :
moon blurChanger le mode par défaut, ou celui du seul dossier courant :
moon blur redact # pour tous vos projets
moon blur strict --here # pour ce dossier seulement
moon blur reset --here # retire le réglage de ce dossier
moon blur reset # retire le réglage par défautPour un seul terminal, la variable MOON_BLUR_MODE l’emporte sur vos réglages :
export MOON_BLUR_MODE=strict
moon$env:MOON_BLUR_MODE = "strict"
moonLe mode appliqué se décide dans cet ordre :
- la variable
MOON_BLUR_MODE; - le réglage du dossier (
moon) ;blur <mode> --here - le réglage par défaut (
moon) ;blur <mode> - le défaut de Moon CLI,
secrets.
Ces réglages vivent dans vos réglages personnels (moon.json), jamais dans le dépôt : un dépôt cloné ne peut ni baisser Moon Blur ni ajouter de valeurs autorisées.
Pendant une sessionLien vers la section Pendant une session
Dans l’agent, /blur change le mode pour la session en cours ; le mode actif s’affiche dans la barre d’état. moon blur ne change pas une session déjà ouverte : il s’applique au lancement suivant.
Quand le workspace impose Moon BlurLien vers la section Quand le workspace impose Moon Blur
Le propriétaire ou un administrateur d’une organisation peut imposer Moon Blur à Moon CLI : dans la console d’administration, page « API et clés », réglage « Moon Blur obligatoire dans Moon CLI ». Pour les sessions Moon CLI de ce workspace :
- le mode
offest remplacé parsecretsau lancement ; /blurrefuse de passer enoffou endetect;- Moon AI analyse aussi les requêtes de son côté, quel que soit votre mode.
Sans cette règle, Moon AI ne refait pas son propre masquage sur les requêtes de Moon CLI : c’est le mode que vous avez choisi qui s’applique, off compris.
Ce que Moon Blur détecteLien vers la section Ce que Moon Blur détecte
Secrets (tous les modes sauf off et detect)Lien vers la section Secrets (tous les modes sauf off et detect)
- Clés privées au format PEM (RSA, EC, OpenSSH, PGP, DSA).
- Clés et jetons d’API : AWS, GitHub, GitLab, OpenAI, Anthropic, Stripe (clés et secrets de webhook), Google, Slack, npm, Hugging Face, Azure Storage et d’autres services courants.
- Jetons JWT.
- Chaînes de connexion à une base de données ou à une file de messages, avec mot de passe.
- Identifiants dans une adresse :
https://.utilisateur:motdepasse@… - Valeurs affectées à une clé sensible entre guillemets :
api_key =,"…" token: "…",password =."…" - Lignes
.envet YAML dont la valeur ressemble à un secret aléatoire :DATABASE_PASSWORD=,… client_secret:.… - Mots de passe écrits en toutes lettres après
password:oupassphrase=.
Données personnellesLien vers la section Données personnelles
| Donnée | Mode secrets | Modes redact et strict |
|---|---|---|
| IBAN (clé de contrôle vérifiée) | Masqué | Masqué |
| Carte bancaire (réseau et clé de Luhn vérifiés) | Masquée | Masquée |
| Adresse e-mail | Non | Masquée |
| Numéro de téléphone français | Non | Masqué |
| Numéro de sécurité sociale (clé vérifiée) | Non | Masqué |
| Numéro de TVA français | Non | Masqué |
| SIRET | Non | Masqué |
Ce qui n’est pas pris pour un secretLien vers la section Ce qui n’est pas pris pour un secret
- Les valeurs d’exemple : cartes et IBAN de test, clés des documentations, jetons de démonstration.
- Les adresses techniques :
git@…,noreply@…,example.com,localhost. - Les références de code :
process.env.X,${JWT_SECRET},opts.token, un identifiant commehashPassword.
Laisser passer une valeurLien vers la section Laisser passer une valeur
Vérifier d’abord ce qui serait masqué dans un fichier, sans rien envoyer :
moon blur audit config/dev.env◗ 2 éléments masqués dans config/dev.env (mode secrets) :
ligne 12 STRIPEKEY sk_…9f
ligne 18 CONNSTRING pos…db
Faux positif ? Ajoutez « moonblur:allow » en fin de ligne, ou : moon blur allow <valeur>L’audit affiche les 50 premiers éléments, avec le mode du dossier courant (le mode redact si Moon Blur est sur off).
Trois façons de laisser passer un faux positif :
| Moyen | Effet |
|---|---|
moon | La valeur n’est plus jamais masquée. Seule son empreinte est enregistrée, jamais la valeur. moon donne le nombre de valeurs autorisées, moon vide la liste. |
moonblur:allow en fin de ligne | La ligne reste en clair. |
moonblur:allow-next-line sur la ligne au-dessus | La ligne suivante reste en clair. |
Ce que Moon Blur ne couvre pasLien vers la section Ce que Moon Blur ne couvre pas
- Les outils reçoivent les vraies valeurs. Pour que les commandes et les outils fonctionnent, Moon CLI leur remet les vraies valeurs. Un serveur MCP ou une commande réseau reçoit donc ce que l’agent lui envoie. Moon Guard, s’il est activé, bloque l’envoi d’un vrai secret par le réseau ou à un outil MCP : voir Moon Guard.
- La détection n’est pas exhaustive. Elle repose sur des formats connus : un secret dans un format inconnu peut passer.
offdésactive tout. Réservez-le aux projets sans donnée sensible.
Dans le chat web, Moon Blur est appliqué par Moon AI et propose d’autres réglages, comme vos propres termes à anonymiser : voir la section Moon Blur.