This process is not trusted
Grant Accessibility permission to thewh process, not only to your terminal app. System Settings opens automatically on first run.
If it does not open:
wh, then restart:
macOS keeps asking for permissions with new “python3.x” entries
macOS identifies the service by the code hash of the binary it runs. Older installs launched the service through a Python interpreter symlinked into Homebrew, so every Homebrew Python upgrade made macOS treat Local Whisper as a brand-new app: a fresh permission prompt appeared, and the oldpython3.x rows in Privacy & Security went stale.
Current installs run the service through a frozen interpreter copy named local-whisper, whose identity survives Python upgrades. To migrate an older install:
local-whisper one final time, then remove the stale python3.x rows in System Settings -> Privacy & Security -> Accessibility (select a row, press the minus button). wh doctor reports whether the service runtime identity is stable.
Double-tap does not start recording
Tap Right Option twice within the configured threshold. The default is0.4 seconds.
To change it, edit hotkey.double_tap_threshold in ~/.whisper/config.toml or use the Recording settings panel.
Apple Intelligence grammar does not work
Verify:- macOS 26 or later
- Apple Silicon
- Apple Intelligence enabled in System Settings
Ollama grammar does not work
Verify:wh backend ollama.
LM Studio grammar does not work
Verify:- LM Studio is installed.
- A model is downloaded and loaded.
- The local server is started from the Developer tab.
- The API responds:
First transcription is slow
Fresh setup downloads and warms the active engine. Later runs load cached models from disk. Qwen3-ASR downloads the selected 1.7B or 0.6B model when you switch to it. The 1.7B default requires more memory and has higher latency; choose 0.6B in Settings orwh config on a tighter-memory Mac. macOS manages Apple SpeechTranscriber assets per locale, and Local Whisper shows Apple’s real supported, downloading, or installed state. WhisperKit manages its own model folder. Kokoro downloads only after text-to-speech is enabled. Settings marks a managed MLX model as downloaded only after a complete Hugging Face snapshot is present. Partial caches show as partial and can be resumed from the Transcription panel.
If Qwen starts inserting Vocabulary terms that were not spoken, shorten the
word list or turn off Use Vocabulary as context in Qwen3-ASR Settings.
Context can bias recognition but cannot guarantee a spelling. Local Whisper
caps the prompt at 4,096 characters, logs how many eligible rules were included
when the list is truncated, and still applies enabled replacement rules after
transcription.
If idle model unload is enabled, Local Whisper may release the active model from RAM while the background service stays ready. The next transcription reloads the model on demand. wh setup, wh update, and wh restart treat the service as ready once the command socket is accepting commands, even if the model is currently unloaded.
Model preparation in setup/update is bounded. If a local model check takes too long, setup continues and the model retries on first use; required update preparation fails instead of hanging indefinitely.