Aller au contenu principal
Documentation

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.

Windows · PowerShell
PS> irm https://realmoon.ai/install.ps1 | iex
macOS, Linux et WSL
$ 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/moon vers ~/.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_DIR pour un autre dossier, --no-modify-path ou MOON_NO_MODIFY_PATH=1 pour ne pas toucher au PATH.

Premiers pas

  1. 1

    Installer Moon CLI

    Exécutez le script correspondant à votre système, puis ouvrez un nouveau terminal.

  2. 2

    Se connecter

    moon login ouvre 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. 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. 4

    Lancer l'agent

    moon dé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:allow en 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 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.