sag
ElevenLabs text-to-speech engine for OpenClaw with macOS-style CLI and voice synthesis control.
Introduction
Sag is a high-performance text-to-speech (TTS) integration for the OpenClaw AI assistant, leveraging ElevenLabs to provide realistic and expressive synthetic voices. Designed with a familiar macOS 'say' command UX, it allows users to convert text responses into high-quality audio files directly from the command line. This skill is essential for users who prefer auditory interactions or need to generate voice-over content for automated chat replies. It supports multiple ElevenLabs models, including expressive variants for conversational agents and high-speed options for low-latency playback.
-
Full ElevenLabs API integration supporting v2, v2.5, and v3 model architectures.
-
Supports expressive audio tags such as [whispers], [shouts], [sings], and [laughs] for natural-sounding delivery.
-
Built-in support for voice parameter customization including voice IDs and normalized language biasing.
-
Integrated pipeline for generating voice-based chat responses; outputs include file paths suitable for the OpenClaw MEDIA protocol.
-
Simple command-line interface for listing voices, testing TTS, and handling pronunciation through respelling and normalization.
-
Ensure you have a valid ElevenLabs API key set in your environment variables (ELEVENLABS_API_KEY or SAG_API_KEY).
-
Use the [pause], [short pause], or [long pause] tags for pacing, as v3 models do not support standard SSML break tags.
-
For chat integration, generate audio files to a temp directory and use the MEDIA:/path/to/file.mp3 syntax to render output in your assistant's client.
-
When defining specific personalities like a 'crazy scientist,' combine emotional tags with variable intensity settings to maximize the effect.
-
Use the --normalize auto flag to handle numbers, units, and URLs automatically, but switch to off if it interferes with specific proper names.
Repository Stats
- Stars
- 366,063
- Forks
- 75,055
- Open Issues
- 6,978
- Language
- TypeScript
- Default Branch
- main
- Sync Status
- Idle
- Last Synced
- Apr 29, 2026, 07:48 AM