MightyMouse

How to run Whisper locally on your Mac (three ways, with the exact commands)

You want Whisper on your own Mac, with no upload and no per-minute bill. The catch is that most guides skip the step that actually trips you up: Whisper reads files, it does not type into your apps.

On your phone? Get the Mac app by email.

Short answer: The fastest way to run Whisper locally on a Mac is Homebrew: run brew install whisper.cpp, download a model file, then run whisper-cli on a 16-bit WAV file. If you want to talk and have the words typed into any app instead of transcribing files, MightyMouse runs a local model for you and types the text at your cursor, free.

Download free for Mac

Whisper is OpenAI's speech-to-text model, and it is open. That means you can run it on your own computer, offline, with nothing sent anywhere. There are three real ways to do it on a Mac, and they are good at different jobs. Pick by what you want out the other end: a transcript of a recording, or words appearing where your cursor is.

The three routes at a glance

Route 1: whisper.cpp with Homebrew

whisper.cpp is Whisper rewritten in C/C++ so it runs without Python. Its README calls Apple Silicon a "first-class citizen" optimized through ARM NEON, the Accelerate framework, Metal and Core ML, and says that on Apple Silicon the inference runs fully on the GPU via Metal.

Homebrew has it as a ready-made package. The formula is named whisper.cpp on formulae.brew.sh (version 1.9.5 as of October 2026). Older guides say brew install whisper-cpp. That was the old name, and Homebrew still maps it, but use the current one.

  1. Install it: brew install whisper.cpp. The command you run afterwards is whisper-cli, which is the name the formula's own test uses.
  2. Install ffmpeg for converting audio: brew install ffmpeg.
  3. Make a folder for models and download one. Homebrew does not download models for you (its install notes say model files "are not downloaded by default"). The pre-converted files live on Hugging Face, so: mkdir -p ~/whisper-models && curl -L -o ~/whisper-models/ggml-base.en.bin https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.en.bin. That file is 142 MiB.
  4. Convert your recording to the format whisper.cpp wants. Its README says whisper-cli "currently runs only with 16-bit WAV files", and gives this command: ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav.
  5. Transcribe: whisper-cli -m ~/whisper-models/ggml-base.en.bin -f output.wav. The text prints to your terminal. Add -otxt to also write a .txt file next to the audio.

If you would rather clone the repo and use the download script, the README's quick start is: git clone https://github.com/ggml-org/whisper.cpp.git, cd whisper.cpp, cd models && sh download-ggml-model.sh base.en && cd .. (the README runs the same script by its path), then cmake -B build, cmake --build build -j --config Release, and ./build/bin/whisper-cli -f samples/jfk.wav. Building from source needs cmake and the Xcode command line tools. The Homebrew route skips all of that.

Faster still: Core ML

The README has an optional Core ML path that runs the encoder on the Apple Neural Engine. It says this can give more than a 3x speedup over CPU-only. It is not part of the Homebrew install. You build it yourself: pip install ane_transformers, openai-whisper and coremltools, run ./models/generate-coreml-model.sh base.en, then build with cmake -B build -DWHISPER_COREML=1. The README recommends Python 3.11 and macOS Sonoma (14) or newer, notes the first run is slow while the Neural Engine compiles the model, and that is the cost. For most people, plain Metal is fast enough and Core ML is not worth the extra setup.

Route 2: OpenAI's Python package

This is the original, from the openai/whisper repository. It needs ffmpeg and a working Python.

  1. Install ffmpeg: brew install ffmpeg.
  2. Install the package: pip install -U openai-whisper. The README says it is expected to work with Python 3.8 to 3.11 and recent PyTorch. If pip complains that tiktoken has no pre-built wheel for your machine, the README says you may need Rust, and setuptools-rust if you see No module named 'setuptools_rust'.
  3. Transcribe: whisper audio.mp3 --model turbo. The README says turbo is the default model. This one handles mp3, flac and wav directly, so no conversion step.
  4. For another language: whisper japanese.wav --language Japanese.

