Utiliser le mode fenêtre (mm -tui)
Ce guide montre comment lancer mini-me dans une fenêtre unique en plein écran — la conversation en haut, une zone de saisie en bas — au lieu du REPL ligne à ligne. Il suppose que vous lancez déjà mm depuis le répertoire d'un projet.
Étapes
-
Lancez la fenêtre depuis le répertoire du projet :
mm -tui agent.dmr.yamlOu mettez
tui: truedans le YAML et lancezmmcomme d'habitude. La bannière que le mode ligne affiche apparaît comme première ligne de la conversation. -
Tapez votre question dans la zone du bas et appuyez sur Entrée. Une ligne longue passe à la ligne entre les mots dans la zone (un mot plus long qu'une rangée est coupé au bord) ; la zone garde ses trois rangées et les fait défiler pour que celle du curseur reste visible, et ↑/↓ déplacent le curseur de rangée en rangée. Pour un second paragraphe, appuyez sur Ctrl-J (ou Alt-Entrée quand votre terminal le transmet) au lieu d'Entrée. Un bloc collé est inséré en entier, jamais envoyé ; un bloc long est replié en un jeton
[Pasted #1 · …](voir plus bas). -
Regardez la réponse arriver dans la conversation. Chaque appel d'outil tient sur une ligne encadrée —
‣ bash ls -1 ✓ done 0.03s— suivie de sa sortie, repliée àpreviewLineslignes ; les lignes+/-d'une modification de fichier sont colorées. -
Appuyez sur Échap pour arrêter un tour en cours. Taper une nouvelle question et appuyer sur Entrée pendant un tour l'arrête aussi ; la nouvelle question part une fois l'ancien tour rangé.
-
Tapez
/en début de zone pour ouvrir le sélecteur de commandes : ↑/↓ choisissent, Tab complète, Entrée envoie une commande complète./help(ou F1) liste les commandes et les touches dans la conversation. -
Quittez avec
/quit, ou Ctrl-C quand rien ne tourne.
Variantes
- Demander avant chaque
bashet chaque outil de fichier. Mettezpermissions: askdans le YAML. La zone de saisie est remplacée par la question? bash: rm -rf buildet trois touches y répondent :aautoriser une fois,sautoriser cet outil pour la session,r(ou Échap) refuser. Un outil refusé dit au modèle[command rejected by the user]. La valeur par défaut,auto, exécute les outils comme le mode ligne l'a toujours fait. - Désigner un fichier au modèle.
@cheminfonctionne exactement comme dans le mode ligne : les chemins existants sont attachés et repris en lignes📎. Voir Désigner un fichier au modèle avec@chemin. - Conserver et reprendre des sessions. Avec
sessions.enabled: true, l'en-tête affiche l'identifiant de la session enregistrée ;/sessionset/resumefonctionnent comme dans le mode ligne. Voir Conserver les sessions et les reprendre. - Faire défiler la conversation. PgUp/PgDn paginent ; Tab donne le focus à la conversation pour que ↑/↓, Début et Fin la fassent défiler ; Fin reprend le suivi de la fin. Ctrl-L efface la conversation affichée sans toucher à l'historique. La molette ne fait défiler qu'après F2 (voir plus bas).
- Pas de terminal.
mm -tui | tee log.txt, ou tout lancement où stdin ou stdout n'est pas un terminal, affiche[tui: stdin or stdout is not a terminal — running the line mode]et lance le mode ligne. Rien d'autre ne change.
Copier du texte depuis la fenêtre
La fenêtre laisse la souris au terminal : cliquer-glisser sélectionne du texte exactement comme dans n'importe quel terminal, et le raccourci de copie de votre terminal le copie. La barre d'état indique F2 mouse: off. Appuyez sur F2 pour donner la souris à la fenêtre : la molette fait alors défiler la conversation et la barre d'état indique mouse: on (Shift+drag selects) ; dans la plupart des terminaux, glisser en maintenant Maj sélectionne encore. F2 à nouveau rend la souris.
Pour copier une réponse sans la sélectionner :
| Saisie | Copie |
|---|---|
/copy ou Ctrl-Y |
La dernière réponse, en texte brut : sans préfixe 🤖, sans retour à la ligne forcé, sans cadre d'outil. |
/copy 2 |
La réponse précédant la dernière (3 celle d'avant, et ainsi de suite). |
/copy all |
Toute la conversation en texte brut : questions préfixées par > , réponses brutes, appels d'outils en une ligne de titre suivie de leur sortie. |
La confirmation nomme le chemin emprunté, 📋 copied 1 240 chars (pbcopy), parce qu'il en existe deux et qu'ils ne sont pas aussi fiables l'un que l'autre :
- Un outil natif trouvé dans le
PATH:pbcopysur macOS,wl-copysous Wayland,xclipouxselsous X11. C'est le chemin fiable sur un Mac. - Sinon OSC 52, la séquence d'échappement que certains terminaux honorent pour remplir le presse-papiers. Elle fonctionne à travers SSH et dans iTerm2 (à autoriser dans Preferences → General → Selection), Ghostty, kitty et WezTerm ; Terminal.app de macOS l'ignore silencieusement. Sans outil ni terminal,
/copyrépond⚠️ no clipboard: ….
Le mode ligne a aussi /copy et /copy 2, par les mêmes chemins ; /copy all est réservé à la fenêtre, puisque l'historique du terminal y est déjà sélectionnable.
Coller un texte long
Un bloc collé n'est jamais envoyé de lui-même : ses sauts de ligne deviennent des lignes dans la zone. Quand le bloc est plus long que la zone — plus de 3 lignes, ou plus de 200 caractères — la zone affiche un seul jeton à la place du texte :
> explique cette trace [Pasted #1 · 42 lines · 1.2k chars] et le correctif dans [Pasted #2 · 5 lines · 310 chars]
Le jeton se comporte comme un seul caractère : ←/→ le franchissent d'un coup, Retour arrière ou Suppr le retirent en entier avec le texte collé, et vous continuez à taper autour. Plusieurs collages dans un même message sont numérotés dans l'ordre où vous les avez collés.
À Entrée, le modèle reçoit votre phrase où chaque jeton est remplacé par le texte collé complet, octet pour octet, sauts de ligne compris. Rien n'est raccourci ni résumé. La conversation, elle, continue d'afficher le jeton, si bien qu'un long collage ne chasse pas l'échange de l'écran ; la session persistée et /copy all portent la question complète.
Deux détails découlent de « un collage est une donnée que vous apportez, pas quelque chose que vous avez tapé » :
- Les mentions
@cheminà l'intérieur d'un bloc collé ne sont pas résolues ; seules celles que vous avez tapées vous-même attachent un fichier (voir@chemin). - Une
/commandedans un collage est du texte pour le modèle, pas une commande.
Les collages plus courts que le seuil sont insérés comme du texte, exactement comme avant. Le terminal doit prendre en charge le collage encadré (bracketed paste) pour que tout cela fonctionne : Terminal.app, iTerm2, Ghostty et kitty le font ; dans tmux, un collage n'arrive encadré que si le terminal extérieur et tmux le prennent en charge tous deux (tmux le fait depuis la 1.8 ; aucune option set -g n'est nécessaire pour le passage, mais un paste-buffer sans -p envoie le texte comme des touches ordinaires, qui arrivent alors comme des caractères tapés et sont insérés un à un).
Voir aussi
- Ligne de commande — l'option
-tuiet les spécificités du mode fenêtre - Commandes slash — les touches de la fenêtre
- Fichier de configuration —
tuietpermissions - Architecture : une boucle, trois façades — pourquoi la fenêtre est une troisième façade sur le même puits
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 |
|