Recite is a small Mac app that gives your computer a local AI voice.
Think of it like text-to-speech you can run yourself. Select text in any app, press Control + Option + R, and Recite reads it back out loud. Articles, docs, emails, notes, long messages - anything you can select.
The simple idea: your Mac turns text into speech using its own hardware. No cloud voice API. No per-minute bill. No sending your private reading material to a server.
Text-to-speech means software reads written words out loud.
Old text-to-speech sounded robotic. Newer AI voice models can sound much more natural. A lot of tools do this in the cloud with paid services, like ElevenLabs-style voice APIs.
Recite does it locally instead. It downloads a small AI voice model once, then uses your Mac to generate the audio.
- Read long articles back to you for free.
- Listen to docs, emails, notes, and web pages while you do something else.
- Use local AI voices without paying for a cloud voice service.
- Keep selected text and generated audio on your Mac.
- Start reading from a global hotkey or the menu bar.
- Queue text, replay history, choose a voice, and adjust speed.
- You select text.
- Recite grabs that selected text.
- A local AI voice model turns the text into audio.
- Your Mac plays the audio back.
Recite uses Kokoro 82M for the voice and Apple MLX to run it efficiently on Apple Silicon Macs.
- macOS 14 Sonoma or newer
- Apple Silicon Mac
- No Homebrew install is needed for the DMG download.
Download the latest DMG from GitHub Releases.
Recite is just starting out. If there is not a release yet, use the Quick Start steps below.
git clone --recursive https://github.com/r3dbars/recite.git
cd recite
brew install espeak-ng
swift build
./scripts/build-and-run.shSource builds use your local Homebrew espeak-ng to assemble the app bundle. The downloadable DMG bundles that helper for normal users.
On first launch, Recite downloads the Kokoro voice model from Hugging Face. After that, reading text aloud runs locally on your Mac.
- Launch Recite.
- Grant Accessibility permission when macOS asks.
- Select text in another app.
- Press Control + Option + R.
You can also use the menu bar icon to read clipboard text, open the main window, pause playback, or manage the queue.
Recite is local-first by design.
- Selected text is read from Accessibility APIs or a temporary copy fallback.
- The copy fallback restores your clipboard after it runs.
- Recite does not send selected text or generated audio to a server.
- Reading history is stored locally in macOS user defaults and can be cleared in the app.
- The Kokoro voice model is downloaded once from Hugging Face on first launch.
Please do not paste private text into GitHub issues.
./scripts/build-dmg.shThe DMG is written to .build/dist/Recite-<version>.dmg. Local builds use ad-hoc signing by default. To use a local signing identity:
RECITE_CODESIGN_IDENTITY="Apple Development: Your Name (TEAMID)" ./scripts/build-dmg.shPackage.swift Swift Package entry point
scripts/build-and-run.sh Build, sign, and launch Recite.app
scripts/build-dmg.sh Build a local DMG
Recite/Sources/Recite/AppDelegate.swift
Menu bar, hotkey, and app lifecycle
Recite/Sources/Recite/TextGrabber.swift
Selected text capture
Recite/Sources/Recite/SpeechEngine.swift
Kokoro model loading and audio playback
Recite/Sources/Recite/ReadingQueue.swift
Queue and local history
Recite/Sources/Recite/MenuBarView.swift
SwiftUI popover, window, and settings
Recite/Resources/ App metadata, entitlements, and icons
docs/assets/ README art and generated icon source
See SETUP.md for setup details.
See CONTRIBUTING.md before opening a pull request.
Recite source code is MIT licensed.
Release builds also include or download third-party components with their own licenses. See THIRD_PARTY_NOTICES.md.

