[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openclaw-openclaw-skills-sag":3},{"error":4,"detail":5,"metadata":23,"markdownContent":25,"rawMarkdown":20},false,{"repo_full_name":6,"owner":7,"repo_name":7,"repo_forks":8,"skill_path":9,"repo_stars":10,"name":11,"category_id":12,"description":13,"file_tree":14,"skill_md_content":20,"skill_id":21,"skill_key":22},"openclaw/openclaw","openclaw",62334,"skills/sag",323454,"sag",17,"ElevenLabs text-to-speech with mac-style say UX.",[15],{"name":16,"path":17,"size":18,"type":19},"SKILL.md","skills/sag/SKILL.md",2297,"file","---\nname: sag\ndescription: ElevenLabs text-to-speech with mac-style say UX.\nhomepage: https://sag.sh\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🔊\",\n        \"requires\": { \"bins\": [\"sag\"], \"env\": [\"ELEVENLABS_API_KEY\"] },\n        \"primaryEnv\": \"ELEVENLABS_API_KEY\",\n        \"install\":\n          [\n            {\n              \"id\": \"brew\",\n              \"kind\": \"brew\",\n              \"formula\": \"steipete/tap/sag\",\n              \"bins\": [\"sag\"],\n              \"label\": \"Install sag (brew)\",\n            },\n          ],\n      },\n  }\n---\n\n# sag\n\nUse `sag` for ElevenLabs TTS with local playback.\n\nAPI key (required)\n\n- `ELEVENLABS_API_KEY` (preferred)\n- `SAG_API_KEY` also supported by the CLI\n\nQuick start\n\n- `sag \"Hello there\"`\n- `sag speak -v \"Roger\" \"Hello\"`\n- `sag voices`\n- `sag prompting` (model-specific tips)\n\nModel notes\n\n- Default: `eleven_v3` (expressive)\n- Stable: `eleven_multilingual_v2`\n- Fast: `eleven_flash_v2_5`\n\nPronunciation + delivery rules\n\n- First fix: respell (e.g. \"key-note\"), add hyphens, adjust casing.\n- Numbers/units/URLs: `--normalize auto` (or `off` if it harms names).\n- Language bias: `--lang en|de|fr|...` to guide normalization.\n- v3: SSML `\u003Cbreak>` not supported; use `[pause]`, `[short pause]`, `[long pause]`.\n- v2/v2.5: SSML `\u003Cbreak time=\"1.5s\" />` supported; `\u003Cphoneme>` not exposed in `sag`.\n\nv3 audio tags (put at the entrance of a line)\n\n- `[whispers]`, `[shouts]`, `[sings]`\n- `[laughs]`, `[starts laughing]`, `[sighs]`, `[exhales]`\n- `[sarcastic]`, `[curious]`, `[excited]`, `[crying]`, `[mischievously]`\n- Example: `sag \"[whispers] keep this quiet. [short pause] ok?\"`\n\nVoice defaults\n\n- `ELEVENLABS_VOICE_ID` or `SAG_VOICE_ID`\n\nConfirm voice + speaker before long output.\n\n## Chat voice responses\n\nWhen Peter asks for a \"voice\" reply (e.g., \"crazy scientist voice\", \"explain in voice\"), generate audio and send it:\n\n```bash\n# Generate audio file\nsag -v Clawd -o /tmp/voice-reply.mp3 \"Your message here\"\n\n# Then include in reply:\n# MEDIA:/tmp/voice-reply.mp3\n```\n\nVoice character tips:\n\n- Crazy scientist: Use `[excited]` tags, dramatic pauses `[short pause]`, vary intensity\n- Calm: Use `[whispers]` or slower pacing\n- Dramatic: Use `[sings]` or `[shouts]` sparingly\n\nDefault voice for Clawd: `lj2rcrvANS3gaWWnczSX` (or just `-v Clawd`)\n","8196cc73-9043-5f60-855a-b7a5eefe12cd","openclaw-openclaw-skills-sag",{"name":11,"description":13,"homepage":24},"https://sag.sh","\u003Ch1>sag\u003C/h1>\n\u003Cp>Use \u003Ccode>sag\u003C/code> for ElevenLabs TTS with local playback.\u003C/p>\n\u003Cp>API key (required)\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>ELEVENLABS_API_KEY\u003C/code> (preferred)\u003C/li>\n\u003Cli>\u003Ccode>SAG_API_KEY\u003C/code> also supported by the CLI\u003C/li>\n\u003C/ul>\n\u003Cp>Quick start\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>sag &quot;Hello there&quot;\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>sag speak -v &quot;Roger&quot; &quot;Hello&quot;\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>sag voices\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>sag prompting\u003C/code> (model-specific tips)\u003C/li>\n\u003C/ul>\n\u003Cp>Model notes\u003C/p>\n\u003Cul>\n\u003Cli>Default: \u003Ccode>eleven_v3\u003C/code> (expressive)\u003C/li>\n\u003Cli>Stable: \u003Ccode>eleven_multilingual_v2\u003C/code>\u003C/li>\n\u003Cli>Fast: \u003Ccode>eleven_flash_v2_5\u003C/code>\u003C/li>\n\u003C/ul>\n\u003Cp>Pronunciation + delivery rules\u003C/p>\n\u003Cul>\n\u003Cli>First fix: respell (e.g. &quot;key-note&quot;), add hyphens, adjust casing.\u003C/li>\n\u003Cli>Numbers/units/URLs: \u003Ccode>--normalize auto\u003C/code> (or \u003Ccode>off\u003C/code> if it harms names).\u003C/li>\n\u003Cli>Language bias: \u003Ccode>--lang en|de|fr|...\u003C/code> to guide normalization.\u003C/li>\n\u003Cli>v3: SSML \u003Ccode>&lt;break&gt;\u003C/code> not supported; use \u003Ccode>[pause]\u003C/code>, \u003Ccode>[short pause]\u003C/code>, \u003Ccode>[long pause]\u003C/code>.\u003C/li>\n\u003Cli>v2/v2.5: SSML \u003Ccode>&lt;break time=&quot;1.5s&quot; /&gt;\u003C/code> supported; \u003Ccode>&lt;phoneme&gt;\u003C/code> not exposed in \u003Ccode>sag\u003C/code>.\u003C/li>\n\u003C/ul>\n\u003Cp>v3 audio tags (put at the entrance of a line)\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>[whispers]\u003C/code>, \u003Ccode>[shouts]\u003C/code>, \u003Ccode>[sings]\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>[laughs]\u003C/code>, \u003Ccode>[starts laughing]\u003C/code>, \u003Ccode>[sighs]\u003C/code>, \u003Ccode>[exhales]\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>[sarcastic]\u003C/code>, \u003Ccode>[curious]\u003C/code>, \u003Ccode>[excited]\u003C/code>, \u003Ccode>[crying]\u003C/code>, \u003Ccode>[mischievously]\u003C/code>\u003C/li>\n\u003Cli>Example: \u003Ccode>sag &quot;[whispers] keep this quiet. [short pause] ok?&quot;\u003C/code>\u003C/li>\n\u003C/ul>\n\u003Cp>Voice defaults\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>ELEVENLABS_VOICE_ID\u003C/code> or \u003Ccode>SAG_VOICE_ID\u003C/code>\u003C/li>\n\u003C/ul>\n\u003Cp>Confirm voice + speaker before long output.\u003C/p>\n\u003Ch2>Chat voice responses\u003C/h2>\n\u003Cp>When Peter asks for a &quot;voice&quot; reply (e.g., &quot;crazy scientist voice&quot;, &quot;explain in voice&quot;), generate audio and send it:\u003C/p>\n\u003Cdiv class=\"md-code-block\">\u003Cdiv class=\"md-code-lang\">bash\u003C/div>\u003Cpre>\u003Ccode class=\"hljs language-bash\">\u003Cspan class=\"hljs-comment\"># Generate audio file\u003C/span>\nsag -v Clawd -o /tmp/voice-reply.mp3 \u003Cspan class=\"hljs-string\">&quot;Your message here&quot;\u003C/span>\n\n\u003Cspan class=\"hljs-comment\"># Then include in reply:\u003C/span>\n\u003Cspan class=\"hljs-comment\"># MEDIA:/tmp/voice-reply.mp3\u003C/span>\u003C/code>\u003C/pre>\u003C/div>\u003Cp>Voice character tips:\u003C/p>\n\u003Cul>\n\u003Cli>Crazy scientist: Use \u003Ccode>[excited]\u003C/code> tags, dramatic pauses \u003Ccode>[short pause]\u003C/code>, vary intensity\u003C/li>\n\u003Cli>Calm: Use \u003Ccode>[whispers]\u003C/code> or slower pacing\u003C/li>\n\u003Cli>Dramatic: Use \u003Ccode>[sings]\u003C/code> or \u003Ccode>[shouts]\u003C/code> sparingly\u003C/li>\n\u003C/ul>\n\u003Cp>Default voice for Clawd: \u003Ccode>lj2rcrvANS3gaWWnczSX\u003C/code> (or just \u003Ccode>-v Clawd\u003C/code>)\u003C/p>\n"]