Shipping local voice with whisper.cpp

How PaneScale does dictation and voice commands without sending audio anywhere — model pinning, temporary recordings and commands we deliberately left out.

Long prompts are tiring to type. Speaking them is faster, and for many people more natural. But a microphone in a developer tool raises a fair question: where does the audio go? In PaneScale the answer is: nowhere.

Local transcription

Voice runs on whisper.cpp, a fast C++ implementation of OpenAI’s Whisper speech model that runs on an ordinary CPU. Two models are offered:

ModelSizeCharacter
Whisper Base142 MiBFast, multilingual
Whisper Turbo547 MiBMore accurate, still multilingual

Nothing is downloaded until you click. The whisper.cpp program comes from its official release; the models come from Hugging Face over HTTPS.

Pinned downloads

Every model is checked against a pinned SHA-256 hash and size before PaneScale uses it. If the file on the server ever changed — corrupted, replaced, truncated — PaneScale would refuse it instead of running an unknown model on your machine.

The recording lifecycle

  1. The microphone is captured in the app and converted to 16 kHz mono — what Whisper expects.
  2. The audio is written to a temporary WAV file.
  3. whisper.cpp transcribes it.
  4. The temporary file is deleted immediately.

Only the text remains. A recording can be up to ten minutes long, which covers even very long prompts.

Dictation lands where you are

The transcribed text is inserted where your cursor was: a terminal pane, the chat composer, a workflow brief, a task card. If the field can’t accept text, it goes to the clipboard so nothing is lost.

Commands, carefully

Voice commands act on PaneScale itself: change the layout, start an agent, queue something for tonight, ask what needs you. They are matched against a small set of phrases in English and German. If you almost said a command, PaneScale suggests the closest one instead of guessing.

What we left out

Some commands would be convenient and are deliberately missing: delete, approve, merge, push, deploy, publish. A misheard word should never be able to publish your code. Those actions stay clicks, behind approvals where it matters.

Try it

Settings → Voice & dictation: install whisper.cpp, download Whisper Base, pick your language. Then open the voice panel, press Space and say “show four panes”.

More articles

Checkpoints that never touch your branch

How PaneScale snapshots a working copy byte for byte without moving HEAD, the index or any branch — and why rewinding refuses to overwrite your edits.

Why the second pane opens instantly

Starting a coding CLI takes seconds. Pre-warmed sessions hide that wait — here is how we do it without eating your memory.

Measured, not estimated

Why the Token Guardian shows “not reported” instead of a guess — and how real budgets stop runs instead of turning numbers red.