# Moon Blur dans Moon CLI

> Le masquage réversible de vos secrets, fait sur votre machine avant chaque envoi au modèle : modes, réglage par projet, valeurs autorisées, audit et limites.

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 principe

1. 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.
2. Chaque valeur détectée est remplacée par une valeur de remplacement de la forme `MOONBLUR_<TYPE>_<16 caractères>`. Une même valeur garde la même valeur de remplacement pendant toute la session.
3. 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.
4. 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.

```text title="Ce que lit le modèle"
STRIPE_KEY=MOONBLUR_STRIPEKEY_8C1F0A9E3B7D2C45
DATABASE_URL=MOONBLUR_CONNSTRING_41D7E0B92A6C5F18
```

## 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 mode

Voir le mode actif et son origine :

```bash title="Terminal"
moon blur
```

Changer le mode par défaut, ou celui du seul dossier courant :

```bash title="Terminal"
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éfaut
```

Pour un seul terminal, la variable `MOON_BLUR_MODE` l’emporte sur vos réglages :

```bash title="bash, zsh"
export MOON_BLUR_MODE=strict
moon
```

```powershell title="PowerShell"
$env:MOON_BLUR_MODE = "strict"
moon
```

Le mode appliqué se décide dans cet ordre :

1. la variable `MOON_BLUR_MODE` ;
2. le réglage du dossier (`moon blur <mode> --here`) ;
3. le réglage par défaut (`moon blur <mode>`) ;
4. 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 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 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 `off` est remplacé par `secrets` au lancement ;
- `/blur` refuse de passer en `off` ou en `detect` ;
- 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étecte

### 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 `.env` et YAML dont la valeur ressemble à un secret aléatoire : `DATABASE_PASSWORD=…`, `client_secret: …`.
- Mots de passe écrits en toutes lettres après `password:` ou `passphrase=`.

### 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 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 comme `hashPassword`.

## Laisser passer une valeur

Vérifier d’abord ce qui serait masqué dans un fichier, sans rien envoyer :

```bash title="Terminal"
moon blur audit config/dev.env
```

```text title="Exemple de sortie"
◗ 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 blur allow <valeur>` | La valeur n’est plus jamais masquée. Seule son empreinte est enregistrée, jamais la valeur. `moon blur allow` donne le nombre de valeurs autorisées, `moon blur allow --clear` 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. |

> [!WARNING]
> **Portée des annotations**
>
> Une annotation `moonblur:allow` ne vaut que dans vos propres messages (ce que vous tapez ou joignez). Elle est ignorée dans un fichier lu par l’agent, un résultat d’outil ou une réponse du modèle, pour qu’une instruction cachée dans un dépôt ne puisse pas faire sortir un secret. Elle ne libère jamais une valeur déjà masquée pendant la session.

## 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](https://realmoon.ai/documentation/moon-cli/moon-guard/).
- **La détection n’est pas exhaustive.** Elle repose sur des formats connus : un secret dans un format inconnu peut passer.
- **`off` dé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](https://realmoon.ai/documentation/moon-blur/).

## Voir aussi

- [Moon Guard](https://realmoon.ai/documentation/moon-cli/moon-guard/)
- [Configuration](https://realmoon.ai/documentation/moon-cli/configuration/#blur)
- [Référence des commandes](https://realmoon.ai/documentation/moon-cli/commandes/#blur)

---

Documentation Moon AI › Moon CLI › Moon Blur. Page : https://realmoon.ai/documentation/moon-cli/moon-blur/. Modifiée le 5 novembre 2026.

© 2026 Stellarr Studio SAS. Tous droits réservés. Moon AI, Moon Blur et Stellarr Studio sont des marques déposées à l’INPI.
