sag

SkillMedia

Lets your agent turn text into spoken audio with natural voices and play it out loud.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the sag skill

About this capability

ElevenLabs text-to-speech with mac-style say UX.

What this skill tells your AI

The instructions your AI receives, as published by bitterbot-ai/bitterbot-desktop in skills/sag/SKILL.md and read by ahel’s review.

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 Bitterbot -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 Bitterbot: lj2rcrvANS3gaWWnczSX (or just -v Bitterbot)

Signals

GitHub stars
2k
Forks
417
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
sag-bitterbot-ai
Source
github.com/bitterbot-ai/bitterbot-desktop