Ghost Pepper
- title
- Ghost Pepper
- type
- toolbox
- summary
- Hold-to-talk macOS dictation using on-device WhisperKit plus a local LLM cleanup pass
- tags
- macos, speech-to-text, local-ai
- language
- Swift
- license
- MIT
- created
- 2026-04-07
- updated
- 2026-04-07
Hold-to-talk speech-to-text for macOS that runs entirely on-device. Hold Control, speak, release โ the transcription gets pasted into whatever text field has focus. Menu bar app, no dock icon, launches at login. No cloud APIs, no data leaves the machine.
How it works
Speech recognition uses WhisperKit (Apple Silicon optimized Whisper). After transcription, a local LLM (Qwen 3.5, via LLM.swift) cleans up the text โ removing filler words, handling self-corrections โ before pasting via simulated keystrokes. The cleanup prompt is customizable.
Models download from Hugging Face on first use and cache locally.
Speech models
- Whisper tiny.en (~75 MB) โ fastest, English only
- Whisper small.en (~466 MB, default) โ best accuracy, English only
- Whisper small multilingual (~466 MB) โ multi-language
- Parakeet v3 (~1.4 GB) โ 25 languages via FluidAudio
Cleanup models
- Qwen 3.5 0.8B (~535 MB, default) โ ~1โ2s
- Qwen 3.5 2B (~1.3 GB) โ ~4โ5s
- Qwen 3.5 4B (~2.8 GB) โ ~5โ7s
Permissions
Needs Microphone (recording) and Accessibility (global hotkey + simulated paste). On managed/enterprise devices, IT can pre-approve via MDM PPPC payload.
Limitations
- Apple Silicon only (M1+), macOS 14.0+
- No transcription logging โ text is never written to disk, debug logs are in-memory only
- Global hotkey is Control only (not configurable to other keys from the README)
Free and MIT-licensed. The author notes it's "spicy to offer something for free that other apps have raised $80M to build."
Related: titit-local-ai makes the broader case for local models over cloud APIs โ Ghost Pepper is a concrete example of that argument applied to speech-to-text.
970 stars, MIT license. Repo: https://github.com/matthartman/ghost-pepper