Select text anywhere. Press ⌃⌥S. Hear it.
Works without an internet connection. Nothing to sign up for.
Free · 170 MB · Apple silicon · macOS 14 or later
or brew install --cask guymorita/tap/moxspeak
Select any text, anywhere, then press
Control + Option + S
The same passage, read by MoxSpeak and by the voice already on your Mac.
A web article
Technical writing
Fiction
macOS has had text-to-speech for decades, but it still sounds like a robot. MoxSpeak uses Kokoro, an 82-million-parameter open speech model that is small enough to run in real time on a MacBook Air and sounds better than the premium voices Apple ships.
The whole model is inside the app, with 29 voices. There is nothing to sign up for, and nothing stops working on a plane.
The usual way to run Kokoro is a Python server you talk to over HTTP. MoxSpeak instead runs the model in-process on the GPU through MLX, Apple’s machine learning framework for Apple silicon, which is what turns 1.9 seconds to first sound into 0.3.
| MoxSpeak | macOS built-in | Kokoro FastAPI | ElevenLabs | |
|---|---|---|---|---|
| Cost | Free | Free | Free | Paid |
| How it sounds | Natural | Robotic | Natural | Natural |
| Time to first sound | 0.3s | 0.4s | 1.9s | 1.5s |
| Setup | Easy | Easy | Hard | Account |
| Works offline | Yes | Yes | Yes | No |
| Works in any app | Yes | Yes | No | No |
All three measured on the same M2 Max. MoxSpeak is the median of 30 real plays; macOS is Apple’s premium Zoe voice.
| Key | What it does |
|---|---|
| ⌃⌥S | Speak the selected text |
| ⌃⌥D | Pause or resume |
| ⌃⌥X | Stop |
All three are rebindable from the menu, under Keyboard Shortcuts.
The voices are better than the cloud provider IMO.jonmagic, switching from ElevenLabs · Hacker News
The most natural sounding and small too.zackify · Hacker News
I use it to read ebooks that don't have audiobooks and it works pretty good for that.lucumo · Hacker News
On Kokoro, the open voice model MoxSpeak runs.
Nothing. There is no trial, no subscription, no licence key and nothing to sign up for. The file you download is the whole app, including the voices.
Apple silicon (M1 or later) and macOS 14 Sonoma or later. Intel Macs cannot run it: the model runs through MLX, which is Apple silicon only.
It is the only way on macOS to read the text you have selected in another app. Without it MoxSpeak still works, but it reads whatever you last copied instead, so you have to press ⌘C first.
Yes. The text you select never leaves your Mac. The voice runs on your own machine, so there is nothing to send anywhere and no company on the other end of it. The same goes for your clipboard, your files, and the names of the apps you use.
MoxSpeak does send anonymous crash reports and a count of things like "the app launched" or "speech started", so bugs get fixed without anyone having to write in. That is all it sends, it is not tied to you, and you can switch it off under Advanced → Send anonymous usage stats. The full list is in the source if you want to check rather than take my word for it.
That is expected. MoxSpeak has no window and no Dock icon; it puts a small diamond in your menu bar. If you cannot see it, check whether a menu bar manager such as Ice, Bartender or Hidden Bar has filed it under hidden items, which is where new icons usually land.
Yes, and you do not need MoxSpeak's shortcuts for it. While something is being read it appears in Control Center and on the lock screen with a real scrubber you can drag. The ⏪ and ⏩ keys on your keyboard move back and forward fifteen seconds, the same as a podcast player, and play/pause works from the keyboard or a paired set of AirPods.
Yes. MoxSpeak answers a moxspeak:// URL, so any launcher can drive it
without an extension to install:
open -g "moxspeak://speak" reads the selection, and there are
pause, stop, back and forward too.
The -g matters: without it macOS brings MoxSpeak to the front and the
selection it goes looking for is its own.
Ready-made Raycast commands and setup notes for the rest are in Integrations. The built-in shortcuts keep working; this is an extra door.
The voice model is inside the app rather than downloaded on first launch. That is what makes it work offline, immediately, with nothing to configure.
Drag it to the Trash. If you want the settings gone too, choose Advanced → Reset MoxSpeak first, which clears the preferences and the log.
Source-available. You can read, build, modify and audit it; redistributing it is not permitted. It is public because you should not have to take anyone's word for what an app with Accessibility access does with it.