sag skill
ElevenLabs text-to-speech with mac-style say UX.
Is the sag skill safe?
Clean: nothing in its files matched our rules. We read 1 file in the folder on 2026-10-25.
No findings.
Install the sag skill
A skill is a folder. Copy it into your agent's skills folder and the agent loads it when the task matches its description.
git clone --depth 1 https://github.com/openclaw/openclaw.git /tmp/openclaw mkdir -p ~/.claude/skills cp -r /tmp/openclaw/skills/sag ~/.claude/skills/sag
In the Claude apps, zip the folder and upload it from the Skills settings. The folder on GitHub
The instructions your agent would load
SKILL.md as published, without the frontmatter. Read it on GitHub
sag
Use sag for ElevenLabs TTS with local playback.
API key (required)
- ELEVENLABSAPIKEY (preferred)
- SAGAPIKEY also supported by the CLI
- Key file via --api-key-file, ELEVENLABSAPIKEYFILE, or SAGAPIKEYFILE
Quick start
- sag "Hello there"
- sag speak -v "Roger" "Hello"
- sag voices
- sag prompting (model-specific tips)
Model notes
- Default: eleven_v3 (expressive)
- Stable: elevenmultilingualv2
- Fast: elevenflashv2_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 not supported; use [pause], [short pause], [long pause].
- v2/v2.5: SSML supported; 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
- ELEVENLABSVOICEID or SAGVOICEID
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.mp3Voice 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)
More skills from openclaw/openclaw
- A1passwordSet up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.
- Aacp-routerRoute plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.
- Aadd-model-providerAdd and live-prove a model provider with non-interactive config one-liners, without exposing credentials.
- Aagent-transcriptRequested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.
- Aapple-notesCreate, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.
- Aapple-remindersList, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.
- Aauto-qaRun OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.
- AautoreviewStructured code review through the shared OpenClaw agent-skills installation.
- Abear-notesCreate, search, and manage Bear notes via grizzly CLI.
- Ablock-kitUse proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.
- AblogwatcherMonitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.
- AblucliBluOS CLI (blu) for discovery, playback, grouping, and volume.