LocalFlow

Dictation that never leaves your Mac

Just talk. It's typed in about a second.

Hold Right ⌥, speak, let go — clean text lands in whatever app you're using. No upload, no queue: transcription and cleanup run on your Mac, so your voice never leaves it.

Requires macOS 14+ · Apple SiliconFree & open source · v0.1.0

Built onwhisper.cpp+Apple MLX>15× real-time on Apple Silicon

What you said

um hey priya so the build is basically ready uh I just need to fix the signing step and run the tests one more time I think we can like ship it friday afternoon if nothing breaks

Friday release
To:
Priya

What LocalFlow typed

Hey Priya, the build is ready. I just need to fix the signing step and run the tests one more time. I think we can ship it Friday afternoon if nothing breaks.

Pasted about a second after you let go

  • No cloud
  • No telemetry
  • No accounts
  • MIT licensed
Example in Mail: a rambling spoken message becomes a clean, punctuated paragraph. Filler words are removed and nothing else is reworded.

Speed

No upload, no wait.

There's no upload and no server queue. The moment you release the key, your Mac transcribes, tidies and pastes — typically in about a second with the Base model.

You talk15 s

Transcription< 1 s

Drawn to scale. Transcription runs >15× real-time on Apple Silicon, so a 15-second take is done in under one.

Three moves

How it works

One key, held. No app to switch to, no window to click — it works wherever your cursor is.

  1. Hold Right ⌥

    Anywhere — your editor, a chat window, a browser form. A small waveform shows LocalFlow is listening.

  2. Speak naturally

    Ums, restarts and missing punctuation are fine. Add your names and jargon to the vocabulary and they come out right.

  3. Let go

    Clean text is pasted where your cursor is, and your clipboard is put back exactly as it was.

Keyboard controls

  • Push-to-talk

    Hold Right ⌥

    Talk while the key is down. Let go to paste.

  • Hands-free

    Double-tap Right ⌥, press once to stop

    For long takes: lock it on, put your hands down, press once when you're done.

  • Cancel

    Esc

    Changed your mind? Esc stops it at any stage, and nothing is pasted.

Any app

Wherever your cursor is

