Liu Terminal Voice Prompt. Dictate into any pane with Cmd+Shift+M — Whisper large-v3-turbo runs on-device across 100 languages, or use a hosted speech API.
Speak a prompt and Liu types it into the pane you are looking at. Whisper large-v3-turbo runs on your machine — no network, no account — or you can point it at a hosted speech API instead.
Press Cmd+Shift+M to start recording and press it again to stop. A card appears in the bottom-right corner with a live waveform of what the microphone is hearing. Recording also stops on its own after a couple of seconds of silence once you have actually said something, and at a hard ceiling so a forgotten shortcut cannot record forever. Esc cancels.
Where the text lands: the FOCUSED pane, not "the agent". You are looking at one pane and expect the words where your cursor is — which also makes this work in a plain shell, in a REPL, and in whatever CLI ships next. Newlines in the transcript become spaces, because a carriage return is not whitespace to an agent CLI: it submits the prompt. You decide when to send, unless you turn on auto-submit.
Settings › Voice lists every input device and pins the one you pick by its persistent identifier, not by name or position — two identical USB microphones report the same name, and indices move as devices come and go. That matters more than it sounds: the system default changes on its own when headphones arrive or a monitor with a webcam is docked, and a wrong-but-working input still draws a waveform, just of the wrong room.
The language picker offers Auto plus all 100 languages the model was trained on. Auto costs one extra decoder step on the first window and is right far more often than a wrong pin, so it leads.
Turn on "To English" and the transcript arrives in English whatever you spoke. There is a wrinkle worth knowing: large-v3-turbo is a distillation trained on transcription alone and cannot perform Whisper's translate task at all — asked to, it returns an ellipsis rather than an error. Liu detects that from the model itself and routes the transcript through its Translate engine instead, so the feature works on the bundled model. On the API backend, or on a full large-v3, the translation happens at the source in one step.
Everything is on the Voice tab in Settings, and persists to config.json:
voice_enabled, voice_backend (0 = local, 1 = API)voice_model_path, voice_lang, voice_translatevoice_input_device, voice_auto_submitvoice_max_seconds, voice_silence_stop_secvoice_api_provider, voice_api_model, voice_api_key, voice_api_base_urlDefaults are local backend, automatic language detection, 120 seconds maximum recording, 2 seconds of silence-to-stop after speech, translation off and auto-submit off. The API backend uploads the recording to the selected provider; the local backend keeps audio on the machine.
Türkçe · 简体中文 · 한국어 · Español · Deutsch · Italiano · Français · 日本語 · العربية