Elevenlabs

v1.3.4

Text-to-speech, sound effects, music generation, voice management, and quota checks via the ElevenLabs API. Use when generating audio with ElevenLabs or mana...

2· 3.7k·19 current·20 all-time
byOliver Drobnik@odrobnik
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description (ElevenLabs TTS, SFX, music, voice management, quota) match the code and runtime requirements. Requested binaries (python3, ffmpeg, afplay) and the Python 'requests' dependency are reasonable for generating and playing audio. Minor note: afplay is macOS-specific and used only for optional playback, but it's declared as a required binary in metadata.
Instruction Scope
SKILL.md and scripts instruct the agent to call ElevenLabs endpoints, write output audio, and optionally read voice-sample files. The scripts include explicit safeguards: safe_output_path prevents writing outside workspace or /tmp, and voiceclone restricts reading samples to a defined sample directory (or a user-specified sample-dir). The skill does not attempt to read unrelated system secrets or network endpoints outside ElevenLabs.
Install Mechanism
There is no install downloader or external archive; scripts are included in the bundle and run with python3. No remote install-from-URL or package manager downloads are present, so nothing arbitrary is fetched or executed during install.
Credentials
Only ELEVENLABS_API_KEY is required as a credential (declared as primaryEnv). The scripts may also use ELEVENLABS_DIR and may read a .env in the skill/state dir if present — both are documented in SETUP.md. No unrelated credentials or excessive environment access are requested.
Persistence & Privilege
always:false and disable-model-invocation:false (normal). The skill creates a per-skill state dir (default ~/.openclaw/elevenlabs/) for cached quota data and voice-sample storage — this is expected and documented. It does not modify other skills or system-wide agent config.
Assessment
This skill appears coherent with its stated purpose. Before installing: (1) Understand it will send your ELEVENLABS_API_KEY to api.elevenlabs.io (required for all operations). (2) Voice cloning uploads audio samples — only place samples under the documented sample directory (default ~/.openclaw/elevenlabs/voiceclone-samples) to avoid accidental exposure. (3) The skill will create ~/.openclaw/elevenlabs and may store a .env containing your API key if you place one there — if you prefer not to persist secrets to disk, keep the API key only in your shell environment. (4) afplay is optional and macOS-specific; if you’re on another OS you can ignore playback flags. If you want extra assurance, review the included Python scripts locally before running them; they are short, readable, and call only the official ElevenLabs endpoints.

Like a lobster shell, security has layers — review code before you run it.

latestvk97cxwydpb513w6t62qqpa015x827wq3

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

🔊 Clawdis
Binspython3, ffmpeg, afplay
EnvELEVENLABS_API_KEY
Primary envELEVENLABS_API_KEY

SKILL.md

ElevenLabs Skill

Core tools for interacting with the ElevenLabs API for sound generation, music, and voice management.

Setup

See SETUP.md for prerequisites and setup instructions.

Models

ModelIDUse Case
Eleven v3eleven_v3⭐ Best for expressive/creative audio. Supports audio tags (square brackets): [laughs], [sighs], [whispers], [excited], [grumpy voice], [clears throat], etc. Use for storytelling, characters, demos.
Multilingual v2eleven_multilingual_v2Stable multilingual. No audio tags. Good for straightforward narration.
Turbo v2.5eleven_turbo_v2_5Low-latency, good for non-English (German TTS). Required for realtime/conversational.
Flash v2.5eleven_flash_v2_5Fastest, lowest cost.

v3 Audio Tags (square brackets, NOT XML/SSML)

[laughs], [chuckles], [sighs], [clears throat], [whispers], [shouts]
[excited], [sad], [angry], [warmly], [deadpan], [sarcastic]
[grumpy voice], [philosophical], [whiny voice], [resigned]
[laughs hard], [sighs deeply], [pause]

Tags can be placed anywhere in text. Combine freely. v3 understands emotional context deeply.

Output Formats

All scripts support multiple output formats via --format:

