Install First run Usage Voices CLI How it works Troubleshooting Uninstall
Requirements: macOS (Apple Silicon recommended) and Homebrew.
curl -fsSL https://raw.githubusercontent.com/EloiGils/outloud/main/install.sh | bash
Or from a clone:
git clone https://github.com/EloiGils/outloud.git
cd outloud
./install.sh
The installer sets up:
~/.outloud/venv with the
Kokoro-82M voice model
(~2 GB including PyTorch β one-time download),outloud CLI and a launchd daemon that keeps the voice model
warm from login (that's why it speaks in ~1.7 s).| Action | How |
|---|---|
| Read the selected text | β₯βL β in any app |
| Stop | β₯βK or β on the HUD |
| Search reading history | β₯βH β Spotlight-style, Enter replays |
| Pause / resume (exact) | βΈ / βΆ on the HUD |
| Replay from the top | π on the HUD (instant) |
| Change speed live | β / + on the HUD (0.5Γ-3Γ, persists as your default) |
| Re-listen to a recent reading | π menu bar β click any entry |
While reading, a floating HUD shows what's playing:
π Reading your articleβ¦ β 1.5Γ + βΈ π β
outloud ships with 50+ Kokoro voices across 9 languages. Switch in the
π menu β Voice, or per-call from the CLI (-l language, --voice):
| Code | Language | Example voices |
|---|---|---|
a | English (US) | af_heart, am_adam |
b | English (UK) | bf_emma |
e | Spanish | ef_dora, em_alex, em_santa |
f | French | ff_siwis |
i | Italian | if_sara, im_nicola |
p | Portuguese (BR) | pf_dora, pm_alex |
h | Hindi | hf_alpha, hm_omega |
j | Japanese* | jf_alpha |
z | Mandarin* | zf_xiaobei |
*Japanese and Mandarin need one extra: ~/.outloud/venv/bin/pip install "misaki[ja]"
(or "misaki[zh]").
outloud "read this sentence" # read text
cat article.md | outloud # from a pipe
outloud # read the clipboard
outloud -s 1.6 # speed
outloud -l e --voice em_alex # Spanish, male voice
outloud --pause | --resume # exact pause / resume
outloud --replay # restart current reading (instant)
outloud --speed-live 2.0 # change speed of current reading
outloud --stop
outloud --history # list past readings
outloud --history 50 --json # for scripts/integrations
outloud --reread 20260721-134536 # re-listen (cached audio, ~0.4s)
outloud --last # re-listen to the most recent
--pausa,
--reanudar, --repetir, --historial,
--releer, --ultimo.select text βββ₯βLβββΆ Hammerspoon UI βββΆ outloud CLI βββΆ daemon (Kokoro, warm)
β sentence-by-sentence
βΌ
HUD controls βββsocketβββΆ mpv (gapless playlist,
exact pause, live speed)
afplay can't truly pause: the audio clock
keeps running.)Check Hammerspoon has Accessibility permission (System Settings β Privacy & Security β Accessibility) and that the π¨ icon is in your menu bar. Then reload: click it β "Reload Config".
outloud reads iTerm's clipboard (iTerm blocks synthetic keystrokes but copies selections automatically). Make sure iTerm's "Copy to pasteboard on selection" (Settings β General β Selection) is enabled β it is by default.
The daemon warms the model for your system language at login. The first reading in a different language loads that pipeline once (~5 s), then it's fast.
History and cached audio: ~/Library/Application Support/Outloud.
Daemon log: ~/.cache/outloud-daemon.log. Settings live in Hammerspoon
(hs.settings, keys outloud.*).
cd outloud && ./uninstall.sh
Removes the CLI, daemon, Python environment and UI module. Your reading history
stays in ~/Library/Application Support/Outloud until you delete it.