Free · open source · for Apple Silicon Macs

Your eyes are tired.
Your Mac can read.

Select text in any app and press ⌘⌥⇧S. Myna reads it to you in a natural voice generated right on your Mac: no cloud speech service, no account, no subscription.

Version 0.5.1 · macOS 14+ · 4 MB download · voice installs on first launch

PreviewFileEdit
Thu 5:24 PM
on-listening.pdf

On listening

There is a particular hour of the afternoon when the screen turns to gauze, when the prose you still owe the day grows heavier than it should, and you read the same paragraph three times. That is the hour a voice does better than your eyes.

the screen turns to gauze, when the prose you still owe the day
af_heart
0:42
2:18
1.25×
⌘⌥⇧Sread it
Any app

Browsers, PDFs, mail, Slack, terminals: if you can select it, Myna can read it.

On your Mac

Kokoro runs on Apple Silicon through MLX. Your text never goes to a speech service.

Free for good

MIT-licensed source. No account, no usage limits, nothing to upgrade to.

Some afternoons the screen turns to gauze. The words you’ve read since morning blur into one long ribbon, and the prose you still owe the day feels heavier than it should. Myna is for those afternoons — a small companion in the menu bar that takes the reading off your eyes and gives it back to you as a voice.

No. I · what it does

Small superpowers,
one quiet bird.

01Selection

Select. Press. Listen.

Highlight text anywhere — a web page, a PDF, an email, a terminal — and press ⌘⌥⇧S. Myna reads it straight through, from the first word to the last, without stalling mid-sentence. Want the gist instead? ⌘⌥⇧A has a local model summarize it first, if you run Ollama.

the-quiet-web.com/essays/on-listening

On Listening

There is a particular hour of the afternoon when the screen begins to gauze over, when the prose you owe the day grows heavier than it should, and you find yourself reading the same paragraph for the third time. That is the hour Myna was built for.

⌘⌥⇧Sspeak it
02Articles

The page, read to you.

Open an article in Chrome and press ⌘⌥⇧R. Myna pulls the piece out of the page — no navigation, no cookie banner, no “subscribe” box read in a calm voice — and reads just the writing.

advertisement
newsletter signup
ad
reading
03The player

A player that stays out of the way.

While Myna reads, a slim bar waits at the bottom of your screen. Hover and it opens into a player: scrub, jump ten seconds, pause, or speed up to 2× without the chipmunk pitch. Drag it anywhere and it stays there. The menu bar holds the rest — your voice, your speed, and the last five things you listened to, one click from a replay.

Designing for the ear: why long sentences need air
af_heart
0:42
2:18
1.25×
04Hands-free

Four fingers, or no hands at all.

Turn on trackpad gestures and a four-finger press-and-hold reads your selection, with a soft tone to say it heard you; a four-finger double-tap stops. Or drive Myna from Shortcuts, Raycast, Alfred or BetterTouchTool with myna:// links. Every hotkey can be rebound.

Trackpadhold · reads the selection
four fingers, about a third of a second
# from Shortcuts, Raycast, Alfred or BetterTouchTool
open myna://speak-selection
open myna://toggle-pause
open "myna://speed?value=1.5"
No. II · for Claude Code

Your agents finish.
You hear the answer.

Start a long task, go and read something else, and let the reply come to you. When a Claude Code session ends, its answer appears in Myna’s player as New output ready. Press Play and the whole reply is read in your voice. Run five sessions at once and they still arrive one at a time, so nothing talks over anything else.

  • One click reads the full reply, not a truncated preview.
  • Replies waiting to be heard stay in the menu bar for ten minutes, colour-coded by project.
  • Connected during setup if Claude Code is on your Mac. Nothing to configure.
Mynav0.5.1speaking
Now playing
The quiet case for reading aloud
af_heart · 1.0x · 0:42 / 2:18
Back 15s
Pause
Stop
Skip 15s
VoiceHeart (female)
Speed1×
Claude Code2
myna· just now

Wired dmgbuild into the release workflow; the disk image now opens on its install stage.

Play× Dismiss
landing-page· 3m ago

Rewrote the install section and pointed /download at the latest release.

Play× Dismiss
Recent5
Settings
What's New
Updates
Restart
Logs
Quit
New output ready

Done. The pill now remembers where you left it on each display, and dragging it…

PlayDismiss
Myna
af_heart
No. III · why local

A voice that lives
on your Mac.

01

Private.

The voice is generated by the Kokoro model on your own Mac, so what you select is never sent to a speech service. No analytics, no telemetry.

no speech API, no tracking
02

Free.

Cloud voices bill by the character and the month. Myna has nothing to bill: no account, no subscription, no usage limits, MIT-licensed.

$0 · MIT
03

Dependable.

No API key to expire, no rate limit to hit, no service that changes its voice or shuts down. The model sits on your disk and keeps working.

Kokoro-82M · MLX

In the interest of plain dealing: Myna does use the network to download its voice during setup, to check GitHub for updates, and to fetch an article’s page when you ask it to read one. Summaries go to Ollama, which also runs on your Mac.

No. IV · install

Download. Drag.
Open.

One small download. The first time you open Myna, it installs its own voice — no Terminal, no Homebrew, no admin password — and then it lives in your menu bar.

1

Download Myna

A signed, Apple-notarized disk image of about 4 MB.

Version 0.5.1 · all releases

2

Drag it into Applications

Open the disk image and drag the bird onto the Applications folder.

The Myna disk image window: drag Myna into Applications
3

Open it — it sets up its voice

About 1 GB, a few minutes on a good connection. Then allow Accessibility, select something, and press ⌘⌥⇧S.

