ワンクリックで
sag
ElevenLabs text-to-speech with mac-style say UX.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
ElevenLabs text-to-speech with mac-style say UX.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Run Claude Code (preferred), Codex CLI, OpenCode, or Pi Coding Agent via background process for programmatic control.
Reorder Foodora orders + track ETA/status with ordercli. Never confirm without explicit user approval. Triggers: order food, reorder, track ETA.
Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).
Edit PDFs with natural-language instructions using the nano-pdf CLI.
Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.
Transcribe audio via OpenAI Audio Transcriptions API (Whisper).
| name | sag |
| description | ElevenLabs text-to-speech with mac-style say UX. |
| homepage | https://sag.sh |
| metadata | {"crocbot":{"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)"}]}} |
Use sag for ElevenLabs TTS with local playback.
API key (required)
ELEVENLABS_API_KEY (preferred)SAG_API_KEY also supported by the CLIQuick start
sag "Hello there"sag speak -v "Roger" "Hello"sag voicessag prompting (model-specific tips)Model notes
eleven_v3 (expressive)eleven_multilingual_v2eleven_flash_v2_5Pronunciation + delivery rules
--normalize auto (or off if it harms names).--lang en|de|fr|... to guide normalization.<break> not supported; use [pause], [short pause], [long pause].<break time="1.5s" /> supported; <phoneme> not exposed in sag.Audio Tags are inline directives in square brackets [] that add emotional nuance, tone shifts, non-verbal sounds, and effects to generated speech. Place them anywhere in the text—before, after, or mid-sentence.
Syntax:
[nervous][whispers] for layered effects[/tag] existsTag Categories:
| Category | Examples |
|---|---|
| Emotions | [happy], [sad], [angry], [curious], [sarcastic], [excited], [nervous] |
| Delivery | [whispers], [shouts], [sings], [strong French accent] |
| Non-verbal | [laughs], [sighs], [clears throat], [breathing heavily], [exhales] |
| Pacing | [pause], [short pause], [long pause] |
| Effects | [gunshot], [applause], [explosion] (experimental) |
Examples:
sag "[whispers] This is secret... [excited] But it works!"
sag "[nervous][whispers] I'm not sure about this. [pause] Ok, let's do it."
sag "[sarcastic] Oh wow, that's SO impressive. [laughs]"
Notes:
<break> tags; use [pause] insteadVoice defaults
ELEVENLABS_VOICE_ID or SAG_VOICE_IDConfirm voice + speaker before long output.
NOTE: sag skill vs Auto-TTS This skill is for AGENT-INVOKED voice generation (when the AI explicitly runs
sag). This is SEPARATE from the built-in Auto-TTS system (messages.tts.autoin config).
- sag skill: AI explicitly generates voice via
sagCLI command- Auto-TTS: Automatic voice conversion of all replies (see
src/tts/tts.ts) Both should use the same voice ID for consistency.
When the user asks for a "voice" reply (e.g., "crazy scientist voice", "explain in voice"), generate audio and send it:
# Generate audio file (use voice ID directly for consistency with auto-TTS)
sag --voice-id ZD29qZCdYhhdqzBLRKNH -o /tmp/voice-reply.mp3 "Your message here"
# Then include in reply:
# MEDIA:/tmp/voice-reply.mp3
Voice character tips:
[excited] tags, dramatic pauses [short pause], vary intensity[whispers] or slower pacing[sings] or [shouts] sparinglyDefault voice: ZD29qZCdYhhdqzBLRKNH ("Female Humanoid - Futuristic")
https://elevenlabs.io/app/voice-library?voiceId=ZD29qZCdYhhdqzBLRKNH