Back to directory

NarrateClaude

A hands-free macOS voice loop for Claude Code that transcribes speech on-device, types it into the terminal window running Claude, and speaks the replies back in a chosen voice.

NarrateClaude

NarrateClaude lets someone talk to Claude Code instead of typing. A continuous listener uses Apple's on-device SFSpeechRecognizer and ends a sentence once the transcribed text stops changing; a supervisor process respawns the listener if it wedges, and an injector types each finished sentence into the bound Terminal window through AppleScript, cutting off any speech that is currently playing.

A relevance filter, including a local LLM judge that fails open, decides whether speech was meant for the assistant, with mute and pet-talk handling. A Claude Code Stop hook reads the assistant's reply aloud through a pluggable text-to-speech script, and a control CLI offers setup, start, stop, status, toggle and log-tailing commands. A voiceprint filter exists in the code but is not active in the current listener.

The project is macOS-only, is written in Shell and Swift, and documents its echo-cancellation work in an engineering log recording several attempts and their measured results. It is MIT licensed.

More in Coding agents

See all 793
  • The City

    github.com

    A native macOS app that shows Claude Code runs as a city, with each project as a building, each team as a floor of robots, and every animation driven by a real event from the claude CLI's stream.

  • rig

    tryrig.ai

    A small, single-binary agent runtime that points at any OpenAI-compatible model, local or hosted, reads and edits a repository's code, runs its tests and remembers what it learned, with a loop implemented in a few hundred lines.

  • Jauvex

    jauvex.reindent.com

    An Electron desktop app that puts Claude Code, Codex and Grok coding-agent sessions side by side and lets you steer them by voice, with a small model handling fast routing decisions.