Setting up Myna
This takes a few minutes. You can keep working while it runs.
Check this Mac
macOS 26.0
Python runtime
Python 3.13
Voice engine
Installing the voice engine — about 600 MB the first time…
~600 MB
Background service
Keeps the voice ready and starts when you log in
Kokoro voice
The voice model, downloaded once
~370 MB
Claude Code
Reads finished Claude replies aloud, if you use it
Elapsed 1:24Show detailsInstalling…
Chip
Apple Silicon · M1 or later
System
macOS 14 Sonoma or later
Space
About 1 GB for the voice

Prefer Homebrew?

The cask installs the app plus its background service, and adds a myna command for reading from the terminal. Open Myna once afterwards to finish setting up the voice.

$ brew tap prerakgada/tap
$ brew trust prerakgada/tap
$ brew install --cask prerakgada/tap/myna

Want summaries?

The summary shortcut hands your selection to a small local model through Ollama. Skip this if you only want Myna to read.

$ brew install ollama
$ ollama pull qwen3.5:4b
Default shortcuts · all rebindable

Five keys. No clashes.

They all start with ⌘⌥⇧, so they stay clear of the shortcuts you already use. Change any of them in Settings → Hotkeys.

  • Read the selection⌘⌥⇧S
  • Summarize the selectionneeds Ollama⌘⌥⇧A
  • Read the Chrome article⌘⌥⇧R
  • Pause / resume⌘⌥⇧Space
  • Stop⌘⌥⇧.
No. V · how it works

Three layers, quietly stacked.

Each part does one job. The app is what you touch, the daemon decides what to say and in what order, and the voice speaks. All three run on your Mac and talk to each other over its loopback address.

  1. Layer 01

    App.

    Native Swift · AVAudioEngine

    The menu bar, the floating player, hotkeys, gestures and Settings. Playback runs through AVAudioEngine, so faster speeds keep their pitch and you can scrub mid-sentence. Signed, notarized, and kept current by Sparkle.

  2. Layer 02

    Daemon.

    Python · FastAPI · 127.0.0.1 only

    A small background service that breaks text into sentences, streams audio back as each part is ready, pulls the article out of a web page, and hands summaries to Ollama. It only listens on your Mac’s own loopback address.

  3. Layer 03

    Voice.

    MLX · Kokoro-82M

    The Kokoro voice model, running on Apple Silicon through MLX and looked after by the daemon. It downloads once during setup. From then on, every word is spoken right on your Mac.

No. VI · questions

Answered plainly.

  • A Mac with Apple Silicon (M1 or later) running macOS 14 Sonoma or newer, and about 1 GB of free space for the voice. The speech engine is built on Apple’s MLX framework, which only runs on Apple Silicon, so Intel Macs can’t run it.
  • A setup window installs Myna’s voice into your user account: a private copy of Python, the MLX speech engine (about 600 MB), a small background service, and the Kokoro voice model (about 370 MB). Each step shows its progress. No Terminal, no admin password, and a few minutes on a good connection. If you use Claude Code, it connects that too. Then it asks for Accessibility, which it needs to copy the text you select.
  • Yes. No price, no account, no usage limits, and nothing to upgrade to. The source is MIT-licensed on GitHub.
  • The voice is generated on your Mac by the Kokoro model, so the text you read is never sent to a speech service, and summaries run through Ollama on your own machine. Myna does touch the network in three specific cases: downloading its voice during setup, checking GitHub for app updates, and, when you use Read article, fetching that page from the web the way your browser did. There’s no analytics and no telemetry.
  • Four natural US-English Kokoro voices: Heart (the default), Bella, Michael and Adam. Switch from the menu bar, or preview them in Settings → Voice. Speed runs from 0.5× to 2× without changing the pitch.
  • Reading a selection with ⌘⌥⇧S works in any app you can copy text from: browsers, PDFs, editors, mail, Slack, terminals. Read article (⌘⌥⇧R) reads the front tab of Google Chrome. In full-screen terminal apps like Claude Code, hold ⌥ while you drag so the terminal makes a real selection.
  • Setup adds a small Stop hook to Claude Code. When a session finishes, its reply appears in Myna’s floating player as New output ready, with Play and Dismiss. Play reads the whole reply in your voice. If several sessions finish together, their replies come one at a time, so nothing talks over anything else, and the menu bar lists the ones waiting, tagged by project.
  • Yes: ⌘⌥⇧A summarizes the selection and reads the summary. It needs Ollama running on your Mac with the qwen3.5:4b model (brew install ollama, then ollama pull qwen3.5:4b). Plain reading doesn’t need any of that.
  • Yes. Anything that can open a URL can drive Myna: myna://speak-selection, myna://read-chrome, myna://toggle-pause, myna://stop, myna://seek?delta=-15 and myna://speed?value=1.5.
  • Kokoro is a modern neural voice that stays pleasant through a long essay. Around it Myna adds a floating player you can scrub and speed up, clean article extraction, Claude Code replies, a list of recent reads you can replay, trackpad gestures, and URL automation.
  • Through Sparkle: signed updates published on GitHub Releases, offered right inside the app. A disk-image install also keeps its background service in step with the app after each update.
  • Quit Myna and drag it to the Trash. To remove its voice as well:
    launchctl bootout gui/$(id -u)/dev.myna.daemon
    rm -rf ~/Library/LaunchAgents/dev.myna.daemon.plist \
      ~/.venvs/myna-daemon ~/.venvs/mlx-audio \
      ~/Library/Application\ Support/Myna ~/.config/myna \
      ~/.cache/huggingface/hub/models--prince-canuma--Kokoro-82M
    If you connected Claude Code, also delete the myna-cc-announce.py entry from ~/.claude/settings.json. Installed with Homebrew? brew uninstall --cask myna and brew uninstall myna-daemon.

Made for people who’d rather listen.