Open source macOS dictation

Local-first voice dictation for macOS.

KeyScribe turns speech into finished text wherever you type. Speech recognition always runs on your Mac, there is no telemetry or account, and optional rewrite modes use only providers you configure.

On-device speechNo cloud speech-to-text path.
No telemetryNo usage, transcript, or crash collection.
No accountInstall, grant permissions, and dictate.
BYOK optionalRewrite only when a mode enables it.
Plain filesTOML config and local JSONL history.

Speak once. Let the mode decide the shape.

Hold a key, say the thought, release, and KeyScribe inserts the result as one undoable edit. A mode can keep the transcript plain, polish it, shape it as email, edit selected text, or route by a spoken suffix such as "as an email."

  • Trigger by Fn, Right-⌥, a key chord, app context, URL, or menu choice.
  • Use spoken edits like new line, new paragraph, scratch that, and insert clipboard contents.
  • Correct names and jargon once, then reuse the fix in future dictations.
KeyScribe routing one dictation through Plain Dictation, Cleanup, and Email modes

Built for people who care where their words go.

The default path stays local. Power features are explicit, inspectable, and mode-specific.

Local speech recognition

Audio is transcribed on your Mac by curated on-device engines. Model weights download on demand and are reused offline.

Optional rewrite modes

Hosted or local OpenAI-compatible providers can polish or transform text only for modes you enable.

Visible data boundary

Rewrite is mode-specific, context sharing is explicit, and privacy mode turns context off. Redaction is an extra best-effort pass, not a promise.

Spoken edits

Insert line breaks, paragraphs, tabs, clipboard contents, verbatim spans, and scratch-that corrections before text lands.

Edit in place

Select existing text, speak an instruction, and replace the selection with a rewritten result in the app you are using.

File ownership

Modes, vocabulary, replacements, connections, prompt fragments, and history live as readable local files.

KeyScribe turning spoken commands into line breaks, a scratch-that correction, and inserted clipboard content

Edit while you dictate.

Speech is messy. KeyScribe lets useful command phrases change the text before insertion, while verbatim spans protect text that should stay literal.

  • Say "insert new line" or "insert new paragraph" while speaking.
  • Say "scratch that" to remove the current segment before insertion.
  • Say "begin verbatim" and "end verbatim" to protect exact wording.

Install from Homebrew or a notarized DMG.

Current builds are pre-1.0 prereleases for Apple silicon Macs. KeyScribe is a menu-bar app, so after launch look for the waveform glyph in the menu bar.

brew install rsperko/tap/keyscribe

Requirements

macOS 15+ on Apple silicon. Apple Speech appears only on macOS 26+.

Source build

No paid Apple Developer account is needed for a local dev build.