FormatDescription
mp3_44100_128MP3, 44.1kHz, 128kbps (default)
mp3_44100_192MP3, 44.1kHz, 192kbps
mp3_44100_96MP3, 44.1kHz, 96kbps
mp3_44100_64MP3, 44.1kHz, 64kbps
mp3_44100_32MP3, 44.1kHz, 32kbps
mp3_24000_48MP3, 24kHz, 48kbps
mp3_22050_32MP3, 22.05kHz, 32kbps
opus_48000_192Opus, 48kHz, 192kbps ⭐ best for AirPlay
opus_48000_128Opus, 48kHz, 128kbps
opus_48000_96Opus, 48kHz, 96kbps
opus_48000_64Opus, 48kHz, 64kbps
opus_48000_32Opus, 48kHz, 32kbps
pcm_16000Raw PCM, 16kHz
pcm_22050Raw PCM, 22.05kHz
pcm_24000Raw PCM, 24kHz
alaw_8000A-law, 8kHz (telephony)

Tools

1. Speech (speech.py)

Text-to-speech using ElevenLabs voices.

# Basic usage
python3 {baseDir}/scripts/speech.py "Hello world" -v <voice_id> -o output.mp3

# With format option
python3 {baseDir}/scripts/speech.py "Hello world" -v <voice_id> -o output.pcm --format pcm_44100

# With voice settings
python3 {baseDir}/scripts/speech.py "Hello" -v <voice_id> -o out.mp3 --stability 0.7 --similarity 0.8

2. Sound Effects (sfx.py)

Generate sound effects and short audio clips.

# Generate a sound
python3 {baseDir}/scripts/sfx.py "Cinematic boom" -o boom.mp3

# Generate a loop
python3 {baseDir}/scripts/sfx.py "Lo-fi hip hop beat" --duration 10 --loop -o beat.mp3

# Different format
python3 {baseDir}/scripts/sfx.py "Whoosh" -o whoosh.pcm --format pcm_44100

3. Music Generation (music.py)

Generate full musical compositions or instrumental tracks.

# Generate instrumental intro
python3 {baseDir}/scripts/music.py --prompt "Upbeat 6s news intro sting, instrumental" --length-ms 6000 -o intro.mp3

# Generate background bed
python3 {baseDir}/scripts/music.py --prompt "Soft ambient synth pad" --length-ms 30000 -o bed.mp3

# High quality MP3
python3 {baseDir}/scripts/music.py --prompt "Jazz piano" --length-ms 10000 -o jazz.mp3 --output-format mp3_44100_192

4. Voices (voices.py)

List available voices and their IDs.

# List voices
python3 {baseDir}/scripts/voices.py

# JSON output
python3 {baseDir}/scripts/voices.py --json

5. Voice Cloning (voiceclone.py)

Create instant voice clones from audio samples.

Security: by default this script will only read files from:

  • ~/.openclaw/elevenlabs/voiceclone-samples/

Copy your samples there (or pass --sample-dir). Reading files outside the sample directory is blocked.

# Clone from audio files (put samples into ~/.openclaw/elevenlabs/voiceclone-samples)
python3 {baseDir}/scripts/voiceclone.py --name "MyVoice" --files sample1.mp3 sample2.mp3

# Use a custom sample dir
python3 {baseDir}/scripts/voiceclone.py --name "Andi" --sample-dir ./samples --files a.m4a b.m4a --language de --gender male

# With description and noise removal
python3 {baseDir}/scripts/voiceclone.py --name "Andi" --files a.m4a b.m4a --description "German male" --denoise

6. Quota & Usage (quota.py)

Check subscription quota and usage statistics.

# Show current quota
python3 {baseDir}/scripts/quota.py

# Include usage breakdown by voice
python3 {baseDir}/scripts/quota.py --usage

# Last 7 days usage
python3 {baseDir}/scripts/quota.py --usage --days 7

# JSON output
python3 {baseDir}/scripts/quota.py --json

Output:

📊 ElevenLabs Quota
=======================================
Plan:      pro (active) — annual
Characters: 66.6K / 500.0K (13.3%)
           [███░░░░░░░░░░░░░░░░░░░░░░░░░░░]
Resets:    2026-02-18 (29 days)
Voices:    22 / 160 (IVC: ✓)
Pro Voice: 0 / 1 (PVC: ✓)

Files

10 total
Select a file
Select a file to preview.

Comments

Loading comments…