Releases: sam-pop/WhisperDictation
Release list
WhisperDictation v1.1.0
A reliability, privacy, and performance overhaul — every subsystem reviewed, fixed, and now covered by a 112-test suite that runs in CI.
Reliability
- The microphone picker in Settings now actually selects your mic (previously it silently used the system default)
- Transcription failures, download failures, and mic disconnects surface as menu bar alerts instead of failing silently
- Model downloads are verified against pinned SHA256 hashes, with per-model progress and cancel
- Recordings cap at 5 minutes (memory-bounded) and still transcribe what was captured
- Cancel a stuck transcription with the hotkey (tap in push-to-talk, hold in toggle mode)
Privacy
- Dictated text is never logged in release builds — verify yourself:
stringsthe binary and find no transcript output - Docs and audit commands on the website corrected to match the source layout
Performance
- ~3.4× faster text correction (one compiled regex instead of ~230 recompiled per dictation)
- Typing no longer delays decoding; inference no longer blocks the app's thread pool
New
- First-launch onboarding: permissions walkthrough + recommended 181 MB Q5 model (existing users never see it)
- Emoji and other astral characters are no longer mangled mid-typing (surrogate-pair chunking fix)
- whisper.cpp upgraded to v1.9.1
- Supply-chain hardening: GitHub Actions SHA-pinned, least-privilege CI token
Install
Download the DMG, drag to /Applications, right-click → Open on first launch (ad-hoc signed).
SHA256 WhisperDictation.dmg:
76de1835922e2f6f4031483b0fa52a8e5c7e576dd0c3edf4a371dc31f39aaeaa
v1.0.9
v1.0.9 — Toggle hotkey mode (carpal-tunnel friendly)
A second hotkey mode alongside push-to-talk: press once to start, press once to stop, gated by a configurable hold-to-activate duration so it won't trigger by accident or in shortcut combos.
Built as a universal binary — works on both Apple Silicon and Intel Macs.
What's new
- Toggle mode — press to start, press to stop. No need to hold the key while you talk. Built for long-form dictation and anyone managing carpal tunnel / RSI.
- Configurable hold-to-activate — set anywhere from 0.5s to 3.0s (default 1.5s). Long enough to prevent accidental activation, short enough to feel responsive.
- Symmetric hold-to-stop — same hold gates both starting and stopping. The trailing silent hold is automatically trimmed from the audio so Whisper doesn't hallucinate punctuation.
- Pulsing menu bar indicator — orange
circle.dottedconfirms the hold is being registered. - Settings UI — single merged "Hotkey" card with mode picker and conditional duration slider.
Default mode remains push-to-talk, so existing users see no behavior change unless they opt in.
Reliability fixes
- HotkeyMonitor watchdog now synthesizes the missed key-up when macOS silently disables the event tap mid-press, so DictationEngine recovers cleanly instead of getting stuck in
.recording. - Restored
AVAudioConverter.reset()before each conversion (the converter expects a continuous stream across discrete tap-callback buffers).
Install
Download WhisperDictation.dmg below. Universal binary — runs natively on both Apple Silicon and Intel.
Verify download integrity
shasum -a 256 WhisperDictation.dmg
Expected SHA256: see WhisperDictation.dmg.sha256 attached to this release.
Full Changelog: v1.0.8...v1.0.9
WhisperDictation v1.0.8
Custom Names & Terms Vocabulary
Add your own names, places, and frequently used terms for better recognition.
What's New
- Names & Terms section in Settings → Vocabulary — add personal terms with correct casing
- Terms bias Whisper recognition AND get casing corrected post-transcription
- Flow-wrapped pill UI with add/delete
- Thread-safe cached single combined regex (one string scan regardless of term count)
- 100-term limit with word budget enforcement to stay under Whisper's token limit
- 56 tests passing (5 new)
Install
- Download WhisperDictation.dmg
- Open DMG, drag to Applications
- If macOS blocks it: System Settings > Privacy & Security > Open Anyway, or run
xattr -cr /Applications/WhisperDictation.app - Open WhisperDictation
- Grant Microphone + Accessibility permissions
- Settings > Model > download Small Q5 (181 MB, recommended)
Requires macOS 14 (Sonoma) or later.
Build from Source
git clone --recurse-submodules https://github.com/sam-pop/WhisperDictation.git
cd WhisperDictation
make whisper && make model && make runFull Changelog: v1.0.7...v1.0.8
WhisperDictation v1.0.7 — Polished Release
WhisperDictation v1.0.7
Polished, stable release with all tests passing and expanded developer vocabulary.
Quality
- 51 tests passing — settings, state machine, models, TextCorrector (numbers, acronyms, capitalization, punctuation), audio devices, WhisperBridge
- All XcodeGen/xcodebuild issues resolved
- Comprehensive CLAUDE.md documenting all gotchas and patterns
Streaming Output
Text appears at your cursor as each segment is decoded — grammar correction applied per-segment in real time.
Speed
- GPU pre-warming (no first-use lag)
- Adaptive decoding (greedy for short clips, beam search for longer)
- VAD trims silence before inference
Accuracy
- 500-word developer vocabulary covering:
- Frontend: React hooks, SSR/SSG, accessibility, design systems, CSS, animations, PWA
- Backend: middleware, caching, auth, message brokers, circuit breakers, queues
- DevOps: CI/CD, canary deploys, SLAs, feature flags, monitoring
- UI: tooltip, dropdown, modal, accordion, carousel, pagination
- AI/ML: LLM, RAG, embeddings, PyTorch, transformers
- Languages & frameworks: 30+ languages, 50+ frameworks
- Hallucination suppression, independent transcription context
- 100+ term auto-casing (api->API, javascript->JavaScript)
- Number word conversion (three hundred->300, eighty eighty->8,080)
Install
- Download WhisperDictation.dmg
- Open DMG, drag to Applications
- If macOS blocks it:
xattr -cr /Applications/WhisperDictation.app - Open WhisperDictation
- Grant Microphone + Accessibility permissions
- Settings > Model > download Small Q5 (181 MB, recommended)
Requires macOS 14 (Sonoma) or later.
Build from Source
git clone --recurse-submodules https://github.com/sam-pop/WhisperDictation.git
cd WhisperDictation
make whisper && make model && make runFull Changelog: v1.0.6...v1.0.7
WhisperDictation v1.0.6 — Streaming, Speed & Accuracy
WhisperDictation v1.0.6
Major update focused on speed, accuracy, and developer experience.
Streaming Output
Text now appears at your cursor as Whisper decodes each segment — no more waiting for the full transcription to finish. Grammar correction is applied per-segment in real time.
Speed Improvements
- GPU pre-warming — dummy inference at model load eliminates first-use lag
- Adaptive decoding — greedy for short clips (<2s), beam search for longer recordings
- VAD (Voice Activity Detection) — Silero model trims silence before inference
Accuracy Improvements
- Fixed hallucination carry-over — each transcription is now independent (
no_context=true) - Fixed vocabulary prompt overflow — previous 1200-token prompt exceeded Whisper's 1024 limit, degrading accuracy
- 500-word developer vocabulary — covers frontend (React hooks, SSR, accessibility, design systems), backend (middleware, caching, message brokers, circuit breakers), DevOps (canary deploys, SLAs, feature flags), databases, APIs, AI/ML, algorithms, and more
Bug Fixes
- Fixed audio capture producing 0 samples (converter state + engine lifecycle)
- Grammar/number correction now applied in streaming callback
- Per-engine mic selection (no longer changes system-wide default)
- TextInjector on dedicated serial queue (was starving cooperative thread pool)
- NSSound dispatched to main thread (was crashing on background)
- State machine guaranteed to return to idle on all code paths
- Comprehensive test suite (50+ tests)
Developer Tools
/releaseskill — build DMG, tag, and publish in one command/reviewskill — launch parallel code review agentsregression-testeragent — verifies changes against CLAUDE.md gotchas
Install
- Download WhisperDictation.dmg below
- Open DMG, drag WhisperDictation to Applications
- If macOS blocks it, run:
xattr -cr /Applications/WhisperDictation.app - Open WhisperDictation
- Grant Microphone and Accessibility permissions
- Settings > Model > download Small Q5 (recommended, 181 MB)
Requires macOS 14 (Sonoma) or later.
Full Changelog: v1.0.5...v1.0.6
WhisperDictation v1.0.5
WhisperDictation v1.0.5
New
- Number word to digit conversion: "three hundred" → 300, "eighty eighty" → 8,080
- Microphone selector in Settings
- macOS 14+ support (Sonoma and later)
- No restart needed after granting permissions — hotkey monitor auto-restarts when Accessibility is granted
Fixed
- Number conversion handles zero, digit sequences, and compounds correctly
- No trailing periods after numbers
- Deployment target matches macOS 14.0 for broad compatibility
Install
- Download WhisperDictation.dmg
- Drag to Applications
- First launch: System Settings > Privacy & Security > Open Anyway
- Grant Microphone + Accessibility permissions — hotkey works immediately, no restart needed
- Download a model in Settings > Model (Small Q5 recommended)
Requires macOS 14 (Sonoma) or later.
Full Changelog: v1.0.4...v1.0.5
WhisperDictation v1.0.4
WhisperDictation v1.0.4
New
- Microphone selector in Settings > General — pick which input device to use for recording
- Lists all available audio input devices via CoreAudio
Fixed
- Menu bar dropdown no longer wraps text ("WhisperDictation" and status text stay on one line)
- Model badge shows friendly name ("Small Q5") instead of raw filename
- Hotkey label shortened to fit ("R⌥" instead of "Right ⌥")
- Wider dropdown (320px) for better readability
Install
- Download WhisperDictation.dmg
- Drag to Applications
- First launch: System Settings > Privacy & Security > Open Anyway
- Grant Microphone + Accessibility permissions
- Download a model in Settings > Model
Full Changelog: v1.0.3...v1.0.4
WhisperDictation v1.0.3
WhisperDictation v1.0.3
Bug fix release addressing issues found in code review.
Bug Fixes
- Fixed race condition in AudioCapture between audio tap thread and stopRecording()
- Fixed dead code in TextCorrector that allocated and discarded regex results every transcription
- Fixed memory safety in WhisperBridge — strdup pointers tracked separately to avoid freeing static C strings
- Fixed thread safety in HotkeyMonitor — isKeyHeld now protected with os_unfair_lock
- Fixed NSEvent monitor leak — onDisappear moved to correct view in hotkey recorder
- Fixed concurrent download guard in ModelManager
- Fixed launch-at-login — now reconciles UserDefaults with actual SMAppService status on startup
- Fixed fresh clone build —
make appnow auto-triggers whisper.cpp build if needed - Fixed CI cache key — was hashing non-existent submodule path, now uses .gitmodules + CMakeLists.txt
- Fixed build-whisper.sh — checks for initialized submodule before running cmake
Install
- Download WhisperDictation.dmg below
- Drag to Applications
- First launch: System Settings > Privacy & Security > Open Anyway
- Grant Microphone + Accessibility permissions
- Download a model in Settings > Model (Small Q5 recommended)
Full Changelog: v1.0.2...v1.0.3
WhisperDictation v1.0.2
WhisperDictation v1.0.2
Speed Improvements
- Quantized models (Q5): 2-3x smaller and faster with near-identical accuracy
- Small Q5: 181 MB (vs 466 MB full) -- recommended default
- Base Q5: 57 MB -- fastest option
- Medium Q5: 515 MB -- best accuracy
- Voice Activity Detection (VAD): Silero VAD model auto-trims silence before inference
- Adaptive decoding: Beam search on Apple Silicon (GPU), greedy on Intel (CPU)
Accuracy Improvements
- Temperature fallback: Retries with higher temperature on low-confidence results
- Hallucination suppression: Regex filter blocks common Whisper artifacts ("Thank you", etc.)
- Context carry-over: Uses previous transcription context for better multi-sentence accuracy
- Grammar correction: 100+ developer term auto-casing (api->API, javascript->JavaScript)
Install
- Download WhisperDictation.dmg below
- Drag to Applications
- Right-click > Open on first launch
- Grant Microphone + Accessibility permissions
- Download a model in Settings > Model (Small Q5 recommended)
Full Changelog: v1.0.1...v1.0.2
WhisperDictation v1.0.1
WhisperDictation v1.0.1
Local, private voice-to-text for macOS. No cloud, no API keys, no subscriptions.
Install
- Download WhisperDictation.dmg below
- Open the DMG and drag WhisperDictation to Applications
- Right-click > Open on first launch (required for unsigned apps)
- Grant Microphone and Accessibility permissions when prompted
- The app will download a Whisper model on first launch (~466 MB)
Features
- Push-to-talk dictation (hold Right Option, speak, release)
- Works in any app (Terminal, VS Code, Claude Code, browsers)
- Powered by whisper.cpp with Metal GPU acceleration
- Developer-optimized vocabulary (400+ technical terms)
- Smart grammar correction (capitalization, acronyms, punctuation)
- Multiple Whisper models (Base/Small/Medium)
- Configurable hotkey, sound feedback, dark & light mode
Requirements
- macOS 14 (Sonoma) or later
- ~500 MB disk space (app + model)
Full Changelog: v1.0.0...v1.0.1