What is WisperKit?

A menu bar app that turns your voice into text, typed wherever your cursor is.

Press ⌃ ⌥ D, talk, press it again. OpenAI Whisper transcribes your voice locally (on the Neural Engine through WhisperKit by Argmax on a Mac, through whisper.cpp on Windows) and the text lands in the app you were using: a chat, an email, your editor, a terminal.

No account, no subscription, and no audio ever leaves your computer.

The WisperKit recording indicator: a pill with colored waves and a 0:04 timer
The indicator while listening: the waves follow your voice.

Install on macOS

Requires macOS 15 Sequoia or later on Apple Silicon (M1 or newer), and about 2 GB of free disk space for the default model.

Homebrew

brew tap eldriic/tap
brew trust eldriic/tap
brew install --cask wisperkit

Homebrew asks you to trust a third-party tap once. Update later with brew upgrade --cask wisperkit.

Manual download

  1. Download WisperKit-x.y.z.dmg from the latest release.
  2. Open it and drag WisperKit into Applications.
  3. The app is not notarized, so macOS blocks the first launch: open System Settings, Privacy and Security, and click Open Anyway next to WisperKit.

Or remove the quarantine flag from a terminal:

xattr -dr com.apple.quarantine /Applications/WisperKit.app

First launch

A welcome window walks you through setup:

  1. Microphone: allow it when macOS asks.
  2. Accessibility: needed to type into other apps. Without it, WisperKit still works but only copies the text to your clipboard.
  3. Model: large-v3-turbo (about 1.6 GB) downloads once from Hugging Face; progress shows in the menu.
  4. Put your cursor anywhere, press ⌃ ⌥ D, speak, press it again.
WisperKit welcome guide with microphone and accessibility both allowed

Install on Windows

Requires Windows 10 (1809) or 11, x64 or ARM64, and about 1 GB of free disk space.

  1. Download WisperKit-Setup-x.y.z-x64.exe (or -arm64.exe) from the latest release and run it. No administrator rights needed.
  2. The installer isn’t signed yet, so SmartScreen may warn you once: click More info, then Run anyway.
  3. The welcome window downloads large-v3-turbo (about 550 MB), then press Ctrl Alt D anywhere.

WisperKit lives in the notification area. No Accessibility permission is needed on Windows, but text can’t be inserted into apps running as administrator. Diagnostic log: %LOCALAPPDATA%\WisperKit\Logs\wisperkit.log.

Shortcut and modes

ActionDefault
Start or stop dictation⌃ ⌥ D on Mac, Ctrl Alt D on Windows
Cancel while listeningEsc
Push-to-talkSettings, Keyboard, Mode: Hold
Copy the last dictationMenu bar, Last dictation

In Toggle mode you press once to start and once to stop. In Hold mode you speak while the shortcut is held down. Change the shortcut itself in Settings, Keyboard.

Settings

Interface language (English or French), auto-insert, clipboard-free typing, clipboard restore, dictation language (auto-detect by default, or forced English or French), translation to English, sounds, the on-screen indicator and launch at login.

Never use the clipboard types the text key by key instead of pasting it. It is a bit slower, and your clipboard is never touched. Pasted text is flagged so clipboard managers skip it.

WisperKit general settings

Models

ModelSizeBest for
large-v3-turbo (default)1.6 GBBest accuracy and speed trade-off
large-v33 GBMaximum accuracy, slower
small480 MBOlder or low-memory Macs
base140 MBQuick tests

Sizes are for macOS. Models are stored in ~/Library/Application Support/WisperKit/Models. On Windows they run on the CPU or on the GPU through Vulkan (NVIDIA, AMD, Intel).

Translate to English

Turn on Translate to English and WisperKit writes your words in English, whatever language you speak. Leave it off and the text stays in the language you spoke, detected automatically.

large-v3 gives the best translations. The default large-v3-turbo wasn’t trained on Whisper’s translation task, so WisperKit makes it write directly in English instead: it works well for everyday sentences but can be less faithful on long or technical dictations.

Privacy

  • Audio is recorded in memory, transcribed on your computer and discarded. Nothing is uploaded, logged or kept.
  • The only network access is the one-time model download from Hugging Face.
  • No analytics, no telemetry, no account.

Troubleshooting

The text is copied but not pasted into the app

WisperKit needs the Accessibility permission to type into other apps, and macOS sometimes keeps a stale entry after an update. Reset it, relaunch WisperKit and enable it again from Settings, Permissions:

tccutil reset Accessibility com.eldriic.wisperkit
tccutil reset PostEvent com.eldriic.wisperkit

A diagnostic log is written to ~/Library/Logs/WisperKit/wisperkit.log.

Nothing happens when I press the shortcut

Check the menu bar icon: the model may still be downloading or loading. Another app may also use the same shortcut; pick another one in Settings, Keyboard.

Some words are wrong

Force the language in Settings, General, Dictation language instead of auto-detect, and prefer large-v3-turbo or large-v3. A good microphone close to your mouth helps a lot.

Why is the app not notarized?

Notarization requires a paid Apple Developer account. Releases are signed with a stable self-signed certificate instead: Gatekeeper asks for confirmation once, and macOS keeps your permissions across updates. The Homebrew cask removes the quarantine flag for you.

Build from source

macOS requires Xcode 16 or later and XcodeGen.

git clone https://github.com/eldriic/WisperKit.git && cd WisperKit
swift test
./Scripts/build.sh --install

Windows requires the .NET 10 SDK.

cd windows
dotnet test tests/WisperKit.Core.Tests
dotnet publish src/WisperKit.App -c Release -r win-x64 --self-contained -o publish/x64

Issues and pull requests are welcome on GitHub.