For AI agents: full index at https://keebye.com/llms.txt

Диктовка, която оцелява в терминала

Поставянето на диктовка тихо се проваля в терминали, SSH, tmux и не-QWERTY подредби. Защо клипбордът се проваля и какво прави режимът на писане.

Teodor Deleanu10 юли 2026 г.7 мин четене

Разработчиците, които пробват инструменти за диктовка, често удрят на провал с много конкретна форма. Инструментът работи прекрасно в демонстрацията. Работи в Notes, в Slack, в браузъра. После фокусирате терминал, диктувате изречение и или не се появява нищо, или се появява нещо, което не сте казали, или се появява половината, а другата половина сега мистериозно е в клипборда ви. Понякога работи локално и умира в мига, в който влезете по SSH в някоя машина.

Моделът е достатъчно постоянен, за да не смятам, че е бъг в един-единствен продукт. Той е следствие от начина, по който цялата категория вмъква текст — и се проваля точно на местата, където живее разработчикът.

Това има по-голямо значение сега, отколкото преди две години. Ако управлявате Claude Code с глас — работният процес, който описах в Управление на Claude Code с глас — тогава терминалът не е едно приложение сред много. Той е приложението. Там кацат промптите ви, там агентите ви чакат пренасочване, там цялата работа с паралелни линии или става, или не. Инструмент за диктовка, който е капризен в терминали, за един vibecoder е капризен в единствената си работа.

Защо поставянето се чупи точно там, където живеят разработчиците?

Ето механиката на ниво категория. Повечето инструменти за диктовка вмъкват текст по един и същ начин: слагат транскрибираното ви изречение в системния клипборд, после синтезират натискане на Cmd+V към фокусираното приложение. Това е разумно подразбиране — поставянето е мигновено, работи в почти всяко GUI поле за текст и почти не изисква инженерна работа за всяко приложение поотделно.

Проблемът е всичко, от което това допускане тихо зависи.

Зависи от това фокусираното приложение да третира Cmd+V като „постави“. Терминалите често не го правят — много от тях ползват Cmd+V за нещо друго или за нищо, tmux и vim имат собствени представи какво значи поставяне, а отдалечена SSH сесия може да изтълкува залп поставен текст по начини, които локалната машина не може да предвиди. Bracketed paste, copy-mode, insert-mode срещу normal-mode: светът на терминала е пълен със състояния, в които синтетичното поставяне каца погрешно или не каца никъде.

Зависи от това клипбордът да е наличен и незащитен. Мениджърите на клипборда го пренаписват. Мениджърите на пароли нарочно го изчистват или защитават — мярка за сигурност, която мълчаливо превръща „постави диктовката ми“ в „не постави нищо“. И дори когато всичко работи, инструментът току-що е презаписал онова, което сте копирали. SHA-то на комита, което сте носили между прозорците, го няма — заменено е от вашето собствено изречение. За човек, който жонглира с няколко линии, това не е драскотина; клипбордът вършеше работа.

И зависи — това е частта, която изненадва хората — от подредбата на клавиатурата ви. Когато инструмент премине към симулиране на натискания, наивният начин е да се изпращат кодове на клавиши: физическите позиции. Кодовете на клавишите се превръщат в знаци през вашата подредба. При QWERTY кодът за „V“ дава V. При Dvorak същата физическа позиция е друга буква. Така че инструмент, който симулира скан-кодове при подредба Dvorak, AZERTY или Colemak, произвежда текст, който изглежда минал през шифър със замяна. Потребителите съобщават за безсмислица и предполагат, че разпознаването на реч се е провалило. Не се е провалило — речта е била идеална, вмъкването я е разбъркало.

Нищо от това не е злонамереност или мързел от нечия страна. Поставянето през клипборда е правилното подразбиране за 90-те процента от случаите. Просто разработчиците прекарват деня си в другите 10.

Какво всъщност значи „напиши го вместо това“

Keebye има настройка insert_mode с две стойности: paste, която е по подразбиране, и type.

Режимът на писане не поставя. На macOS той използва CGEventKeyboardSetUnicodeString — API, който закача самия Unicode текст към синтетично клавишно събитие. Знакът се носи в самото събитие, а не се търси през подредбата на клавиатурата ви. Това го прави независим от подредбата по конструкция: Dvorak, AZERTY, Colemak, каквото и да ползвате, текстът, който пристига, е текстът, който е бил транскрибиран, защото никога не е имало превод от скан-код към знак, който да се обърка.

