Une dictée qui survit au terminal
Le collage échoue sans bruit dans les terminaux, SSH, tmux et claviers non-QWERTY. Pourquoi le presse-papiers échoue et ce que fait le mode frappe.
Les développeurs qui essaient des outils de dictée rencontrent souvent une panne à la forme très particulière. L’outil marche à merveille dans la démo. Il marche dans Notes, dans Slack, dans le navigateur. Puis vous placez le focus sur un terminal, vous dictez une phrase, et soit rien n’apparaît, soit quelque chose apparaît qui n’est pas ce que vous avez dit, soit la moitié apparaît et l’autre moitié se retrouve mystérieusement dans votre presse-papiers. Parfois ça marche en local et ça meurt dès que vous vous connectez en SSH à une machine.
Le schéma est assez constant pour que je ne pense pas qu’il s’agisse d’un bug d’un produit en particulier. C’est une conséquence de la façon dont la catégorie insère du texte — et cela échoue exactement là où vit un développeur.
Cela compte plus aujourd’hui qu’il y a deux ans. Si vous pilotez Claude Code à la voix — le workflow que j’ai décrit dans piloter Claude Code à la voix —, alors le terminal n’est pas une app parmi d’autres. C’est l’app. C’est là que vos prompts atterrissent, là où vos agents attendent des réorientations, là où toute l’affaire des voies parallèles fonctionne ou pas. Un outil de dictée capricieux dans les terminaux est, pour un vibecoder, capricieux dans son unique tâche.
Pourquoi le collage casse-t-il exactement là où vivent les développeurs ?
Voici le mécanisme au niveau de la catégorie. La plupart des outils de dictée insèrent le texte de la même façon : ils mettent votre phrase transcrite dans le presse-papiers système, puis synthétisent une frappe Cmd+V vers l’app active. C’est une valeur par défaut sensée — coller est instantané, ça marche dans presque tous les champs texte d’interface graphique, et cela n’a demandé quasiment aucun travail d’ingénierie par app.
Le problème, c’est tout ce dont cette hypothèse dépend en silence.
Cela dépend du fait que l’app active traite Cmd+V comme « coller ». Les terminaux, souvent, ne le font pas — beaucoup utilisent Cmd+V pour autre chose ou pour rien du tout, tmux et vim ont leurs propres idées sur ce que veut dire coller, et une session SSH distante peut interpréter une rafale de texte collé d’une façon que la machine locale ne peut pas prévoir. Bracketed paste, copy-mode, mode insertion contre mode normal : le monde du terminal est plein d’états où un collage synthétique atterrit au mauvais endroit ou nulle part.
Cela dépend de la disponibilité et de l’absence de protection du presse-papiers. Les gestionnaires de presse-papiers le réécrivent. Les gestionnaires de mots de passe le vident ou le protègent délibérément — une fonction de sécurité qui transforme « colle ma dictée » en « ne colle rien », silencieusement. Et même quand tout fonctionne, l’outil vient d’écraser ce que vous aviez copié. Le SHA de commit que vous transportiez entre deux fenêtres a disparu, remplacé par votre propre phrase. Pour quelqu’un qui jongle avec plusieurs voies, ce n’est pas une égratignure ; le presse-papiers faisait un travail.
Et cela dépend — c’est celle qui surprend les gens — de votre disposition clavier. Quand un outil se rabat sur la simulation de frappes, la méthode naïve consiste à envoyer des codes de touche : les positions physiques des touches. Les codes de touche se traduisent en caractères via votre disposition. En QWERTY, le code du « V » produit un V. En Dvorak, cette même position physique donne une autre lettre. Un outil qui simule des scancodes sur une disposition Dvorak, AZERTY ou Colemak produit donc un texte qui semble être passé par un chiffrement par substitution. Les utilisateurs rapportent du charabia et supposent que la reconnaissance vocale a échoué. Ce n’est pas le cas — la parole était parfaite, c’est l’insertion qui l’a brouillée.
Rien de tout cela n’est de la malveillance ou de la paresse de la part de qui que ce soit. Le collage par presse-papiers est la bonne valeur par défaut pour 90 % des cas. C’est simplement que les développeurs passent leur journée dans les 10 % restants.
Ce que « tape-le à la place » veut dire concrètement
Keebye a un réglage nommé insert_mode avec deux valeurs : paste, la valeur par défaut, et type.
Le mode frappe ne colle pas. Sur macOS, il utilise CGEventKeyboardSetUnicodeString — une API qui attache le texte Unicode réel à un événement clavier synthétique. Le caractère est transporté dans l’événement lui-même, il n’est pas retrouvé via votre disposition clavier. Cela le rend indépendant de la disposition par construction : Dvorak, AZERTY, Colemak, quelle que soit votre disposition, le texte qui arrive est le texte qui a été transcrit, parce qu’il n’y a jamais eu de traduction scancode-vers-caractère à rater.
La deuxième propriété du mode frappe est celle qui intéresse les utilisateurs de terminal : il ne touche jamais au presse-papiers. Zéro opération sur le presse-papiers dans ce chemin de code. Le contenu de votre presse-papiers reste le vôtre — le SHA survit, le gestionnaire de mots de passe n’a rien à protéger, le gestionnaire de presse-papiers n’a rien à journaliser.
Et comme les terminaux et les sessions distantes peuvent s’étrangler avec du texte qui arrive plus vite que ne tape un humain, le mode frappe se cadence délibérément : le texte entre par blocs de 16 caractères avec un intervalle de 4 millisecondes entre les blocs. Assez rapide pour qu’une phrase atterrisse en bien moins d’une seconde ; assez mesuré pour qu’un panneau tmux via SSH la reçoive comme des frappes qu’il peut suivre, et non comme un pavé qu’il doit interpréter.
Le mode collage est toujours là, et toujours par défaut, parce qu’il est réellement plus rapide pour les gros blocs de texte dans les apps graphiques ordinaires — un message Slack de trois paragraphes arrive en un seul collage plutôt qu’en un flux de blocs. Même le mode collage a retenu la leçon de la disposition, cela dit : le Cmd+V synthétique utilise le keycode physique du V, donc le collage lui-même ne casse pas sur les dispositions non-QWERTY comme peuvent le faire les approches par recherche de caractère.
La configuration pratique pour le travail avec des agents est simple : passez insert_mode sur type, placez le focus sur le terminal où tourne Claude Code, maintenez la touche, dites la réorientation, relâchez. Le prompt arrive comme le feraient des frappes, parce que pour le terminal, c’en sont. Il existe une version pas à pas de cette configuration, y compris les spécificités SSH et tmux, dans la dictée vocale pour le terminal macOS.
Les limites honnêtes
Le mode frappe est plus lent que le collage pour les textes longs — c’est de l’arithmétique, pas un défaut. Des frappes par blocs avec des intervalles de cadence prennent plus de temps qu’un seul événement de collage, et si vous dictez plusieurs paragraphes dans un document, le mode collage paraîtra plus vif. C’est exactement pour cela que le collage reste la valeur par défaut et que le mode frappe s’active dans les réglages ; le bon mode dépend de la destination de votre texte.
Certaines applications limitent ou filtrent la saisie synthétique, généralement pour des raisons de sécurité, et aucune stratégie d’insertion n’y échappe complètement — une app qui refuse les événements synthétiques les refuse de tous les outils de dictée.
Et pour être clair sur ce que cet article affirme et n’affirme pas : la plainte « le collage casse dans les terminaux » est un schéma qui traverse la catégorie de la dictée, pas un défaut propre à un concurrent. D’autres outils ont leurs propres réponses et leurs propres forces — nous avons écrit des comparaisons honnêtes dans Keebye vs Superwhisper et Keebye vs Wispr Flow, y compris les cas où chacun d’eux pourrait mieux vous convenir.
L’insertion est la moitié ingrate de la dictée
La reconnaissance vocale reçoit toute l’attention — noms de modèles, promesses de précision, nombre de langues. Mais un outil de dictée a deux tâches : vous entendre correctement, puis amener le texte là où est votre curseur sans le perdre ni le déformer. La deuxième tâche paraît triviale et c’est là que la catégorie échoue discrètement auprès des développeurs, parce que la deuxième tâche est facile dans TextEdit et difficile dans un panneau tmux sur une machine distante avec une disposition Dvorak.
Si vos prompts atterrissent dans des terminaux — et si vous pilotez des agents de code, c’est le cas —, l’insertion n’est pas une note de bas de page. C’est la différence entre un outil que vous montrez en démo et un outil que vous utilisez. Les modes de défaillance voisins ont d’ailleurs la même saveur : le premier mot d’une dictée avalé par le démarrage à froid du micro est une autre plainte à l’échelle de la catégorie, avec une explication mécanique, et nous l’avons documentée dans pourquoi les apps de dictée avalent votre premier mot.
Keebye est en accès anticipé pour macOS. Si votre dictée a déjà disparu quelque part entre votre bouche et un terminal, lancez votre essai gratuit ci-dessous, activez le mode frappe, et réessayez le même prompt. Votre SHA copié reste dans le presse-papiers pendant que les mots arrivent en Unicode tapé.
Testez votre chemin terminal le plus difficile
Lancez votre essai gratuit, activez le mode frappe, et essayez le prompt SSH ou tmux qui casse habituellement le collage.
Start free trialEarly access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.
Continuez à lire
Dicter des prompts aux agents parallèles, voie par voie
Deux ou trois agents de code à la fois font du prompt le goulot d’étranglement. Un workflow vocal pour alimenter les voies parallèles sans quitter la vôtre.
Claude Code à la voix : construire en voies parallèles
Avec les agents de code IA, la frappe devient un frein. Un workflow pour dicter prompts, revues et réorientations en voies parallèles sur macOS.
Dites ce que j’ai dit : la dictée sans réécriture par l’IA
La dictée IA réécrit vos mots : nuances perdues, sens inversé. Pourquoi le polissage par LLM vous paraphrase et Keebye reste littéral.