Dettatura che sopravvive al terminale
La dettatura non si incolla, senza avviso, in terminali, SSH, tmux e layout non-QWERTY. Perché gli appunti falliscono e cosa fa la modalità digitazione.
Chi sviluppa e prova gli strumenti di dettatura incappa spesso in un fallimento dalla forma molto precisa. Lo strumento funziona benissimo nella demo. Funziona in Note, in Slack, nel browser. Poi metti a fuoco un terminale, detti una frase e o non compare niente, o compare qualcosa che non è ciò che hai detto, oppure ne compare metà e l'altra metà è misteriosamente finita negli appunti. A volte funziona in locale e muore nell'istante in cui fai SSH su una macchina.
Lo schema è abbastanza costante da farmi pensare che non sia un bug di un singolo prodotto. È una conseguenza di come questa categoria inserisce il testo — e fallisce esattamente nei posti dove uno sviluppatore vive.
Questo conta più di quanto contasse due anni fa. Se guidi Claude Code con la voce — il flusso che ho descritto in Guidare Claude Code con la voce — allora il terminale non è un'app tra tante. È l'app. È dove atterrano i tuoi prompt, dove i tuoi agenti aspettano un cambio di rotta, dove tutta la faccenda delle corsie parallele o funziona o non funziona. Uno strumento di dettatura ballerino nei terminali è, per chi fa vibecoding, ballerino nel suo unico compito.
Perché incollare si rompe proprio dove vivono gli sviluppatori?
Ecco la meccanica a livello di categoria. La maggior parte degli strumenti di dettatura inserisce il testo allo stesso modo: mette la frase trascritta negli appunti di sistema, poi sintetizza una pressione Cmd+V sull'app che ha il focus. È un default sensato — incollare è istantaneo, funziona in quasi ogni campo di testo grafico e non ha richiesto quasi alcuna ingegnerizzazione per singola app.
Il problema è tutto ciò da cui quell'assunzione dipende in silenzio.
Dipende dal fatto che l'app in focus interpreti Cmd+V come «incolla». I terminali spesso non lo fanno — molti usano Cmd+V per altro o per niente, tmux e vim hanno le loro idee su cosa significhi incollare, e una sessione SSH remota può interpretare una raffica di testo incollato in modi che la macchina locale non può prevedere. Bracketed paste, copy-mode, modalità inserimento contro modalità normale: il mondo dei terminali è pieno di stati in cui un incolla sintetico atterra male o non atterra affatto.
Dipende dal fatto che gli appunti siano disponibili e non protetti. I gestori di appunti li riscrivono. I gestori di password li svuotano o li proteggono deliberatamente — una funzione di sicurezza che trasforma «incolla la mia dettatura» in «non incollare niente», in silenzio. E anche quando tutto funziona, lo strumento ha appena sovrascritto quello che avevi copiato. Lo SHA del commit che stavi trasportando tra due finestre non c'è più, sostituito dalla tua stessa frase. Per chi gestisce più corsie, non è un graffio: gli appunti stavano facendo un lavoro.
E dipende — questa è quella che sorprende — dal tuo layout di tastiera. Quando uno strumento ripiega sulla simulazione delle battute, il modo ingenuo è inviare i codici dei tasti: le posizioni fisiche. I codici dei tasti si mappano ai caratteri attraverso il tuo layout. Su QWERTY, il codice della «V» produce una V. Su Dvorak, quella stessa posizione fisica è una lettera diversa. Così uno strumento che simula scancode su un layout Dvorak, AZERTY o Colemak produce testo che sembra passato per un cifrario a sostituzione. Gli utenti segnalano caratteri senza senso e danno per scontato che sia fallito il riconoscimento vocale. Non è così — il parlato era perfetto, è stato l'inserimento a mescolarlo.
Niente di tutto ciò è cattiveria o pigrizia di qualcuno. Incollare dagli appunti è il default giusto per il 90% dei casi. È solo che gli sviluppatori passano la giornata nell'altro 10%.
Cosa significa davvero «digitalo invece di incollarlo»
Keebye ha un'impostazione chiamata insert_mode con due valori: paste, che è il predefinito, e type.
La modalità digitazione non incolla. Su macOS usa CGEventKeyboardSetUnicodeString — una API che allega il testo Unicode vero e proprio a un evento di tastiera sintetico. Il carattere è trasportato dentro l'evento stesso, non cercato attraverso il tuo layout di tastiera. Questo la rende indipendente dal layout per costruzione: Dvorak, AZERTY, Colemak, qualunque cosa tu usi, il testo che arriva è il testo che è stato trascritto, perché non c'è mai stata una traduzione da scancode a carattere da sbagliare.
La seconda proprietà della modalità digitazione è quella che sta a cuore a chi usa il terminale: non tocca mai gli appunti. Zero operazioni sugli appunti su quel percorso di codice. Il contenuto dei tuoi appunti resta tuo — lo SHA sopravvive, il gestore di password non ha nulla da proteggere, il gestore di appunti non ha nulla da registrare.
E poiché terminali e sessioni remote possono strozzarsi con testo che arriva più veloce di qualsiasi essere umano, la modalità digitazione si dà deliberatamente un ritmo: il testo entra in blocchi da 16 caratteri con 4 millisecondi di pausa tra un blocco e l'altro. Abbastanza veloce da far atterrare una frase in ben meno di un secondo; abbastanza misurato da far sì che un pannello tmux via SSH lo riceva come battute che riesce a seguire, e non come una massa da interpretare.
La modalità incolla è ancora lì, e resta il predefinito, perché è genuinamente più veloce per grossi blocchi di testo nelle normali app grafiche — un messaggio Slack di tre paragrafi arriva come un unico incolla invece che come un flusso di blocchi. Anche la modalità incolla, però, ha imparato la lezione sul layout: il Cmd+V sintetico usa il keycode fisico della V, quindi incollare non si rompe sui layout non-QWERTY come può capitare agli approcci basati sulla ricerca dei caratteri.
La configurazione pratica per il lavoro con gli agenti è semplice: porta insert_mode su type, metti a fuoco il terminale che esegue Claude Code, tieni premuto il tasto, pronuncia il cambio di rotta, rilascia. Il prompt arriva come arriverebbero le battute, perché per quanto ne sa il terminale è proprio quello che sono. C'è una versione passo passo di questa configurazione, con le specificità di SSH e tmux, in dettatura vocale per il terminale di macOS.
I limiti onesti
La modalità digitazione è più lenta dell'incolla per i testi lunghi — è aritmetica, non un difetto. Battute a blocchi con pause di ritmo impiegano più di un singolo evento di incolla, e se stai dettando diversi paragrafi in un documento la modalità incolla sembrerà più scattante. È esattamente per questo che l'incolla resta il predefinito e la modalità digitazione è qualcosa che scegli nelle impostazioni; la modalità giusta dipende da dove va il tuo testo.
Alcune applicazioni limitano o filtrano l'input sintetico, di solito per ragioni di sicurezza, e nessuna strategia di inserimento se ne sottrae del tutto — un'app che rifiuta gli eventi sintetici li rifiuta da ogni strumento di dettatura.
E per essere chiari su cosa questo articolo afferma e non afferma: la lamentela «incollare si rompe nei terminali» è uno schema di tutta la categoria della dettatura, non un difetto esclusivo di un concorrente. Altri strumenti hanno le loro risposte e i loro punti di forza — abbiamo scritto confronti onesti in Keebye vs Superwhisper e Keebye vs Wispr Flow, inclusi i casi in cui ciascuno di loro potrebbe starti meglio.
L'inserimento è la metà senza gloria della dettatura
Il riconoscimento vocale si prende tutta l'attenzione — nomi di modelli, affermazioni sulla precisione, conteggi di lingue. Ma uno strumento di dettatura ha due compiti: sentirti correttamente e poi portare il testo dov'è il tuo cursore senza perderlo o storpiarlo. Il secondo compito sembra banale ed è quello in cui la categoria fallisce in silenzio con gli sviluppatori, perché il secondo compito è facile in TextEdit e difficile in un pannello tmux su una macchina remota sotto un layout Dvorak.
Se i tuoi prompt atterrano nei terminali — e se guidi agenti di coding, ci atterrano — l'inserimento non è una nota a piè di pagina. È la differenza tra uno strumento che dimostri e uno strumento che usi. Fra l'altro, modalità di fallimento simili hanno lo stesso sapore: la prima parola di una dettatura mangiata dall'avvio a freddo del microfono è un'altra lamentela diffusa in tutta la categoria con una spiegazione meccanica, e l'abbiamo raccontata in perché le app di dettatura si mangiano la tua prima parola.
Keebye è in accesso anticipato per macOS. Se la tua dettatura è mai sparita da qualche parte tra la tua bocca e un terminale, inizia la prova gratuita qui sotto, abilita la modalità digitazione e riprova lo stesso prompt. Lo SHA che avevi copiato resta negli appunti mentre le parole arrivano come Unicode digitato.
Metti alla prova il tuo percorso di terminale più difficile
Inizia la prova gratuita, abilita la modalità digitazione e prova il prompt SSH o tmux dove di solito incollare si rompe.
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.
Continua a leggere
Dettare prompt ad agenti paralleli, corsia per corsia
Due o tre agenti di coding insieme rendono il prompt il collo di bottiglia. Un flusso vocale per alimentare le corsie parallele senza lasciare la tua.
Claude Code con la voce: costruire a corsie parallele
Gli agenti AI rendono la digitazione un collo di bottiglia. Un flusso per dettare prompt, review e cambi di rotta su corsie parallele di agenti in macOS.
Di' quello che ho detto: dettatura senza la riscrittura AI
La dettatura AI riscrive le tue parole: perde precisazioni, ribalta il senso. Perché la rifinitura LLM ti parafrasa e Keebye resta letterale.