Голосовое программирование прямо в терминале: когда руки заняты, мозг свободен
Самый недооценённый прирост производительности — это перестать переключаться между мышкой, клавиатурой и собственными мыслями.
Идея диктовать код звучит как трюк из demo-видео. На практике это другое: ты не «диктуешь» — ты описываешь намерение, а Vibe Codex переводит его в патч, запускает тесты и оставляет diff на ревью. Микрофон — не альтернатива клавиатуре, а способ держать фокус на задаче, пока руки сами держат кружку с кофе.
Почему именно терминал
В IDE голос упирается в плагины, окна и контексты. В терминале одна команда — одна сессия, один stdout. Vibe Codex запускается в любом эмуляторе, и микрофон становится таким же транспортом ввода, как и клавиатура. Никаких WebRTC-демонов, никаких всплывающих окон браузера — push-to-talk на привычную клавишу, и поток токенов летит в роутер.
$ vibe-codex --voice
[mic] press SPACE to talk, ESC to stop
[mic] listening... "перепиши обработчик OrderService.cancel,
чтобы он атомарно списывал баланс и отменял заказ"
[plan] 1 file: src/order/service.go
[plan] generating patch via Claude Opus 4.7
Что слышит микрофон, а что — модель
Локально работает быстрая модель распознавания речи — она же дамповый шумомер: убирает фоновый стук клавиш, дыхание, реплики коллеги за стенкой. На LLM-стороне распознанный текст уходит вместе с актуальным контекстом репозитория. Маршрут проходит через Vibe Router, который сам выбирает модель: для коротких правок — быструю и дешёвую, для архитектурных вопросов — Claude Opus 4.7 или GPT 5.2 Codex.
«Голос экономит не время набора, а контекст-свитчинг. Между мыслью и фиксом — две секунды вместо двадцати».
Push-to-talk против always-on
По умолчанию микрофон слушает только при удержании клавиши. Это не паранойя: длинные always-on сессии съедают токены и регулярно ловят случайные реплики. Конфигурация лежит в ~/.vibe-codex/config.toml — там же выставляется горячая клавиша, чувствительность VAD и язык.
# ~/.vibe-codex/config.toml
[voice]
mode = "push_to_talk" # или "always_on"
hotkey = "Space"
language = "ru"
silence_ms = 800
vad_aggressive = 2
model_route = "auto" # роутер сам подбирает LLM
Длинные диктовки и брейнсторм
Для тридцатисекундной задачи push-to-talk идеален. Для двух-трёхминутного описания архитектуры есть режим brainstorm: Vibe Codex складирует всё в один буфер, делит на абзацы, отдаёт reasoning-модели и возвращает не патч, а конспект решения. Дальше — обычный цикл правок.
- «Объясни, как мы переделаем платёжный модуль» — на выходе план и список затронутых файлов.
- «Сгенерируй интеграционный тест на эту последовательность» — на выходе один файл и команда запуска.
- «Что не так с этим stack-trace?» — модель прочитает stderr, найдёт строку и предложит фикс.
Пар-программинг и ревью
В паре с коллегой голосовой режим работает странно хорошо. Один смотрит на diff, второй вслух описывает изменения — Vibe Codex успевает применить правки до того, как разговор уйдёт в сторону. Команда vibe-codex review запускает сессию, в которой модель задаёт уточняющие вопросы голосом, а ответы тут же логируются в commit-сообщение.
Приватность
Аудио не покидает машину: на сторону роутера уходит только распознанный текст. В корпоративных установках можно полностью отключить отправку микрофонного буфера и работать с локальной моделью распознавания. Транскрипты по умолчанию хранятся в ~/.vibe-codex/transcripts/ 7 дней — лимит конфигурируется или сбрасывается одной командой.
$ vibe-codex transcripts purge
removed 142 sessions (last seen 2026-04-30)
Голос — не магия и не игрушка. Это переключатель: фокус остаётся на задаче, а скучный путь от мысли до правки сокращается до длины одной фразы.
Готов попробовать?
brew tap xrouter-chat/tap && brew install vibe-codex — и за 30 секунд ты в деле.
Поставить Vibe Codex →