Local Whisper is easiest to install with Homebrew. You paste one command, follow the permission prompts, then use the Right Option key to dictate into any Mac app. Requirements:
  • Apple Silicon Mac
  • macOS with Microphone and Accessibility permission
  • Enough free disk space for the app plus local models
Copy this into Terminal:
That installer does three things: After it finishes:
  1. Double-tap Right Option.
  2. Speak.
  3. Tap Right Option again, or press Space, to stop.
  4. The text is copied to the clipboard by default.
To paste directly into the current app instead, hold Right Option past the double-tap threshold, speak, and release the key to stop.

Manual Homebrew setup

Use this path when you already have Homebrew and prefer to see each command:
brew install gabrimatic/local-whisper/local-whisper installs from the Local Whisper tap directly. Homebrew adds the tap automatically. wh setup finishes the app setup: config, default model, macOS permissions, and the background service. Other managed MLX speech models download when selected in Settings -> Transcription. The model card shows downloaded, partial, or missing cache state, streams download progress inline, and lets you cancel before the current engine is unloaded.

macOS permissions

Local Whisper needs two permissions: macOS may list the app as Python in permission screens. That is expected because the background service runs through Local Whisper’s packaged Python runtime. The onboarding window and Settings -> Advanced -> Permissions both send the macOS permission request. If a permission was previously denied and macOS will not show the dialog again, Local Whisper opens the matching System Settings page. If setup finishes with permissions pending, open:
Then enable Python under Accessibility. For Microphone, go to System Settings -> Privacy & Security -> Microphone and enable Python there too. Restart after changing permissions:

Source setup

Use source setup when you want to develop Local Whisper or test unreleased changes:
The source setup path installs an editable Python package in .venv, builds the Swift menu bar app, configures a LaunchAgent, and adds the wh alias to your shell profile.

Updates

Homebrew installs:
Source installs:
wh update refreshes the install, prepares the active model, rebuilds the menu bar app when needed, and restarts the background service. The menu bar “Check for updates…” action uses the same update path.

Service controls

Local Whisper runs as one background service:
Only one service can run at a time, even if both a Homebrew install and a source checkout exist on the same Mac. Extra starts detect the existing service instead of launching another one. Run wh doctor any time you want a health check.

Uninstall

Homebrew installs:
Source installs:
wh uninstall removes the background service, config, logs, cached models, and shell alias.