Why is this the slower route on a Mac? The honest answer is what the README does and does not say. It lists GPU memory needs for each model and says its speed numbers were measured on an A100, a data-center NVIDIA card. It does not mention Apple Silicon or Metal anywhere. whisper.cpp is the one that documents Mac GPU support. Check the speed on your own machine before you plan around either number, because the README itself says real speed varies with language, speaking speed and hardware.

Pick this route if you are already in Python, want to call Whisper from a script, or need exactly the reference behavior. Pick whisper.cpp if you just want transcripts quickly.

Which model size to download

Bigger models make fewer mistakes and take longer and more memory. These are the sizes from the two READMEs. Disk sizes are from the whisper.cpp models list. Memory is from the whisper.cpp README. Parameter counts and relative speed (compared with large, measured on an A100) are from the OpenAI README.

Files ending in .en (like base.en) only understand English. Everything else is multilingual. If you only speak English, the .en version is the right pick for tiny, base, small and medium. For another language, an .en file will not just fail, it will return English-looking nonsense, so grab the plain multilingual file.

Route 3: an app that does it for you

Both routes above turn a file into text. Neither one listens to you and types into Slack. whisper.cpp does ship a live-microphone example called whisper-stream, but its README calls it a naive real-time demo that you build yourself with SDL2, and it prints to the terminal. It does not know what app you are in.

That gap is why dictation apps exist. MightyMouse is a free Mac app that runs a speech model on your own Mac and types what you say at your cursor, in any app, with nothing uploaded. The full walkthrough is here. Here is what it does under the hood, checked against its source:

It costs nothing. Voice transcription is free with no word cap because it runs on your Mac and there is nothing for us to meter. It is macOS only.

What this costs you and where it falls short

Which one should you use?

If you have a folder of recordings, use whisper.cpp from Homebrew with small.en. If you are writing a script in Python, use the OpenAI package. If you want to talk and have it type, use an app. MacWhisper is an app built around the recordings case and VoiceInk around dictation. See the best dictation apps for Mac for a side-by-side, and speech to text on a Mac for the options Apple gives you for free. If your hands are busy, hands-free dictation on a Mac covers that setup.

Talk instead of type, in any Mac app, with the transcription running on your own Mac.
Free. Nothing is uploaded.

Download free for Mac

Common questions

How do I run Whisper locally on a Mac?

The fastest way is Homebrew. Run brew install whisper.cpp, download a model such as ggml-base.en.bin from Hugging Face, convert your audio to a 16-bit WAV with ffmpeg, then run whisper-cli -m model.bin -f audio.wav. whisper.cpp's README says that on Apple Silicon the inference runs on the GPU through Metal.

How do I install Whisper on a Mac?

Two ways. For the quick route, brew install whisper.cpp gives you the whisper-cli command. For OpenAI's original, run brew install ffmpeg and then pip install -U openai-whisper.

How do I run whisper.cpp on an M1 or M2 Mac?

The same way as any Mac. whisper.cpp's README says that on Apple Silicon the inference runs fully on the GPU via Metal, so you do not need to pass a flag to ask for it. An optional Core ML build can add a further speedup but needs a manual build.

Which Whisper model should I use on a Mac?

Start with base.en (142 MiB) for clear English speech or small.en (466 MiB) if you have accents or background noise. Use large-v3 (2.9 GiB) only if accuracy matters more than speed. Models ending in .en are English only.

Can Whisper type what I say into any app on my Mac?

Not on its own. whisper-cli and the Python package transcribe audio files. To dictate into other apps you need an app that records your voice, runs the model and pastes the text at your cursor, such as MightyMouse.

Is running Whisper locally free?

Yes. The model, whisper.cpp and the OpenAI package are all free to download and run, and nothing is sent to a server. The cost is your Mac's processor, memory and battery.

Read next