bots-garden/mini-mepublic Fork
⑂ v0.0.1
Commits
⬇ Clone ▾
git clone https://git.rickub.com/bots-garden/mini-me.git
git clone ssh://git@rickub.com/bots-garden/mini-me.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP
📦 Mini Me 931b4ab · on v0.0.1 · k33g · Sep 17, 2026
cli.md · 97 lines · 6.5 KBmarkdown
Blame HistoryOpen raw

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 <chemin>] [-acp] [<chemin>]
Élément Type Défaut Description
-config <chemin> chaîne "" Chemin du fichier de configuration YAML.
<chemin> 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.
-tui booléen false Ouvre le mode fenêtre unique (conversation en haut, zone de saisie en bas). Même effet que tui: true dans le YAML ; ignoré avec -acp. Retombe sur le mode ligne quand stdin ou stdout n'est pas un 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, aucun outil déclaré.
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.
sessions: saved under <dir>[ · N earlier — /resume to continue the latest, /sessions to list] Mode terminal, avec sessions.enabled seulement : le répertoire de sessions résolu et le nombre de sessions qu'il contient déjà.

Exemple

[warning: llamacpp: nothing answers at http://127.0.0.1:8080/v1 — start it: llama-server -m <model.gguf> --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.

Spécificités du mode fenêtre

Aspect Comportement
Sélection Option -tui, ou tui: true dans le YAML ; -acp l'emporte sur les deux.
Vérification du terminal stdin et stdout doivent tous deux être des périphériques caractère. Sinon [tui: stdin or stdout is not a terminal — running the line mode] est affiché et le mode ligne s'exécute, bannière comprise.
Écran L'écran alternatif du terminal, rendu à la sortie ; l'historique de défilement du terminal n'est pas écrit.
Bannière Non affichée sur stdout ; montrée comme première ligne de la conversation.
Spinner Désactivé ; la règle sous la conversation s'anime à sa place.
Disposition Ligne d'en-tête (agent, modèle @ fournisseur, usage du contexte en ctx N% (utilisé/fenêtre) ou ctx ~utilisé (window unknown), session <id> quand les sessions sont actives) ; conversation avec barre de défilement ; règle avec l'état et les rappels de touches ; zone de saisie de 3 lignes ; barre d'état (F1 help · Esc cancel · Ctrl-L clear · Ctrl-C quit, N msgs · N tools).
Appels d'outils ‣ <outil> <détail> <statut> <durée> où le statut est … pending, … waiting for permission, … running, ✓ done ou ✗ failed ; sortie repliée à previewLines lignes (… N more line(s)) ; lignes +/- des sorties de write_file/edit_file colorées.
Erreurs Une ligne [error: <explication>] ; un tour annulé affiche 🛑 Generation aborted. ; chaque tour se termine par ⚙ N command(s) [· 📝 N file op(s)] [· 📖 N skill(s)].
Permissions Avec permissions: ask, la zone affiche ? <titre de l'outil> et [a] allow once [s] allow <outil> for this session [r] reject jusqu'à la réponse ; un tour annulé pendant la question refuse.
Touches Voir Commandes slash — touches du mode fenêtre.
Souris Non capturée au démarrage, donc le cliquer-glisser du terminal sélectionne du texte. F2 la capture (défilement à la molette ; Maj+glisser sélectionne) puis la rend.

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.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# 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 <chemin>] [-acp] [<chemin>]
```

| Élément | Type | Défaut | Description |
|---------|------|--------|-------------|
| `-config <chemin>` | chaîne | `""` | Chemin du fichier de configuration YAML. |
| `<chemin>` | 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. |
| `-tui` | booléen | `false` | Ouvre le mode fenêtre unique (conversation en haut, zone de saisie en bas). Même effet que `tui: true` dans le YAML ; ignoré avec `-acp`. Retombe sur le mode ligne quand stdin ou stdout n'est pas un 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, aucun outil déclaré. |
| `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. |
| `sessions: saved under <dir>[ · N earlier — /resume to continue the latest, /sessions to list]` | Mode terminal, avec `sessions.enabled` seulement : le répertoire de sessions résolu et le nombre de sessions qu'il contient déjà. |

### Exemple

```
[warning: llamacpp: nothing answers at http://127.0.0.1:8080/v1 — start it: llama-server -m <model.gguf> --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. |

## Spécificités du mode fenêtre

| Aspect | Comportement |
|--------|--------------|
| Sélection | Option `-tui`, ou `tui: true` dans le YAML ; `-acp` l'emporte sur les deux. |
| Vérification du terminal | stdin et stdout doivent tous deux être des périphériques caractère. Sinon `[tui: stdin or stdout is not a terminal — running the line mode]` est affiché et le mode ligne s'exécute, bannière comprise. |
| Écran | L'écran alternatif du terminal, rendu à la sortie ; l'historique de défilement du terminal n'est pas écrit. |
| Bannière | Non affichée sur stdout ; montrée comme première ligne de la conversation. |
| Spinner | Désactivé ; la règle sous la conversation s'anime à sa place. |
| Disposition | Ligne d'en-tête (agent, modèle `@` fournisseur, usage du contexte en `ctx N% (utilisé/fenêtre)` ou `ctx ~utilisé (window unknown)`, `session <id>` quand les sessions sont actives) ; conversation avec barre de défilement ; règle avec l'état et les rappels de touches ; zone de saisie de 3 lignes ; barre d'état (`F1 help · Esc cancel · Ctrl-L clear · Ctrl-C quit`, `N msgs · N tools`). |
| Appels d'outils | `‣ <outil>  <détail>  <statut>  <durée>` où le statut est `… pending`, `… waiting for permission`, `… running`, `✓ done` ou `✗ failed` ; sortie repliée à `previewLines` lignes (`… N more line(s)`) ; lignes `+`/`-` des sorties de `write_file`/`edit_file` colorées. |
| Erreurs | Une ligne `[error: <explication>]` ; un tour annulé affiche `🛑 Generation aborted.` ; chaque tour se termine par `⚙ N command(s) [· 📝 N file op(s)] [· 📖 N skill(s)]`. |
| Permissions | Avec `permissions: ask`, la zone affiche `? <titre de l'outil>` et `[a] allow once   [s] allow <outil> for this session   [r] reject` jusqu'à la réponse ; un tour annulé pendant la question refuse. |
| Touches | Voir [Commandes slash — touches du mode fenêtre](slash-commands.md#touches-du-mode-fenêtre). |
| Souris | Non capturée au démarrage, donc le cliquer-glisser du terminal sélectionne du texte. `F2` la capture (défilement à la molette ; `Maj`+glisser sélectionne) puis la rend. |

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