# Hold Speak > Free, local push-to-talk voice dictation for macOS. Hold a hotkey, speak, release – the recognized text is typed into whatever input has focus, in any app. Whisper runs on the Mac's GPU / Neural Engine via WhisperKit (CoreML). No cloud, no account, no API keys, no subscription. Hold Speak is a menu bar app for macOS 13+ (Apple Silicon recommended). It was built for one reason: talking to AI is faster than typing to it. Typing averages 40–60 wpm; comfortable speech is 130–160 wpm. Hold Speak is a free alternative to paid Whisper dictation apps such as Superwhisper and MacWhisper. Source code is public on GitHub. ## Key pages - [Home](https://holdspeak.app/): what Hold Speak is, animated demo of hold-to-talk, download link. - [Readme](https://holdspeak.app/readme.html): full documentation – features, install (including the "Open Anyway" first-launch step), permissions, updating, Whisper model choice and latency tuning, usage, preferences, auto language detection, terminology dictionary, architecture, logs, troubleshooting. - [Superwhisper alternative / comparison](https://holdspeak.app/superwhisper-alternative.html): Hold Speak compared with Superwhisper, MacWhisper, VoiceInk, Wispr Flow, Aiko, Spokenly and Apple Dictation – price, local vs cloud processing, hold-to-talk, source code, with vendor source links (checked September 2026). - [Privacy](https://holdspeak.app/privacy.html): data flow, what is stored on disk and where, the only network requests the app makes, permissions and why, security posture. - [Download](https://github.com/timmal/HoldSpeak/releases/latest): latest DMG on GitHub Releases. - [Source code](https://github.com/timmal/HoldSpeak): Swift / SwiftUI repository. - [Issues](https://github.com/timmal/HoldSpeak/issues): bug reports and questions. - [Full text for LLMs](https://holdspeak.app/llms-full.txt): home, readme, privacy and comparison pages as plain text. ## Key facts - Platform: macOS 13 Ventura or later; Apple Silicon recommended - Price: free. No trial, no paid tier, no subscription, no usage limits - Speech engine: OpenAI Whisper models via WhisperKit (CoreML), on-device on GPU / Apple Neural Engine - Works offline: after the model is downloaded once, dictation needs no network at all - Interaction: push-to-talk – hold a hotkey (default Right Option), speak, release; text is inserted into the focused field - Works in any macOS app with a text input: browsers, Slack, Telegram, Notes, VS Code, Cursor, terminals, AI chats (ChatGPT, Claude) - Privacy: audio never leaves the Mac and is never written to disk; no telemetry, no analytics, no crash-reporting SDK, no account - Distribution: DMG from GitHub Releases (self-signed, not from the Mac App Store) ## How it works 1. Hold the push-to-talk key. A HUD pill appears (top-right under the menu bar icon, or bottom-center) with a live mic level. 2. Speak. Audio is captured into a RAM buffer. 3. Release. WhisperKit transcribes the buffer on the GPU / Neural Engine; light cleanup and the terminology dictionary are applied. 4. Text is typed into the focused input as Unicode key events (CGEventKeyboardSetUnicodeString) – the clipboard is not used or overwritten. Secure (password) fields are skipped. 5. The audio buffer is discarded. Only the text is kept in local history (last 10 in the menu bar popover, click to copy). Taps shorter than 150 ms don't start recording, so the key still works normally (threshold adjustable 50–800 ms). ## Features - Local transcription through WhisperKit (CoreML, GPU / ANE) - Global push-to-talk hotkey – any modifier (Right Option, Right Command, Left/Right Shift, Control…) or a regular key - Insertion without clipboard; password fields skipped - Code-switching: mixed-language speech (e.g. Russian or Ukrainian with English technical terms) keeps English terms verbatim instead of transliterating them - Auto language detection limited to the languages enabled in System Settings → Language & Region, so Whisper doesn't drift into unrelated languages - Explicit primary language option: Arabic, Chinese, Dutch, English, French, German, Hindi, Italian, Japanese, Korean, Polish, Portuguese, Russian, Spanish, Turkish, Ukrainian - Terminology dictionary: maps misrecognized variants to a canonical spelling (e.g. "кубернетес" → Kubernetes). Ships with curated IT defaults – ~110 Russian, ~120 English, ~130 Ukrainian entries; fully editable, per-language, import/export as JSON - Light text cleanup: trims drawn-out fillers ("ummm", "eeee"), collapses 3+ repeats, capitalizes the first letter, adds a period - Menu bar popover: last 10 transcriptions, total words, 7-day average WPM - HUD overlay while recording: live mic level or live transcript - Light / dark / auto theme, launch at login, in-app update check against GitHub Releases ## Whisper models and speed | Model | Size | Latency (short utterance, Apple Silicon) | Notes | |---|---|---|---| | Tiny | ~40 MB | ~80–150 ms | fastest, lowest quality | | Small | ~250 MB | between Tiny and Turbo | middle ground | | Turbo (large-v3 distilled) | ~800 MB | ~400–800 ms | default, best quality | - Lowest latency: Tiny + a fixed primary language (skips the language-detection pass). - Best quality: Turbo + Auto. - Models already downloaded by MacWhisper or another WhisperKit client are picked up automatically; otherwise weights are downloaded once from Hugging Face (argmaxinc). ## Install 1. Download the DMG from https://github.com/timmal/HoldSpeak/releases/latest and drag HoldSpeak.app into Applications. 2. The app is self-signed, so macOS blocks the first launch: System Settings → Privacy & Security → "HoldSpeak was blocked…" → Open Anyway. 3. Grant three permissions: Microphone (audio capture), Accessibility (text insertion), Input Monitoring (global push-to-talk key). Updating: the menu bar popover shows an "Update available" banner; download the new DMG and replace the app. Preferences, history, dictionary and models in ~/Library/Application Support/holdspeak/ are preserved. ## Privacy and network - Dictation is fully offline. Audio stays in memory and is discarded after transcription. - Stored locally only: history.sqlite (text, no audio), Whisper models, terminology JSON, preferences plist, a diagnostic log without transcript text. - The only network requests: one-time model download from Hugging Face, an anonymous update check to the GitHub Releases API, and links the user clicks. - No Full Disk Access, Screen Recording, Contacts, Calendars, Photos or Automation permissions requested. ## Hold Speak vs other Mac dictation apps Prices as listed by each vendor in September 2026. Details and sources: https://holdspeak.app/superwhisper-alternative.html | App | Price | Processing | Dictate into any app | |---|---|---|---| | Hold Speak | Free, no limits | On-device only | Yes, hold-to-talk | | Superwhisper | Free tier; Pro $8.49/mo, $84.99/yr, $249.99 lifetime | Local or cloud | Yes | | MacWhisper | Free; Pro €64 one-time | Local or cloud | Direct-download build only | | VoiceInk | $25–49 one-time; open source GPL-3.0 | Local by default | Yes, push-to-talk | | Wispr Flow | 2,000 words/week free; Pro $12/mo annual | Cloud only | Yes | | Aiko | $24 (Mac App Store) | Local | No – file transcription only | | Apple Dictation | Free, built in | On-device or Apple servers | Toggle, stops after 30 s of silence | - Choose Hold Speak for free, private, offline hold-to-talk dictation – especially for prompts to AI chats and coding agents. - Choose Superwhisper or MacWhisper for AI rewriting modes, meeting recording or audio-file transcription. - Choose VoiceInk for an open-source app with more engines and AI cleanup, paid once. - Choose Wispr Flow for Windows / mobile coverage and team features, if cloud processing is acceptable. ## FAQ - Is Hold Speak free? Yes. Free to download and use, no subscription, no limits, no account. - Is there a free alternative to Superwhisper? Yes – Hold Speak: free, local Whisper, hold-to-talk into any app. It has no AI rewriting modes or file transcription. - Does it work offline? Yes. After the Whisper model is downloaded once, dictation works with zero network access. - Does my voice get sent anywhere? No. Audio is transcribed on-device and never uploaded or saved to disk. - Which Macs are supported? macOS 13 or later. Apple Silicon (M1 and newer) is recommended for GPU / Neural Engine speed. - Which languages does it support? Whisper's multilingual models; the app offers Auto-detect plus 16 explicit languages including English, Russian, Ukrainian, Spanish, German, French, Chinese and Japanese. Mixed Russian/Ukrainian + English speech is a first-class use case. - Which apps can I dictate into? Any app with a focused text input – the text is typed as keyboard events. - What's the default hotkey? Right Option. It can be changed to another modifier or key in Preferences → General. - Why does macOS say the app is blocked? It's self-signed. Use System Settings → Privacy & Security → Open Anyway once. - The hotkey does nothing. Check Accessibility and Input Monitoring in System Settings → Privacy & Security; remove and re-add the app if needed. - How do I make it faster? Choose the Tiny model and set a fixed primary language in Preferences → Audio. - Where are logs? ~/Library/Logs/holdspeak.log