LF Private dictation for Mac

Speak. It’s typed.Your voice never leaves the Mac.

Press ⌃⇧Space, speak, press it again. Parakeet speech recognition runs through Core ML on your Mac, local rules clean up the text, and your words are pasted at your cursor. No account. No telemetry. No update checks. No cloud speech.

Apple siliconmacOS 15 or laterMIT License≈484 MB model, installed once

The LockedIn Flow home window and floating bar. Pressing Control-Shift-Space starts Listening with a waveform and timer; pressing again shows Transcribing, Cleaning up and Inserting while the Mic, On device and Cursor rail advances; then the bar reads Inserted and the sentence “We should ship the update today and send a note to the team.” appears at once as the newest recent dictation.
Fig. 03 — Signal pathAll stages on this MacNetwork · no requests of its own
01MicThe input selected in macOS
02Capture16 kHz mono · held in memory
03SpeechParakeet TDT v3 · Core ML
04CleanupLocal rules · your vocabulary
05SaveHistory first · AES-256-GCM at rest
06One paste⌘V once · clipboard put back
07CursorThe app you're in

Entitlements 1 · audio inputNetwork code in app source noneModel files 39 · each verified by SHA-256 before loadDependencies 2 · both pinned

01 The moment of dictation

One shortcut. Four states. One paste.

Recording starts straight away, in any app. Recognition runs after you finish, on your Mac, and the whole sentence lands at your cursor at once. Nothing streams while you talk, and nothing is typed twice.

  1. 01 · READY

    Press ⌃⇧Space.

    Press once to start, again to finish. Or hold to talk, or start and stop with a mouse button. Choose your own shortcut.

  2. 02 · LISTENING

    Speak.

    A 25-bar meter and a timer. Audio is held in memory, never written to disk. Up to 10 minutes per dictation.

  3. 03 · ON DEVICE

    Press again.

    Transcribing, cleaning up, inserting. Parakeet TDT v3 runs on the Apple Neural Engine through Core ML, then local rules and your vocabulary finish the text.

  4. 04 · INSERTED

    Written.

    One paste at your cursor, never doubled, and your clipboard is put back. Saved to History before it's typed, so a missed paste never costs you the words.

02 Cleanup

What you meant, not what you mumbled.

Local rules remove um, uh and ah, then fix punctuation, capitalization, stutters and false starts, on your Mac. See exactly what you said and what it wrote, for any dictation.

  • Say the punctuation.

    Say “comma”, “new paragraph” or “bullet point”, and it's punctuated. Spoken punctuation is on by default.

  • Change your mind mid-sentence.

    “Send it Thursday, scratch that, send it Friday” keeps only what you meant. Say “undo that” on its own to take back the last insert.

  • Prefer it raw? Turn cleanup off.

    The rules are written for English. Recognition covers 25 European languages, with no language picker needed.

03 Formatting follows the app

Four profiles. Chosen by the app in front of you.

General, Email, Chat or Coding, picked automatically from the frontmost app, or pinned by you. In your editor or terminal, it formats code: speak symbols, brackets and casing, and code lands at the cursor.

No.ProfileSelected by
01GeneralLight cleanupThe fallback for every other app
02EmailProfessional tone · with Apple IntelligenceApple Mail, Microsoft Outlook, Spark
03ChatCasual tone · with Apple IntelligenceSlack, Microsoft Teams, Discord, Messages, Signal, Zoom, Messenger, WhatsApp
04CodingCodeVS Code, Xcode, Zed, Cursor, Terminal, iTerm2, IntelliJ IDEA, Sublime Text
Profile Auto (follows frontmost app) · or pin one

Formatting follows the app you're in. On macOS 26 with Apple Intelligence, tone follows too, with meaning checks and an instant fallback to the rules. Off until you turn it on.

04 Vocabulary · Snippets · History

It learns your words. A missed paste never costs you them.

Names and jargon come out right. Whole blocks of text arrive on a phrase. And every transcript is saved to History before it's typed.

Vocabulary

Teach it your names and jargon.

“super base” → “Supabase”. Fix a word once; it's right from then on. Import your team's terminology from CSV, and scope terms to email, chat or code.

  • Suggests terms you use often; you decide.
  • Optionally learns from the corrections you make. Off by default.
  • Stored encrypted on your Mac.

Snippets

Say “insert signature”. The whole block appears.

A trigger phrase, spoken on its own, inserts saved text, several lines if you like. It never fires by accident mid-sentence.

Snippets
Say the trigger as a complete utterance — the expansion is inserted instead. “insert signature” → your full signature block.
insert signatureThanks, Platform Engineering
ticket footerReproduced on macOS 15. Logs attached, dictated text excluded.
  • Fires only on the whole utterance.
  • Stored encrypted.

History

Saved before it's typed.

Search everything you've said. Re-insert any recent dictation into the app you're in. Compare raw and polished. Delete anything, anytime.

Dictation history3 dictations · in memory
Until app quits
We should ship the update today and send a note to the team.
Aug 8, 7:38 PM · Notes · 7.8s · General
Raw transcript

Um, we should ship the update today, ah, and send a note to the team.

Session-only transcripts in memory · raw audio is never saved to disk
  • In memory until you quit, by default. Keep it for an hour, a day, a week, a month, forever, or not at all.
  • Kept longer? Encrypted with AES-256-GCM, key in your Keychain.

05 Privacy by construction

Five libraries. One device. No cloud in the path.

