Moon CLI.
Moon CLI, l'agent de code de Moon AI dans votre terminal : installation, commandes, Moon Blur, Moon Guard et notes de version.
Moon CLI v0.2.0
L'agent de code de Moon AI, dans votre terminal.
Introduction
Moon CLI est l'agent de code de Moon AI en ligne de commande. Il lit et modifie les fichiers de votre projet, exécute des commandes et se connecte à votre compte Moon AI : mêmes modèles, mêmes quotas et mêmes crédits que sur chat.realmoon.ai.
Deux protections tournent en permanence sur votre machine : Moon Blur masque vos secrets et données personnelles avant chaque envoi au modèle, et Moon Guard inspecte chaque commande shell avant son exécution. Le workspace actif doit avoir un abonnement Étoile ou supérieur.
$ moon
◗ Moon CLI
l'agent de code de Moon AI
~/projets/mon-app
Mon workspace · Étoile · Auto · choix selon la tâche · Moon Blur: secrets
Utilisation ███░░░░░░░ 27 % (session 5 h 27 % · semaine 9 % · mois 4 %)
Installation
Le script d'installation télécharge un binaire autonome, vérifie son empreinte SHA-256, teste qu'il démarre sur votre machine, puis l'ajoute au PATH. Il n'y a aucune dépendance à installer et aucun droit administrateur à donner.
PS> irm https://realmoon.ai/install.ps1 | iex
$ curl -fsSL https://realmoon.ai/install.sh | sh
Invite de commandes Windows (CMD) : curl -fsSL https://realmoon.ai/install.cmd -o install.cmd && install.cmd && del install.cmd.
Ouvrez ensuite un nouveau terminal pour que le PATH soit pris en compte, puis lancez moon login.
Plateformes
- Windows 10 et 11 : x64 et ARM64.
- macOS : Apple Silicon et Intel.
- Linux : x64 et ARM64, glibc et musl. Sous Alpine, installez d'abord
apk add libstdc++ libgcc(l'installeur vous le rappelle si besoin). - Les processeurs x64 anciens (sans AVX2) reçoivent automatiquement une version adaptée.
Emplacements
- Windows :
%LOCALAPPDATA%\Moon\moon.exe, versions dans%LOCALAPPDATA%\Moon\versions. - macOS / Linux : lien
~/.local/bin/moonvers~/.local/share/moon/versions/<version>/moon. - Réglages dans
~/.config/moon, données de l'agent dans~/.local/share/moon. La session Moon AI est rangée dans le trousseau du système quand il existe. - Options : une version précise (
sh -s -- 0.2.0),MOON_INSTALL_DIRpour un autre dossier,--no-modify-pathouMOON_NO_MODIFY_PATH=1pour ne pas toucher au PATH.
Premiers pas
-
1
Installer Moon CLI
Exécutez le script correspondant à votre système, puis ouvrez un nouveau terminal.
-
2
Se connecter
moon loginouvre la page d'autorisation Moon AI dans votre navigateur. Une fois validée, la connexion revient au terminal. En SSH, un code à saisir sur une autre machine est proposé. -
3
Ouvrir un projet
Placez-vous dans le dossier de votre projet (
cd mon-projet). Si le dépôt contient une configuration d'agent (opencode.json, tui.json, .opencode/, skills), Moon CLI vous demande avant de la charger ; sans votre accord, l'agent n'en lit rien. Évitez de lancer Moon dans votre dossier personnel ou à la racine d'un disque : Moon CLI vous prévient. -
4
Lancer l'agent
moondémarre l'agent dans le dossier courant. Décrivez votre tâche.
moon login
cd mon-projet
moon
Sur une machine sans navigateur (SSH, serveur), utilisez moon login --device : le terminal affiche un code à saisir depuis n'importe quel appareil connecté à votre compte.
Commandes
Référence des commandes du binaire moon en version 0.2.0. moon --help affiche cette liste dans le terminal.
| Commande | Description |
|---|---|
moon |
Lance l'agent dans le dossier courant. À la première utilisation, la connexion démarre automatiquement ; si la session a expiré, la reconnexion est automatique. moon <dossier> (ouvre ce dossier : la vérification de sa configuration porte sur lui) |
moon run "<tâche>" |
Exécution non interactive, pour les scripts et l'intégration continue (avec la variable MOON_API_KEY, une clé d'API de workspace). |
moon login |
Connexion à votre compte Moon AI : ouvre la page d'autorisation dans le navigateur, puis revient au terminal. En SSH ou sans navigateur, un code à saisir sur une autre machine est proposé automatiquement. moon login --device · moon login --browser |
moon logout |
Déconnexion. La session est aussi révoquée côté serveur. |
moon whoami |
Compte connecté, workspace de la session avec son forfait, échéance de la session. |
moon workspace |
Liste vos workspaces et l'accès à Moon CLI de chacun. Changer de workspace ne touche que cette session : le workspace de l'interface web reste le même. moon workspace use <numéro|nom|id> |
moon sessions |
Liste les sessions Moon CLI de votre compte (appareil, dernière utilisation). moon sessions revoke <id> (préfixe accepté s'il est unique) |
moon blur |
Moon Blur : mode actif et d'où il vient. Change le mode pour tous vos projets ou pour le dossier courant. moon blur secrets|redact|strict|detect|off [--here] · moon blur reset · moon blur allow <valeur> · moon blur audit <fichier> |
moon doctor |
Diagnostic : connexion à Moon AI, session, horloge, proxy, Moon Blur, configuration du dépôt, version. |
moon update |
Installe la dernière version. Le manifeste de chaque version est signé et chaque fichier vérifié avant d'être activé. Moon CLI se met aussi à jour seul, au plus une fois par jour. moon update --to <version> · moon update --channel stable |
moon rollback |
Revient à la version précédente (les deux dernières versions sont gardées). |
moon uninstall |
Désinstalle Moon CLI : binaires, versions et PATH. Révoque d'abord la session. moon uninstall --purge (efface aussi réglages et historique) |
moon licenses |
Licences de Moon CLI, d'OpenCode, de Bun et des paquets inclus dans le binaire. |
moon --version |
Affiche la version installée. moon --help |
Tout autre argument est transmis tel quel à l'agent : moon "corrige le test qui échoue" équivaut à moon run "corrige le test qui échoue".
Dans l'agent
Une fois moon lancé, tapez / pour afficher les commandes de l'agent. Les alias entre parenthèses sont acceptés, et Ctrl+P ouvre la palette de commandes.
/models
/mo Choisir le modèle. Chaque modèle affiche son niveau de coût (économique, standard, haut de gamme, très gourmand). « Auto » est le choix par défaut ; un modèle très gourmand demande une confirmation.
/usage
/quota · /limites Consommation de votre limite : session de 5 h, semaine, mois. Après chaque message, le pied de page indique sa part (« Ce message : 2 % »).
/blur
Changer le mode de Moon Blur pendant la session. Si votre workspace l'impose, off et detect sont indisponibles.
/mcp
Serveurs MCP : état, connexion par le navigateur, ajout depuis un catalogue vérifié (Context7, GitHub, Linear, Sentry, Notion, Atlassian…) ou d'un serveur personnalisé.
/workspace
/ws Changer le workspace de la session sans quitter l'agent.
/agents
Changer d'agent (build, plan).
/variants
Variantes du modèle actif (effort de raisonnement), quand il en propose.
/compact
/summarize Résumer le début de la conversation pour libérer du contexte (fait aussi automatiquement à 80 % de la fenêtre).
/undo
Annuler le dernier message et ses modifications de fichiers (/redo pour rétablir).
/sessions
/resume · /continue Reprendre une conversation précédente.
/new
/clear Démarrer une nouvelle session.
/themes
Changer le thème de l'interface.
/status
État de l'agent et de la connexion.
/help
Aide : commandes et raccourcis clavier.
/exit
/quit · /q Quitter l'agent.
Modèle Auto. « Auto » est sélectionné par défaut. Pour chaque tâche, il choisit un modèle économique pour une question simple et un modèle de code solide pour le travail sur le projet, et garde ce choix jusqu'à la fin de la tâche. Il ne prend jamais un modèle très gourmand. Titres et résumés sont faits par un petit modèle. Pour fixer un modèle précis, utilisez /models.
Moon Blur
Moon Blur analyse chaque message avant son envoi au modèle et masque ce qui ne doit pas quitter votre machine : clés et jetons d'API (AWS, GitHub, GitLab, Stripe, Google, Slack, OpenAI, Anthropic, npm, etc.), clés privées PEM, chaînes de connexion, affectations de secrets dans les fichiers .env, JWT, ainsi que les données personnelles (e-mails, IBAN, cartes bancaires, numéros de téléphone, NIR, SIRET, TVA) selon le mode choisi.
Les valeurs détectées sont remplacées par des placeholders, puis restaurées dans la réponse : le modèle ne voit jamais les valeurs réelles, et vous ne voyez jamais les placeholders. La table de correspondance reste en mémoire locale et est purgée à la fin de la session.
Modes
| Mode | Comportement |
|---|---|
secrets
défaut |
Masque les secrets (clés et jetons d'API, mots de passe, clés privées, chaînes de connexion) ainsi que les IBAN et cartes bancaires. Les autres données personnelles, fréquentes et souvent fictives dans du code, partent telles quelles. |
redact
|
Masque aussi les données personnelles : e-mails, téléphones, NIR, SIRET, numéros de TVA. |
strict
|
Comme redact, et refuse d'envoyer un nouveau message ou un résultat d'outil qui contient un secret. |
detect
|
Détecte et compte, sans rien masquer. |
off
|
Aucune analyse : le texte part tel quel. |
Réglage
Le mode se choisit pour tous vos projets, ou pour le dossier courant avec --here. Dans l'agent, /blur le change pour la session. La variable MOON_BLUR_MODE reste prioritaire (utile en intégration continue).
moon blur # mode actif et d'où il vient
moon blur redact --here # pour ce dossier seulement
moon blur allow 0612345678 # ne plus jamais masquer cette valeur
moon blur audit .env.example # ce qui serait masqué, sans rien envoyer
Faux positifs
- Les formats sont vérifiés : un IBAN, une carte, un NIR ou un numéro de TVA n'est masqué que si sa clé de contrôle est bonne. Les valeurs d'exemple connues (cartes et IBAN de test, clés de documentation) et les références de code (
process.env.X,${SECRET}) sont laissées. moon blur allow <valeur>garde l'empreinte de la valeur, jamais la valeur, et ne la masque plus.- Dans un message que vous tapez,
moonblur:allowen fin de ligne laisse cette ligne en clair. Cette annotation est ignorée dans les fichiers lus par l'agent et dans ses réponses.
Un workspace peut imposer Moon Blur à ses membres (réglages du workspace sur realmoon.ai) : off et detect sont alors indisponibles, et Moon AI analyse aussi de son côté.
## Moon Blur Moon Blur analyse chaque message avant son envoi au modèle et masque ce qui ne doit pas quitter votre machine : clés et jetons d'API (AWS, GitHub, GitLab, Stripe, Google, Slack, OpenAI, Anthropic, npm, etc.), clés privées PEM, chaînes de connexion, affectations de secrets dans les fichiers .env, JWT, ainsi que les données personnelles (e-mails, IBAN, cartes bancaires, numéros de téléphone, NIR, SIRET, TVA) selon le mode choisi. Les valeurs détectées sont remplacées par des placeholders, puis restaurées dans la réponse : le modèle ne voit jamais les valeurs réelles, et vous ne voyez jamais les placeholders. La table de correspondance reste en mémoire locale et est purgée à la fin de la session. | Mode | Comportement | |---|---| | `secrets (défaut)` | Masque les secrets (clés et jetons d'API, mots de passe, clés privées, chaînes de connexion) ainsi que les IBAN et cartes bancaires. Les autres données personnelles, fréquentes et souvent fictives dans du code, partent telles quelles. | | `redact` | Masque aussi les données personnelles : e-mails, téléphones, NIR, SIRET, numéros de TVA. | | `strict` | Comme redact, et refuse d'envoyer un nouveau message ou un résultat d'outil qui contient un secret. | | `detect` | Détecte et compte, sans rien masquer. | | `off` | Aucune analyse : le texte part tel quel. | Le mode se choisit pour tous vos projets (`moon blur <mode>`), ou pour le dossier courant (`moon blur <mode> --here`). Dans l'agent, `/blur` le change pour la session. La variable `MOON_BLUR_MODE` reste prioritaire. ```sh moon blur moon blur redact --here moon blur allow 0612345678 moon blur audit .env.example ``` Faux positifs : les formats sont vérifiés (clés de contrôle), les valeurs d'exemple et les références de code sont laissées ; `moon blur allow <valeur>` ne la masque plus (empreinte seulement) ; `moonblur:allow` en fin de ligne vaut dans ce que vous tapez, jamais dans les fichiers lus par l'agent. Un workspace peut imposer Moon Blur à ses membres : off et detect sont alors indisponibles.Moon Guard
Moon Guard inspecte chaque commande shell que l'agent veut exécuter, avant son exécution. Il est toujours actif quand l'agent est lancé via moon et fonctionne en deux niveaux.
Bloqué
La commande est refusée, l'agent ne peut pas l'exécuter.
- Suppression récursive d'une cible critique : racine, dossier système, dossier personnel, ou cible opaque (substitution de commande, remontée hors du projet).
- Écriture directe sur un disque (redirection ou dd vers /dev/sd*, /dev/nvme*) et formatage (mkfs).
- Suppression de masse via find -delete ou find -exec rm.
- Exécution de code téléchargé (curl | sh, eval sur un script distant, pipe vers un interpréteur).
- Arrêt ou redémarrage de la machine, fork bomb.
- Lecture ou écriture de votre session Moon AI et des réglages de Moon CLI, par une commande comme par un outil de fichiers : jokers, nom court Windows, lien symbolique, recherche récursive dans un dossier parent, lecture du trousseau du système.
- Commande réseau (y compris DNS, git distant, interpréteur avec du code en ligne), page, recherche web ou outil MCP qui recevrait un vrai secret restitué par Moon Blur.
Signalé
La commande est risquée mais courante : elle est signalée et vous gardez la main pour confirmer.
- rm récursif forcé sur une cible ordinaire.
- git push --force et git reset --hard.
- chmod 777 sur un chemin système.
- Effacement de l'historique du shell.
Confidentialité
Au-delà de Moon Blur et Moon Guard, Moon CLI applique les règles suivantes.
Jeton local
moon login range la session dans le trousseau du système (Gestionnaire d'identification sous Windows, Trousseau sous macOS, libsecret sous Linux), ou à défaut dans un fichier lisible par votre compte seulement. L'agent ne la voit jamais : un proxy local l'ajoute au moment de l'envoi, et seulement vers chat.realmoon.ai.
Sessions révocables
La session est renouvelée sans reconnexion, et une nouvelle connexion par le navigateur est demandée au bout de 90 jours. Chaque connexion vous est signalée par e-mail. Révoquez une session à tout moment avec moon sessions revoke, ou depuis Réglages puis Sécurité sur chat.realmoon.ai. moon logout révoque la session côté serveur.
Compte et quotas
Moon CLI consomme les quotas et crédits de votre compte Moon AI, comme l'application. Le workspace actif doit avoir un abonnement Étoile ou supérieur ; moon workspace liste vos workspaces avec leur éligibilité.
Verrouillage Moon AI
L'agent ne communique qu'avec Moon AI : les fournisseurs tiers sont désactivés et le partage de session vers des services externes est coupé.
Une question ?
L'équipe répond aux questions techniques par email. L'application reste disponible à tout moment.