Listen to your screen. An always-on, fully local text-to-speech companion for macOS.
Myna lives in your menu bar and reads any selection, any web article, or any Claude Code reply aloud with a single hotkey. Everything happens on your Mac — text never leaves the device.
Install · What it does · Hotkeys · CLI · How it works
brew install --cask PrerakGada/myna/mynaOr grab the signed, notarised DMG from the latest release.
On first launch Myna walks you through a 60-second spoken intro, asks for Accessibility permission, and then sits quietly in your menu bar.
Requirements: macOS 14 (Sonoma) or later · Apple Silicon (M1/M2/M3/M4).
- Speak any selection — highlight text in any app, press the hotkey, listen.
- Read articles — Chrome or Safari front tab, parsed and read in order.
- Claude Code, on your terms — when a Claude Code hook fires, a small playable card slides in from the top-right of your screen. One tap to play, one to dismiss. Parallel sessions stack up to three; nothing ever talks over itself.
- Full or summary — separate triggers; summaries run locally via Ollama.
- Floating pill — while Myna reads, a slim transport sits at the bottom of the active display. Hover to expand into a mini player; drag it wherever you want.
- Per-app voices — pin a different voice per app. Bella for articles, Joe for code, Anna for chat.
- Karaoke ribbon (opt-in) — the current spoken line appears at the bottom of your screen, line by line.
- Voice previews — audition voices in Settings before committing.
- Trackpad gestures (opt-in) — four-finger tap to speak, four-finger double-tap to stop.
All shortcuts are rebindable from Settings → Hotkeys.
| Action | Default |
|---|---|
| Speak selection (full) | ⌘⌥⇧S |
| Speak selection (summary) | ⌘⌥⇧A |
| Read article (front tab) | ⌘⌥⇧R |
| Pause / resume | ⌘⌥⇧Space |
| Stop | ⌘⌥⇧. |
Defaults use ⌘⌥⇧ (Command-Option-Shift) to stay clear of common app shortcuts.
myna "Read this aloud."
pbpaste | myna
myna --summary "Long text to condense first."
myna --speed 1.25 "Faster reading."~/.config/myna/config.json— voice, speed, summary model, ports~/.config/myna/voice_wardrobe.json— per-app voice rules~/.config/myna/keybindings.json— recorded shortcuts- Logs:
~/Library/Logs/myna-{engine,daemon}.log
Selection / hotkey / Claude Code event
↓
Myna.app
(menu bar · floating pill · settings)
↓
myna daemon (FastAPI, :8766)
↓
mlx-audio Kokoro engine (:8765)
- Voice engine — Kokoro running on mlx-audio. ~80 MB model, runs entirely on the Apple Neural Engine.
- Daemon — Python FastAPI service that handles extraction, summarisation, chunking, and streaming. Priority-first chunking returns the first audio in ~240 ms.
- App — Swift / SwiftUI menu-bar app with a custom popover, the floating pill, the karaoke sidecar, and global hotkeys (built with Sindre Sorhus's KeyboardShortcuts).
- Auto-update — Sparkle 2, EdDSA-signed.
- Text and audio stay on your Mac. No telemetry, no network calls except to localhost.
- The daemon binds to
127.0.0.1only. Firewall-friendly by default. - Sparkle update checks hit GitHub Releases — that's the only outbound traffic.
Myna is built for macOS Apple Silicon today. Other platforms will follow if there's clear demand. File an issue with feature requests or bug reports.
git clone https://github.com/PrerakGada/myna
cd myna
# Daemon
cd daemon && pip install -e . && pytest
# Mac app
cd ../apps/macos && ./dev.shProject layout, contribution guide, and architecture notes live in docs/.
MIT. Built by Prerak Gada.