Using VoiceFlow

Dictation mode

Speak and get clean written text pasted at your cursor. Dictation is the default mode and the one you'll use most.

Default mode

dictation

Polish model

openai/gpt-oss-120b

Polish

On by default

Starting and stopping a recording

Dictation supports two independent triggers, both driven by the native key listener so they fire while you are in other apps:

Hold to talk

Default +Space. Recording runs while the keys are held and stops the moment you release them.

Toggle

Default `. Tap once to start, tap again to stop — good for longer, hands-free dictation.

When recording starts, the overlay repositions to the bottom center of the display under your cursor and floats above every app. When it stops, it shows a transcribing state, then the result, then fades back to idle.

What AI polish does

With enablePolish on (the default), the raw transcript is sent to a language model that rewrites it as clean written text. The rewriter is instructed to act as a rewriter, not an assistant: it never answers questions in your speech, never translates, and keeps roughly the same length as what you said.

  • Filler words, false starts, and repetitions are removed.
  • Speech with multiple points is restructured into a numbered list; a single thought stays as prose.
  • The original language is preserved exactly — including code-switching between languages mid-sentence.
  • App and window context (and any selected text) are passed as hints so technical terms and variable names survive.

Polish always fails safe

If the polish call errors, returns nothing, or produces output more than 4× longer than the input, VoiceFlow discards it and pastes the raw transcript instead. You never lose your words to a bad rewrite.

The dictation flow

Recordbuffer PCM16
TranscribeWhisper, 2-pass
Polishrewrite to clean text
Injectclipboard + ⌘V
Savehistory JSON
Dictation pipeline. The polish step is skipped entirely when enablePolish is off, pasting the raw transcript.

Common questions

Yes. Disable it in Settings and VoiceFlow pastes the raw Whisper transcript. This is faster and useful when you want a verbatim record.
Paste uses a simulated ⌘V into the previously focused app, so it works anywhere a normal paste works. Apps that block programmatic paste are the exception.
VoiceFlow saves your existing clipboard, writes the result, pastes, then restores your original clipboard content about half a second later.
Polish skips text longer than 50,000 characters and falls back to the raw transcript. Practical dictations are far below that.