Takes the transcription vendor out of your data flow. The app's own source has no networking code, its only entitlement is the microphone, and anything you choose to keep is encrypted on the Mac. Compliance is decided by your deployment.

This Mac · device boundary

AudioCaptureCapture16 kHz mono · memory only · never written to disk
SpeechEngineSpeechParakeet TDT v3 · Core ML · every model file verified before it loads
TextIntelligenceCleanupLocal rules · vocabulary · snippets · spoken commands
VoiceCoreSaveHistory first · AES-256-GCM at rest · key in your Keychain
InsertionEngineOne paste⌘V once · never retried · clipboard put back · identified password fields skipped
entitlement · 1MicrophoneThe only entitlement. Accessibility only if you want it to type for you.
Cloud speech · hosted LLMNot used · no account
Telemetry · update checksNone · nothing behind your back

Outside the boundary · the app makes no network requests of its own; enforce it with your own firewall rule. Its speech library's downloader is switched off before any model loads.

Datasheet — properties the code keepsReviewed against source
Audio
Never saved, never sent. Held in memory, 16 kHz mono. Trims silence on-device.
Network
None in the app's own source. No account, no telemetry, no analytics, no update check, no remote model. Needs no internet once the model is installed.
Models
Never downloaded by the app. 39 files, each checked against a SHA-256 compiled into the app. A missing or altered model is never fetched; it's refused.
At rest
AES-256-GCM, key in your Keychain, this device only. Nothing kept unless you choose; what's kept is encrypted.
Delivery
One paste. Never doubled. Saved to History first. Skips fields macOS identifies as password fields. Kept off Universal Clipboard.
Permissions
Microphone, and Accessibility to type. Nothing else: no Contacts, Calendar, Location, Camera, Screen Recording or Full Disk Access.
Logs
Never contain what you said. The logging interface accepts no arbitrary strings.
Updates
No auto-updater. Installing a new version is always an explicit act.
Read the security architecture

Threat model, security policy and SBOM available for your review. The apps you dictate into follow their own policies.

06 Teams and managed Macs

Your tooling. Your signature. Your network policy.

Built for teams that can't send voice to the cloud. Pre-stage verified models in a root-owned location, sign with your own Developer ID, and deploy with your own MDM and egress rules. Lock it down further with your own firewall rule; it doesn't need the network.

Models

Pre-staged. Verified. Root-owned.

Stage the speech model once in a system location users cannot modify. The app verifies every file against its manifest before loading and refuses anything that fails. It never downloads.

Deployment

Your MDM, your rules.

Sign and notarize with your own Developer ID, pre-approve Accessibility with a PPPC profile, and enforce no-network with your endpoint policy. Fully documented removal.

Assurance

Bill of materials and provenance.

Every build ships with a software bill of materials and a provenance record: source commit, clean or modified tree, hashes and tool versions. Two code dependencies, both pinned.

Deployment sheet — managed Macscom.lockedinflow.app
bundle id       com.lockedinflow.app
models (system) /Library/Application Support/LockedIn Flow/Models
ownership       root:wheel · directories 0755 · files 0644 · no ACLs · no symlinks
model files     39 · pinned by revision, size and SHA-256 · verified before load
signing         your Developer ID · hardened runtime · notarized by you
ships with      SBOM.cdx.json · BUILD-PROVENANCE.txt
logs            log show … subsystem == "com.lockedinflow.app"   never contain dictated text
removal         app · data folder · preferences domain · Keychain item · tccutil reset
dependencies    2 · both pinned

MIT License

Free under the MIT License, for personal and commercial use.

No trial, no word cap, no activation, no account. Enterprise deployment, terminology, maintenance, validation and support are optional services, not permission to use the software. Evaluating organizations can review the full source on request.

07 Good to know

Questions, answered plainly.

Does anything leave my Mac?

Your audio is never saved and never sent. The app never downloads models, checks for updates, sends telemetry or calls a hosted service. Its speech library's downloader is switched off before any model loads. The only download is the speech model, once, outside the app.

The apps you dictate into follow their own policies.

What does it cost?

LockedIn Flow is free under the MIT License, for personal and commercial use. No trial, no word cap, no activation, no account. Enterprise deployment, terminology, maintenance, validation and support are optional services.

What do I need to run it?

An Apple silicon Mac running macOS 15 or later, and about 484 MB for the speech model, installed once. Optional English Precision model: about 614 MB more.

Contextual cleanup, translation and meeting notes use Apple's on-device model on macOS 26 with Apple Intelligence. Dictation itself doesn't need them.

Which languages does it recognize?

25 European languages, with no language picker needed. The cleanup rules are written for English; turn cleanup off for other languages. On macOS 26 with Apple Intelligence, the finished text can be translated on-device into English, Spanish, French, German, Portuguese, Hindi, Arabic or Chinese.

Where does the text go, and what if a paste fails?

Your words are pasted at your cursor, in the apps where you'd paste, and your clipboard is put back. Every transcript is saved to History first, so a missed paste never costs you the words: re-insert it from History or the menu bar.

No Accessibility? Your words are copied for you to paste. Or use Copy only mode, which needs no Accessibility access at all.

How do I get it?

Request a build for your team. Organizations sign with their own Developer ID and deploy with their own MDM. Evaluating organizations can review the full source on request.

Private dictation.
Polished on your Mac.

For Apple silicon Macs on macOS 15 or later. Free under the MIT License. Request a build for your team and plan setup with LockedIn Labs.

No accountNo telemetryNo cloud speech