{"slug": "show-hn-giving-claude-code-and-codex-its-voice-using-kokoro", "title": "Show HN: Giving Claude Code and codex its voice using kokoro", "summary": "Developer softcane released Aloud, an open-source macOS tool that reads Claude Code and Codex CLI replies aloud using the local Kokoro text-to-speech engine. The tool runs entirely offline, installs via Homebrew and pipx, and provides hotkeys for full reply playback and stop controls.", "body_md": "Aloud reads Claude Code and Codex replies aloud on macOS.\n\nTurn it on with `aloud on`\n\nin any Claude Code or Codex session. Aloud speaks a short summary after each assistant reply. Use `Cmd + Ctrl + H`\n\nfor the full reply, or `Cmd + Ctrl + .`\n\nto stop playback.\n\nAloud uses [Kokoro](https://github.com/hexgrad/kokoro) for local text-to-speech. The Python package installs Kokoro. Kokoro downloads its model files the first time speech generation starts, then reuses the local cache. Aloud does not send agent replies to an external TTS service.\n\n- macOS.\n- Python 3.11 or 3.12.\n[Homebrew](https://brew.sh).- Claude Code, Codex CLI, or both.\n\n```\nbrew install python@3.11 pipx\npipx ensurepath\npipx install --python python3.11 git+https://github.com/softcane/aloud.git\naloud install\naloud doctor\n```\n\nRestart Claude Code or Codex after install. In Codex, open `/hooks`\n\nand trust the Aloud hooks. In macOS System Settings, give Hammerspoon Accessibility permission for the hotkeys.\n\nThe installer:\n\n- creates the Aloud config, cache, log, and session directories;\n- starts a launchd daemon for speech generation;\n- installs Hammerspoon hotkeys;\n- installs Claude Code commands and Codex prompt shortcuts;\n- merges Aloud hooks into Claude Code and Codex settings;\n- writes timestamped backups before editing hook settings.\n\nInside Claude Code or Codex:\n\n```\naloud on\n```\n\nAloud arms only that session. Later replies in that session speak a short summary. The agent does not receive `aloud on`\n\nas a prompt.\n\nClaude Code also supports `/aloud-on`\n\nand `/aloud-off`\n\n. In Codex, use `aloud on`\n\nand `aloud off`\n\n; Codex prompt shortcuts are available as `/prompts:aloud-on`\n\nand `/prompts:aloud-off`\n\nafter Codex reloads its prompt list.\n\nControls:\n\n`aloud off`\n\n: stop speaking this session.`Cmd + Ctrl + H`\n\n: speak the full reply from the last session Aloud spoke.`Cmd + Ctrl + .`\n\n: stop playback.`aloud full`\n\n: speak the full reply from a terminal.`aloud stop`\n\n: stop playback from a terminal.\n\nMultiple sessions are tracked separately. If session A speaks, the full-reply hotkey reads session A even if session B finishes later.\n\n```\naloud doctor\naloud self-test --no-audio\naloud voices\naloud voices --play\naloud uninstall\n```\n\n`doctor`\n\nchecks the installed files and hooks. `self-test --no-audio`\n\nchecks the registry without using Kokoro or audio hardware. `voices --play`\n\npreviews Kokoro voices on the current macOS output device.\n\nAloud writes mutable files under `~/Library`\n\n:\n\n- config:\n`~/Library/Application Support/Aloud/config.json`\n\n- socket and session registry:\n`~/Library/Application Support/Aloud/`\n\n- WAV cache:\n`~/Library/Caches/Aloud/`\n\n- daemon log:\n`~/Library/Logs/Aloud/daemon.log`\n\n- launchd plist:\n`~/Library/LaunchAgents/io.aloud.daemon.plist`\n\nEdit `config.json`\n\nto change voice, speed, or retention settings.\n\n```\nlaunchctl unload ~/Library/LaunchAgents/io.aloud.daemon.plist\nlaunchctl load -w ~/Library/LaunchAgents/io.aloud.daemon.plist\naloud uninstall\npipx uninstall aloud\n```\n\nUninstall removes the launchd plist, Hammerspoon hotkeys, Claude Code commands, Codex prompt shortcuts, and hook entries. It leaves state, cache, and logs in place for inspection.\n\nTo remove those files too:\n\n```\nrm -rf ~/Library/Application\\ Support/Aloud ~/Library/Caches/Aloud ~/Library/Logs/Aloud\ngit clone https://github.com/softcane/aloud.git\ncd aloud\npython3.11 -m venv .venv\n.venv/bin/python -m pip install -e '.[dev]'\n.venv/bin/ruff check .\n.venv/bin/ruff format --check .\n.venv/bin/pytest\n.venv/bin/aloud doctor\n.venv/bin/aloud self-test --no-audio\n```\n\nBefore release, also run live smoke tests in Claude Code and Codex CLI, then run one real audio smoke on the current macOS output device.\n\nAloud depends on [Kokoro](https://github.com/hexgrad/kokoro) for local speech, [espeak-ng](https://github.com/espeak-ng/espeak-ng) for phonemization, and [Hammerspoon](https://www.hammerspoon.org) for hotkeys.\n\nMIT.", "url": "https://wpnews.pro/news/show-hn-giving-claude-code-and-codex-its-voice-using-kokoro", "canonical_source": "https://github.com/softcane/aloud", "published_at": "2026-07-14 04:35:55+00:00", "updated_at": "2026-07-14 04:48:33.343948+00:00", "lang": "en", "topics": ["developer-tools", "ai-tools", "artificial-intelligence"], "entities": ["softcane", "Claude Code", "Codex CLI", "Kokoro", "Hammerspoon", "Homebrew", "pipx", "espeak-ng"], "alternates": {"html": "https://wpnews.pro/news/show-hn-giving-claude-code-and-codex-its-voice-using-kokoro", "markdown": "https://wpnews.pro/news/show-hn-giving-claude-code-and-codex-its-voice-using-kokoro.md", "text": "https://wpnews.pro/news/show-hn-giving-claude-code-and-codex-its-voice-using-kokoro.txt", "jsonld": "https://wpnews.pro/news/show-hn-giving-claude-code-and-codex-its-voice-using-kokoro.jsonld"}}