Skip to content
AI & Agents
Skill

/sag

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

BOOST
From plugin
openagent
5.7k54 skills
Install
$ npx -y skills add the-open-agent/openagent --skill sag --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/sag

Context preview

The summary Claude sees to decide when to auto-load this skill.

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

SKILL.md

sag.SKILL.md
name: sag
description: ElevenLabs text-to-speech with mac-style say UX.
homepage: https://sag.sh
metadata:
  {
    "openclaw":
      {
        "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)",
            },
          ],
      },
  }

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 the user 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`)

Read more
Ships withopenagent

⚡️next-generation personal AI assistant powered by LLM, RAG and agent loops, supporting computer-use, browser-use and coding agent, demo: https://demo.openagentai.org

Get the whole plugin
Stats
5,691
Stars
667
Forks
Active
Maintenance
Go
Language
Apache-2.0
License
11h ago
Last commit
6y ago
Created
1d ago
Added

Repo: the-open-agent/openagent

Other skills on openagent.