Второто свойство на режима на писане е онова, което вълнува хората в терминала: той изобщо не докосва клипборда. Нула операции с клипборда по този кодов път. Съдържанието на клипборда ви си остава ваше — SHA-то оцелява, мениджърът на пароли няма от какво да се пази, мениджърът на клипборда няма какво да запише.

И тъй като терминалите и отдалечените сесии могат да се задавят от текст, който пристига по-бързо, отколкото който и да е човек пише, режимът на писане нарочно се темпорира: текстът влиза на части от 16 знака с пауза от 4 милисекунди между частите. Достатъчно бързо, за да кацне изречение доста под секунда; достатъчно премерено, за да го приеме tmux панел през SSH като натискания, с които може да върви в крачка, а не като буца, която трябва да тълкува.

Режимът на поставяне още го има и още е по подразбиране, защото наистина е по-бърз за големи блокове текст в обикновени GUI приложения — съобщение от три абзаца в Slack пристига като едно поставяне, а не като поток от части. Впрочем и режимът на поставяне е взел урока за подредбите: синтетичното Cmd+V използва физическия код на клавиша V, така че самото поставяне не се чупи при подредби, различни от QWERTY, както може да се случи при подходите с търсене по знак.

Практичната настройка за работа с агенти е проста: превключете insert_mode на type, фокусирайте терминала, в който върви Claude Code, задръжте клавиша, изговорете пренасочването и пуснете. Промптът пристига така, както биха пристигнали натискания на клавиши, защото откъдето терминалът гледа, точно това са. Стъпка по стъпка същата настройка, включително спецификите за SSH и tmux, е в гласова диктовка за терминала на macOS.

Честните ограничения

Режимът на писане е по-бавен от поставянето при дълъг текст — това е аритметика, не дефект. Насечените натискания с паузи отнемат повече време от едно събитие за поставяне и ако диктувате няколко абзаца в документ, режимът на поставяне ще се усеща по-пъргав. Точно затова поставянето остава по подразбиране, а режимът на писане е нещо, което включвате в настройките; правилният режим зависи от това накъде отива текстът ви.

Някои приложения ограничават скоростта или филтрират синтетичния вход, обикновено от съображения за сигурност, и никоя стратегия за вмъкване не избягва това напълно — приложение, което отказва синтетични събития, ги отказва от всеки инструмент за диктовка.

И да сме наясно какво твърди и какво не твърди тази статия: оплакването „поставянето се чупи в терминали“ е модел в цялата категория диктовка, а не дефект, присъщ само на някой конкурент. Другите инструменти имат свои отговори и свои силни страни — написахме честни сравнения в Keebye срещу Superwhisper и Keebye срещу Wispr Flow, включително за това къде всеки от тях може да ви пасне по-добре.

Вмъкването е негламурната половина на диктовката

Разпознаването на реч получава цялото внимание — имена на модели, твърдения за точност, брой езици. Но инструментът за диктовка има две задачи: да ви чуе правилно и после да докара текста там, където е курсорът ви, без да го изгуби или осакати. Втората задача звучи тривиално и точно там категорията тихо проваля разработчиците, защото втората задача е лесна в TextEdit и трудна в tmux панел на отдалечена машина при подредба Dvorak.

Ако промптите ви кацат в терминали — а ако управлявате агенти за код, кацат — вмъкването не е бележка под линия. То е разликата между инструмент, който демонстрирате, и инструмент, който ползвате. Между другото, сродните начини на провал имат същия вкус: изяждането на първата дума от диктовката заради студен старт на микрофона е друго оплакване в цялата категория с механично обяснение и го описахме в Защо приложенията за диктовка изяждат първата ви дума.

Keebye е в ранен достъп за Mac и Windows. Ако диктовката ви някога е изчезвала някъде между устата ви и терминала, започнете безплатния си пробен период по-долу, включете режима на писане и повторете същия промпт. Копираното SHA си остава в клипборда, докато думите пристигат като написан Unicode.

Тествайте най-трудния си път през терминала

Започнете безплатния пробен период, включете режима на писане и опитайте промпта през SSH или tmux, който обикновено чупи поставянето.

Start free trial

For Mac and Windows. Your 14 days start when you first sign in from the app.

Продължете да четете