Add speech capabilities: ElevenLabs TTS narration plugin - #2
Merged
Merged
Conversation
New plugins/speech/ plugin with a Stop hook that narrates SirGent's final response aloud (markdown stripped, capped, played via afplay/mpv/ffplay/ PowerShell), a /speak command for on-demand narration, a /hush mute toggle, a voice skill, and a Windows-safe python3 shim. Registered in the marketplace manifest and documented in the plugins README and main README. Requires ELEVENLABS_API_KEY; degrades silently without one and never blocks the session (hook always exits 0). 🤖 Generated with Codebuff Co-Authored-By: Codebuff <[email protected]>
jeffrodrych7-stack
approved these changes
Sep 28, 2026
jeffrodrych7-stack
left a comment
Collaborator
There was a problem hiding this comment.
Rych BioTech
This was referenced Sep 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds speech capabilities to SirGent AI as a new bundled plugin,
plugins/speech/:hooks/speak_response.py) — when SirGent finishes a turn, the final response is distilled (markdown/code/tables stripped, capped at ~400 chars at a sentence boundary), converted to MP3 via the ElevenLabs text-to-speech API, and played through the platform player (afplayon macOS,mpv/ffplay/paplay/aplay/playon Linux, PowerShellMedia.SoundPlayeron Windows)./speakcommand — say arbitrary text aloud on demand./hushcommand — mute/unmute the narrator via~/.sirgent/speech-disabled.skills/voice/SKILL.md) — guidance for preparing natural spoken text, calling the TTS API, and playback per platform.tts-python.sh— Windows-safe python3 finder shim (same pattern as security-guidance).Setup
Set
ELEVENLABS_API_KEY(free tier available at elevenlabs.io). Optional:ELEVENLABS_VOICE_ID,ELEVENLABS_MODEL_ID,SPEECH_MAX_CHARS,SPEECH_DISABLE.Behavior guarantees
systemMessagenote, never a failed turn.sirgent-plugin/marketplace.jsonand documented inplugins/README.md+ mainREADME.mdValidation
🤖 Generated with Codebuff