Skip to content

alphabet/speak

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

speak

Text-to-speech plugin for Claude Code. Reads responses aloud using native TTS engines.

Demo

demo-video.mov

Prerequisites

  • git — Required to clone the plugin repository
  • Node.js 18+ — Required to run plugin hooks

Install

claude plugin marketplace add https://alphabetware.com/marketplace.json
claude plugin install speak

To install from source instead:

gh repo clone alphabet/speak ~/speak
claude --plugin-dir ~/speak

Usage

Type /speak to verify the plugin is loaded. Key commands:

/speak on                          # enable TTS
/speak off                         # disable TTS
/speak set voice Ava               # change voice (fuzzy match)
/speak set speed 1.5               # adjust speed (0.1-3.0)
/speak set sentences 2             # sentences per response (1-10)
/speak terse                       # strip markdown before speaking
/speak voices                      # list available voices
/speak set notificationHook <mode> # on|off|speak/<path>

Full command reference: skills/speak/SKILL.md

Platform support

Platform Engine Install
macOS say (native) Built-in, always available
Linux espeak (native) apt install espeak or dnf install espeak
Windows SAPI (native) Built-in via PowerShell + System.Speech

How it works

A Stop hook fires after each Claude response. The text is cleaned (markdown stripped), truncated to N sentences, and spoken by the platform's native TTS engine. If a previous response is still speaking, it gets cut off. No additional tokens are consumed -- this is pure client-side TTS.

A Notification hook fires on permission prompts and idle pings, configurable via /speak set notificationHook (on/off/speak/sound-file path; off silences it, speak TTS's it, a path plays that sound on macOS).

The engine interface is at lib/engine.mjs if you want to swap in a different runtime.

Troubleshooting

No sound on macOS -- Check system volume. Run say "test" in Terminal. Check ~/.speak/config.json has "enabled": true.

No sound on Linux -- Install espeak: apt install espeak. Run espeak "test" to verify.

Adjust voice or speed -- /speak voices to list voices, /speak set voice <name> for fuzzy match, /speak set speed <n> for rate.

Config issues -- Delete ~/.speak/config.json to reset to defaults. Parse errors are logged to ~/.speak/speak.log.

Hook not firing -- Restart your Claude Code session after installing. Check ~/.speak/speak.log for errors.

License

License: MIT

This plugin is MIT licensed. It calls platform TTS engines on the user's machine -- it does not redistribute any voice assets. macOS system voices are subject to Apple's macOS Software License Agreement. espeak-ng is GPLv3; this plugin calls the system binary without bundling it.

Releases

No releases published

Packages

 
 
 

Contributors