If you can type there, you can talk there. LocalFlow pastes into the focused app — no plugins, no integrations, nothing to switch to.

  • Sam

    Still on for 6?

    Running ten minutes late — start without me and I'll catch up on the notes.

    Quick replies

    in Messages

  • Notes

    Onboarding ideas

    Send the welcome email after the first model download finishes, not before. Most people want to try it right away, so keep the setup to one window.

    Long thoughts

    in Notes

  • Transcriber.swift
    1. func load() async throws {
    2. do {
    3. // Retry the MLX load once, then fall back to the raw transcript.
    4. try await model.load()
    5. }

    Your jargon, spelled right

    in Code editor

Settings

Tuned to how you talk

Every card here is a real setting in LocalFlow. Choose how much it tidies, teach it your words, pick the model that fits your Mac.

  • Cleanup level

    You said

    um so the demo moved to thursday no wait friday and uh we still need three things the slides the script and a backup laptop

    LocalFlow typesExample output

    None — raw transcript

    um so the demo moved to thursday no wait friday and uh we still need three things the slides the script and a backup laptop

    Light — fillers & punctuation

    So the demo moved to Thursday, no wait, Friday, and we still need three things: the slides, the script and a backup laptop.

    Medium — also grammar & false starts

    The demo moved to Friday, and we still need three things: the slides, the script and a backup laptop.

    High — also structure & lists

    The demo moved to Friday. We still need three things:

    • The slides
    • The script
    • A backup laptop

    Cleanup never rewrites your meaning; if the model misbehaves, the raw transcript is used.

    Choose how much it tidies

    Four cleanup levels, from your exact words to tidy lists. Light is the default.

  • Vocabulary
    Priyaname
    LocalFlowsounds like: local flow
    MLXsounds like: em el ex

    Heard: ship the local flow build to priya

    Typed: Ship the LocalFlow build to Priya.

    Your words, spelled right

    Add names and jargon once. They steer recognition, and “sounds like” aliases are fixed the same way every time.

    • Tiny · fast, rough78 MB

    • Base · recommended start148 MB

    • Small · best balance488 MB

    • Medium · high accuracy, slower1.5 GB

    • Large v3 Turbo · max accuracy1.6 GB

    Pick your model

    Start with Base. Bigger models trade disk space for accuracy, and each is downloaded from Hugging Face only when you ask.

  • Ship the LocalFlow build to Priya.


    Recent transcripts


    Settings…⌘,

    Quit LocalFlow⌘Q

    • Ship the LocalFlow build to Priya.
    • Running ten minutes late — start without me and …
    • Hey Priya, the build is ready. I just need to fi…

    Copied — press ⌘V

    Nothing you say gets lost

    If a paste can't land, the text waits on your clipboard and the overlay tells you to press ⌘V. Your last ten transcripts sit in the menu bar, one click from your clipboard — kept in memory, never written to disk.

Privacy

Private by construction

Not a privacy setting — the architecture. There's no server for your voice to go to.

  • No cloud

    Speech recognition and cleanup run on your Mac. Audio and text never leave it.

  • No telemetry

    No analytics, no crash reporting, no accounts — not even optional ones.

  • One kind of network request

    Downloading models from Hugging Face, and only when you ask. Everything else works offline.

  • Password fields are off-limits

    LocalFlow detects secure fields and never types into them or writes to your clipboard there.

Your Mac

Under the hood

Five on-device stages, all inside the line. If any one fails, your words still land somewhere you can see them.

  1. Capture

    Your mic, on your Mac

  2. Trim

    Silence cut, stray taps ignored

  3. Transcribe

    Speech to text, on your GPU

  4. Clean up

    Fillers out, punctuation in

  5. Inject

    Pasted, clipboard put back

Hugging Face · Model downloads only, when you ask

Capture, trim, transcription, cleanup and pasting all run inside your Mac. The only outside connection is to Hugging Face, for model downloads you request.

Don't take our word for it

A privacy promise is only worth what you can check. Here are three ways to check this one.

  1. Wi-FiOff
    Listening…

    Check 1

    Pull the plug

    Turn Wi-Fi off once a model is downloaded. Dictation, cleanup and pasting keep working, because none of them ever needed the network.

  2. Sources/LocalFlowApp/

    • AudioCaptureService.swift
    • TranscriptionEngine.swift
    • CleanupEngine.swift
    • ModelManager.swift
    • TextInjector.swift

    Check 2

    Read every line

    LocalFlow is MIT licensed and built in the open. The audio pipeline, the model downloader and the paste code are all on GitHub.

    Browse the source
  3. shasum -a 256 -c LocalFlow-0.1.0.dmg.sha256

    LocalFlow-0.1.0.dmg: OK

    Developer IDNotarized

    Check 3

    Check the download

    Releases are signed with a Developer ID and notarized by Apple, so the app opens without Gatekeeper warnings. A SHA-256 checksum is published next to each one.

Install

Three steps to your first sentence

Download, drag, allow two permissions. A setup window walks you through the rest, then you hold ⌥ and talk.

  1. LocalFlow
    Applications

    Drag it to Applications

    Open the DMG and drag LocalFlow onto Applications. It lives in the menu bar; there's no Dock icon.

    • MicrophoneAllowed
    • AccessibilityAllowed

    Allow two permissions

    Microphone, so it can hear you. Accessibility, so it can paste where your cursor is.

  2. Base148 MB

    huggingface.co

    Get the speech model

    Base, 148 MB, downloaded from Hugging Face. It is the only download LocalFlow makes until you ask for another.

Then hold Right ⌥ anywhere and talk.

Will it run on my Mac?
Chip
Apple M1 or later
macOS
Sonoma 14 or later

Find it: Apple menu → About This Mac

Intel Mac, or macOS 13 and earlier? LocalFlow won't run there. It is built for Apple Silicon only.

Requirements

macOS 14 (Sonoma) or later
LocalFlow lives in the menu bar; there's no Dock icon.
Apple Silicon (M1 or later)
Built for arm64 only — Intel Macs aren't supported.
148 MB to get started
The recommended Base speech model. Speech models range from 78 MB to 1.6 GB; the optional cleanup LLM is 0.7 GB or 2.3 GB.
Microphone and Accessibility access
A setup window walks you through both permissions and the first model download.

FAQ

Fair questions

The honest answers, including the ones where the answer is no.

Is it really free?

Yes. LocalFlow is MIT licensed open source: no account, no subscription, no trial and no paid tier. You can read, build and change every line.

Does anything I say leave my Mac?

No. Audio is recorded, transcribed and cleaned up on your Mac, and the text is pasted locally. The only network traffic LocalFlow ever produces is downloading model files from Hugging Face, and only when you ask.

Does it work offline?

Yes, once a model is downloaded. You need an internet connection only while downloading models; everything else works offline.

Will it run on my Intel Mac?

No. LocalFlow is built for Apple Silicon (M1 or later) only, and needs macOS 14 (Sonoma) or later.

Which languages does it understand?

The speech models are multilingual, with automatic language detection. Larger models are more accurate; you can switch any time in Settings → Models.

Does it keep my transcripts?

Only your last ten, in memory, so you can copy one back from the menu bar. Nothing is written to disk, and quitting clears them.

What happens in password fields?

Nothing. LocalFlow detects secure fields and never types into them or writes to your clipboard there.

Hold ⌥ and start talking.

One download, one setup window, and every word stays on your Mac.

Free & open source · macOS 14+ · Apple Silicon · v0.1.0

  • Signed & notarized
  • SHA-256 published
  • No account