$npx -y skills add SafeAI-Lab-X/ClawKeeper --skill sagElevenLabs text-to-speech with mac-style say UX.
| 1 | # sag |
| 2 | |
| 3 | Use `sag` for ElevenLabs TTS with local playback. |
| 4 | |
| 5 | API key (required) |
| 6 | |
| 7 | - `ELEVENLABS_API_KEY` (preferred) |
| 8 | - `SAG_API_KEY` also supported by the CLI |
| 9 | |
| 10 | Quick start |
| 11 | |
| 12 | - `sag "Hello there"` |
| 13 | - `sag speak -v "Roger" "Hello"` |
| 14 | - `sag voices` |
| 15 | - `sag prompting` (model-specific tips) |
| 16 | |
| 17 | Model notes |
| 18 | |
| 19 | - Default: `eleven_v3` (expressive) |
| 20 | - Stable: `eleven_multilingual_v2` |
| 21 | - Fast: `eleven_flash_v2_5` |
| 22 | |
| 23 | Pronunciation + delivery rules |
| 24 | |
| 25 | - First fix: respell (e.g. "key-note"), add hyphens, adjust casing. |
| 26 | - Numbers/units/URLs: `--normalize auto` (or `off` if it harms names). |
| 27 | - Language bias: `--lang en|de|fr|...` to guide normalization. |
| 28 | - v3: SSML `<break>` not supported; use `[pause]`, `[short pause]`, `[long pause]`. |
| 29 | - v2/v2.5: SSML `<break time="1.5s" />` supported; `<phoneme>` not exposed in `sag`. |
| 30 | |
| 31 | v3 audio tags (put at the entrance of a line) |
| 32 | |
| 33 | - `[whispers]`, `[shouts]`, `[sings]` |
| 34 | - `[laughs]`, `[starts laughing]`, `[sighs]`, `[exhales]` |
| 35 | - `[sarcastic]`, `[curious]`, `[excited]`, `[crying]`, `[mischievously]` |
| 36 | - Example: `sag "[whispers] keep this quiet. [short pause] ok?"` |
| 37 | |
| 38 | Voice defaults |
| 39 | |
| 40 | - `ELEVENLABS_VOICE_ID` or `SAG_VOICE_ID` |
| 41 | |
| 42 | Confirm voice + speaker before long output. |
| 43 | |
| 44 | ## Chat voice responses |
| 45 | |
| 46 | When the user asks for a "voice" reply (e.g., "crazy scientist voice", "explain in voice"), generate audio and send it: |
| 47 | |
| 48 | ```bash |
| 49 | # Generate audio file |
| 50 | sag -v Clawd -o /tmp/voice-reply.mp3 "Your message here" |
| 51 | |
| 52 | # Then include in reply: |
| 53 | # MEDIA:/tmp/voice-reply.mp3 |
| 54 | ``` |
| 55 | |
| 56 | Voice character tips: |
| 57 | |
| 58 | - Crazy scientist: Use `[excited]` tags, dramatic pauses `[short pause]`, vary intensity |
| 59 | - Calm: Use `[whispers]` or slower pacing |
| 60 | - Dramatic: Use `[sings]` or `[shouts]` sparingly |
| 61 | |
| 62 | Default voice for Clawd: `lj2rcrvANS3gaWWnczSX` (or just `-v Clawd`) |