Text to speech (TTS) for the Omarchy bar. Read aloud any text you copy with a local AI voice (Kokoro). 54 voices, 9 languages, works offline after setup. Helps with dyslexia and long reads.
Powered by Kokoro: GitHub · 🤗 Hugging Face
- Left-click the speech bubble: read the clipboard. Click again to stop.
- Right-click: pick a voice, switch male or female, and open Settings for speed, language and keys.
- While a voice is getting ready, the icon turns into a spinning ring. While it reads, it shows a stop square.
Picking a voice plays a short sample. Choices are saved and apply to every read.
Add a toggle to ~/.config/hypr/bindings.lua. Copy the shortcut setup in Settings (right-click the bubble) copies these lines for you. They fire on a tap of AltGr + Right Ctrl:
o.bind("CTRL + ALT + Control_R", "Read clipboard aloud / stop", '$HOME/.local/share/omarchy-say/say --clip', { release = true })
o.bind("CTRL + ALT + Alt_R", "Read clipboard aloud / stop", '$HOME/.local/share/omarchy-say/say --clip', { release = true })Drag a box over any text on screen and hear it. Omarchy's built-in OCR copies the text, then Read Aloud reads it. Add this line too:
o.bind("SUPER + ALT + PRINT", "Read screenshot aloud", 'omarchy-capture-text && $HOME/.local/share/omarchy-say/say --clip')The first click sets up the voice by itself: Python 3.12 and the Kokoro engine through uv, then the 350 MB voice model, checked against fixed SHA-256 hashes. A progress bar shows in the panel, and it says "Voice ready" when done. Everything lands in ~/.local/share/omarchy-say/.
Needs PipeWire (pw-play) and wl-clipboard (wl-paste), which Omarchy ships, and uv, which some installs lack. Check with command -v uv, add it with omarchy pkg add uv.
omarchy plugin add https://github.com/remigius-labs/omarchy-read-aloud --enableThe icon shows in the bar after the shell reloads: omarchy restart shell, or log out and back in.
Paste this page into your assistant (Claude Code, Codex, …) and ask it to install Read Aloud. Each step has a check, so it knows when to move on.
- Check the tools. Run
command -v omarchy uv pw-play wl-paste. All four should print a path.- If
uvis missing, runomarchy pkg add uv. If that fails, follow uv's official install guide (https://docs.astral.sh/uv/getting-started/installation/), then open a new shell.
- If
- Add the plugin. Run
omarchy plugin add https://github.com/remigius-labs/omarchy-read-aloud --enable --yes.- Check:
omarchy plugin list | grep remi.sayshowsenabled.
- Check:
- Set up the voice. Run
~/.config/omarchy/plugins/remi.say/engine/setup. It installs Python 3.12 and the engine throughuv, then downloads the 350 MB model. This takes a few minutes.- Check:
ls ~/.local/share/omarchy-say/.readyexists. If setup stops, it prints the reason; fix that and run it again.
- Check:
- Reload the bar. Run
omarchy restart shell. The speech bubble shows in the bar. - Test the voice. Run
~/.local/share/omarchy-say/say "Read Aloud is ready". You should hear it. - Optional keybinds. Add the lines from Keybind to
~/.config/hypr/bindings.lua, including the screenshot one.
omarchy plugin remove remi.say
rm -rf ~/.local/share/omarchy-sayThe second line deletes the voice engine and model (about 350 MB).
- Kokoro has English (US, UK), Portuguese, Spanish, French, Japanese, Italian, Mandarin and Hindi.
- First sound takes about a second on a laptop CPU.
Copy text, tap the key, and it reads it out.
The voice engine runs with no network access at all (unshare -n), so nothing you read can leave the machine. This also blocks the usage telemetry that onnxruntime, the library Kokoro runs on, tries to send to Microsoft. On a system with unprivileged user namespaces switched off, it runs normally instead.
MIT. Kokoro model weights are Apache 2.0. Packages the setup installs keep their own licenses: kokoro-onnx and onnxruntime (MIT), phonemizer and espeak-ng (GPL-3).

