Open Source · Apache 2.0

Hold a key. Speak.
Watch the words land.

Push-to-talk dictation for macOS. Hold a hotkey, speak naturally, and cleaned-up text lands at your cursor, on-device by default.

FriSpeak on macOS: a Configuration panel showing speech model selection (Local Generative with Parakeet TDT on the Neural Engine), intelligence features, and OpenRouter API key setup.
FriSpeak on macOS · speech, intelligence, and OpenRouter

How it works

One gesture. Zero ceremony.

  1. Step 01

    Hold your hotkey.

    Pick any combination you like. A floating HUD appears the moment you press, so you always know FriSpeak is listening.

  2. Step 02

    Speak naturally.

    Talk at your own pace. Filler words, false starts, and rambling are fine. Your chosen speech engine transcribes offline while you talk.

  3. Step 03

    Release. It just types.

    On release, FriSpeak cleans up the text, formats it for the surrounding context, and types it directly into the focused app at your cursor.

Cursor-aware insertion

It knows where
your caret is.

FriSpeak reads the focused text field through macOS Accessibility, then formats the result for the caret position. A new paragraph here. A period there. Sentence case at the start of a sentence. Never a runaway capital letter.

Air-gapped

Works in the air.

No server calls, no network latency. Dictate, clean up, and paste a long email on a transatlantic flight without Wi-Fi.

🔒

Stays on device

Audio and transcripts never leave your Mac. Even local models run inside your own sandbox.

Smart cleanup

Optional Apple Intelligence, local MLX, or remote cleanup pass removes filler, fixes punctuation, and respects tone.

📋

Clipboard-safe

Insertion is direct. Your clipboard is never trampled, so you can keep copying and pasting while you dictate.

Dictation history

Every take is kept locally with a one-click re-insert button, so nothing is ever lost to a misclick.

🎚

Quiet HUD

A small floating indicator that fades when you start typing. Never in the way. Never a chrome hog.

🍃

SwiftUI native

Built for Apple Silicon. Tiny footprint, instant launch, no Electron in sight.

Pipelines

Speech and intelligence, your call.

Two independent stages. Pick any combination, switch anytime. The local path is fast, free, and private.

Speech

What transcribes your voice into text.

🍎

Apple Native

Default · On-device

Lightweight, on-device dictation via Apple's built-in speech recognizer. Zero setup, instant start.

Local Generative

Core ML · MLX

Omnilingual ASR 300M or Parakeet TDT on the Neural Engine, or Omnilingual 1B MLX 4-bit on the Metal GPU. Higher accuracy, more languages.

Remote

OpenRouter

OpenRouter passthrough when you want a stronger cloud model with audio support. Your key, your call.

Intelligence

Optional cleanup that adds punctuation and strips filler.

Apple Intelligence

On-device

Native on-device cleanup. Adds punctuation, strips filler, fixes case, and respects tone.

🧠

Local MLX

Bonsai · 1-bit

Bonsai 8B MLX 1-bit runs locally through a vendored Prism fork. Powerful cleanup with no network round-trip.

🌐

Remote

OpenRouter

OpenRouter-backed cleanup when you want a different model. Configurable per-prompt instructions.

Privacy by architecture

The strongest privacy story is no upload at all.

The default speech and intelligence paths are both on-device. Cloud pipelines are explicitly opt-in, run over your own OpenRouter key, and can be turned off entirely. Either way, the strongest guarantee is that the local path never makes a network call.

  • Audio never leaves your Mac on the local path.
  • Transcripts are stored in your private app container.
  • Zero analytics, no crash reporters, no SDKs.
  • No account, no sign-up, no email capture.
  • Remote paths use your own OpenRouter key.
  • Delete the app, and every byte goes with it.

Platform

A single, focused macOS app.

macOS
14.0+
Apple Silicon
Recommended
Intel
Supported

Xcode 16+ to build from source. Apple Silicon for the best experience.

Stop typing.
Start talking.

Free, open source under Apache 2.0, and entirely on-device by default. Grab the DMG, drop it in Applications, and hold a key.