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