# Référence : ligne de commande > Description neutre de l'exécutable `mm` : options, argument positionnel, variables d'environnement, sortie de démarrage et codes de sortie. ## Invocation ``` mm [-config ] [-acp] [] ``` | Élément | Type | Défaut | Description | |---------|------|--------|-------------| | `-config ` | chaîne | `""` | Chemin du fichier de configuration YAML. | | `` | positionnel | aucun | Équivalent de `-config` quand `-config` n'est pas donné. Un second argument positionnel est une erreur. | | `-acp` | booléen | `false` | Sert l'Agent Client Protocol sur stdin/stdout au lieu du REPL du terminal. | | `-h` | — | — | Affiche l'usage des options et quitte. | ## Résolution du fichier de configuration La première source existante gagne. | Ordre | Source | Fichier absent | |-------|--------|----------------| | 1 | Option `-config` ou argument positionnel | Erreur, code de sortie 1 | | 2 | Variable d'environnement `AGENT_CONFIG` | Erreur, code de sortie 1 | | 3 | `./agent.yaml` | Pas une erreur : les valeurs par défaut intégrées sont utilisées, la bannière affiche `config: built-in defaults` | ## Variables d'environnement | Variable | Effet | |----------|-------| | `AGENT_CONFIG` | Chemin du fichier de configuration (voir ci-dessus). | | `AGENT_PROVIDER` | Surcharge la clé `provider`. | | `AGENT_MODEL` | Surcharge la clé `model`. | | `AGENT_BASE_URL` | Surcharge `baseUrl` et désactive la sonde de repli. | | `DMR_BASE_URL` | Comme `AGENT_BASE_URL`, pour le fournisseur `dmr` seulement ; `AGENT_BASE_URL` gagne quand les deux sont définies. | | Variable nommée par `apiKeyEnv` | Contient la clé d'API. Nom par défaut : aucun pour `dmr`, `LLAMA_API_KEY` pour `llamacpp`. | ## Sortie de démarrage Affichée sur stdout en mode terminal, sur stderr en mode ACP. Grisée quand stdout est un terminal. | Ligne | Contenu | |-------|---------| | `[warning: …]` | Zéro ou plusieurs avertissements de la sonde : serveur injoignable, modèle absent de la liste du serveur, pas de template de chat, compression qui ne peut jamais se déclencher. | | `config: … \| provider: … \| model: … \| ctx: … \| tools: … \| skills: N` | Chemin de la configuration, nom du fournisseur, identifiant du modèle, fenêtre de contexte avec son origine (`config`, `/props`) ou `unknown`, noms des outils déclarés, nombre de skills trouvés. | | `Agent ready. Commands: …` | Mode terminal seulement. | | `Shortcut: Ctrl+C …` | Mode terminal seulement. | ### Exemple ``` [warning: llamacpp: nothing answers at http://127.0.0.1:8080/v1 — start it: llama-server -m --jinja --port 8080] config: agent.llamacpp.yaml | provider: llamacpp | model: jetbrains/mellum2-12b-a2.5b-instruct-gguf-q4_k_m:Q4_K_M | ctx: unknown | tools: bash, read_file, write_file, edit_file | skills: 0 ``` ## Spécificités du mode ACP | Aspect | Comportement | |--------|--------------| | stdout | Messages JSON-RPC 2.0 uniquement, un par ligne. | | stderr | Bannière, avertissements, trace `[acp] …`, journaux du SDK. | | Spinner | Désactivé. | | `skillsDir` relatif | Résolu par rapport au répertoire du fichier de configuration, quand un fichier a été trouvé ; sinon depuis le répertoire de travail, comme en mode terminal. | ## Codes de sortie | Code | Cause | |------|-------| | 0 | `/quit`, `Ctrl+C` à l'invite, fin de stdin, ou le client ACP a fermé la connexion. | | 1 | Plus d'un argument positionnel ; erreur de chargement de la configuration ; erreur d'initialisation du moteur (fournisseur inconnu, clé requise absente). | ## Compilation et installation | Commande | Effet | |----------|-------| | `go build -o mm .` | Compile le binaire dans le répertoire courant. | | `./install.sh` | Compile `mm` et le copie dans `/usr/local/bin`, avec `sudo` si le répertoire n'est pas accessible en écriture. | | `go test ./...` | Lance les tests unitaires. |