
Elevenlabs Tts
- 276 installs
- 339 repo stars
- Updated August 4, 2026
- glebis/claude-skills
elevenlabs-tts is a Claude agent skill that converts scripts, UI copy, or agent responses into natural speech through ElevenLabs for developers building demos, accessibility, podcasts, or voice-enabled product flows.
About
elevenlabs-tts is a glebis/claude-skills agent skill that integrates ElevenLabs text-to-speech into software development workflows when teams need spoken audio from written content. The skill guides voice selection, script preparation, and API usage so developers turn UI strings, agent replies, demo narration, or podcast drafts into natural-sounding speech without building a custom audio pipeline from scratch. Developers reach for elevenlabs-tts when prototyping voice-enabled features, adding accessibility read-aloud behavior, generating demo audio for presentations, or piping LLM responses to audio output in agent products. It fits mobile apps, web dashboards, and AI agents that call the ElevenLabs TTS API during build and iteration. The skill emphasizes practical integration steps and content formatting so generated audio is production-ready for tests, stakeholder demos, or early voice UX validation.
- ElevenLabs API wiring
- Voice selection controls
- Batch narration generation
- Demo and accessibility audio
- Agent-spoken responses
Elevenlabs Tts by the numbers
- 276 all-time installs (skills.sh)
- Ranked #531 of 1,335 Generative Media skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/glebis/claude-skills --skill elevenlabs-ttsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 276 |
|---|---|
| repo stars | ★ 339 |
| Last updated | August 4, 2026 |
| Repository | glebis/claude-skills ↗ |
How do you add ElevenLabs text-to-speech to an app?
Convert scripts, UI copy, or agent responses into natural speech through ElevenLabs for demos, accessibility, podcasts, or voice-enabled product flows.
Who is it for?
Developers integrating ElevenLabs TTS into apps, agents, or demo content who need spoken audio from text during build.
Skip if: Video dubbing, voice conversion, or noise isolation workflows that need other ElevenLabs audio APIs instead of TTS.
When should I use this skill?
A developer asks to convert text, UI copy, or agent responses into ElevenLabs speech for demos, accessibility, or voice features.
What you get
Generated ElevenLabs speech audio files or API integration steps for scripts, UI copy, and agent responses.
- Generated speech audio or TTS integration steps
- Voice-enabled demo or accessibility audio output
Files
ElevenLabs Text-to-Speech
Overview
Generate professional audio files from text using ElevenLabs' advanced text-to-speech API. The skill provides pre-configured voice presets with sensible defaults, voice parameter customization, and direct access to the scripts/elevenlabs_tts.py script for programmatic control.
Quick Start
To generate audio from text:
1. Ensure the .env file contains a valid ELEVENLABS_API_KEY 2. Execute the script with text: python scripts/elevenlabs_tts.py "Your text here" 3. Specify voice and output: python scripts/elevenlabs_tts.py "Text" --voice adam --output audio/output.mp3
Voice Presets
Seven pre-configured voices are available. See references/api_reference.md for complete voice descriptions:
rachel(default) - Clear, professional femaleadam- Deep, authoritative malebella- Warm, friendly femaleelli- Young, enthusiastic femalejosh- Friendly, conversational malearnold- Deep, powerful maleava- Expressive, dynamic female
Parameters
Text
The text to convert to speech. Any length is supported.
Voice Selection
Specify voice using preset name (e.g., rachel, adam) or direct ElevenLabs voice ID.
Voice Parameters
- stability (0.0-1.0, default 0.5): Lower values create expressive variation; higher values ensure consistency
- similarity_boost (0.0-1.0, default 0.75): Higher values maintain closer adherence to voice characteristics
Output
Specify the output file path. Default is output.mp3. Directories are created automatically.
Usage Examples
Basic Python Usage
from scripts.elevenlabs_tts import generate_speech
path = generate_speech(
text="Hello, this is a test message",
voice_id="rachel"
)Command Line
# With default voice
python scripts/elevenlabs_tts.py "Generate this text"
# With custom voice and stability
python scripts/elevenlabs_tts.py "Different voice" --voice adam --stability 0.7
# To custom output path
python scripts/elevenlabs_tts.py "Save here" --output audio/narration.mp3
# List available voices
python scripts/elevenlabs_tts.py "" --list-voicesImplementation Notes
- The script handles API communication with error reporting
- Output directories are created automatically if they don't exist
- Returns absolute path to generated audio file
- Uses
eleven_monolingual_v1model by default (can be overridden)
Resources
scripts/elevenlabs_tts.py- Main Python script for text-to-speech generation. Can be imported as a module or executed from command line.references/api_reference.md- Detailed API documentation including voice descriptions, parameter explanations, and usage examples..envand.env.example- Environment configuration for storing API credentials securely.
{
"name": "elevenlabs-tts",
"description": "This skill converts text to high-quality audio files using ElevenLabs API. Use this skill when users request text-to-spe",
"author": {
"name": "Gleb Kalinin"
},
"repository": "https://github.com/glebis/claude-skills",
"license": "MIT"
}ELEVENLABS_API_KEY=your_api_key_here
# Environment variables
.env
.env.local
.env.*.local
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# Virtual environments
venv/
ENV/
env/
# IDE
.vscode/
.idea/
*.swp
*.swo
*~
.DS_Store
# Audio files (generated)
*.mp3
*.wav
*.m4a
/tmp/
ElevenLabs API Reference
Voice Presets
Pre-configured voices available through the skill with sensible defaults:
| Preset | Voice ID | Description |
|---|---|---|
| rachel | 21m00Tcm4TlvDq8ikWAM | Clear, professional female voice |
| adam | pNInz6obpgDQGcFmaJgB | Deep, authoritative male voice |
| bella | EXAVITQu4vr4xnSDxMaL | Warm, friendly female voice |
| elli | MF3mGyEYCHffgLcfVOJA | Young, enthusiastic female voice |
| josh | TtoZ7RTFQ8zXByXW5WwW | Friendly, conversational male voice |
| arnold | pMsXgVXv3BLzUgSXRplF | Deep, powerful male voice |
| ava | Xb7hH8MSUJpSbvtk6coT | Expressive, dynamic female voice |
Voice Parameters
stability (0.0 - 1.0)
Determines how stable/consistent the voice sounds. Default: 0.5
- Lower values (0.0-0.3): More variable, expressive
- Medium values (0.4-0.6): Balanced (recommended default)
- Higher values (0.7-1.0): Consistent, stable
similarity_boost (0.0 - 1.0)
Controls how closely the voice matches the preset. Default: 0.75
- Lower values: More variation from original
- Higher values: Closer to original voice characteristics
Models
eleven_monolingual_v1- Standard English model (default)eleven_multilingual_v1- Supports multiple languageseleven_multilingual_v2- Latest multilingual model
Usage Examples
Basic Text-to-Speech
from elevenlabs_tts import generate_speech
path = generate_speech(
text="Hello, this is a test message",
voice_id="rachel",
output_path="output.mp3"
)Custom Voice Parameters
path = generate_speech(
text="Generate this audio",
voice_id="adam",
stability=0.7,
similarity_boost=0.9,
output_path="audio/my_file.mp3"
)Using Custom Voice ID
# Use a specific 11Labs voice ID directly
path = generate_speech(
text="Custom voice audio",
voice_id="custom_voice_id_here"
)API Rate Limits
- Free tier: Limited calls per month
- Paid tier: Based on subscription level
- Monitor usage in ElevenLabs dashboard
File Output
- Default format: MP3 (.mp3)
- Files are saved to specified output_path
- Directory structure is created automatically if needed
Environment Setup
1. Create .env file in skill directory 2. Add your ElevenLabs API key:
ELEVENLABS_API_KEY=your_key_here3. Install dependencies:
pip install -r requirements.txtelevenlabs==2.23.0
python-dotenv==1.0.0
#!/usr/bin/env python3
"""
11Labs Text-to-Speech Script
Converts text to audio using ElevenLabs API
"""
import os
import sys
from pathlib import Path
from dotenv import load_dotenv
from elevenlabs.client import ElevenLabs
# Load environment variables from .env
load_dotenv()
# Default voice IDs (popular choices)
VOICE_PRESETS = {
"rachel": "21m00Tcm4TlvDq8ikWAM", # Clear, professional female
"adam": "pNInz6obpgDQGcFmaJgB", # Deep, male voice
"bella": "EXAVITQu4vr4xnSDxMaL", # Warm, female voice
"elli": "MF3mGyEYCHffgLcfVOJA", # Young, enthusiastic female
"josh": "TtoZ7RTFQ8zXByXW5WwW", # Friendly male voice
"arnold": "pMsXgVXv3BLzUgSXRplF", # Deep, powerful male
"ava": "Xb7hH8MSUJpSbvtk6coT", # Expressive female voice
}
def generate_speech(
text: str,
voice_id: str = "rachel",
model: str = "eleven_monolingual_v1",
stability: float = 0.5,
similarity_boost: float = 0.75,
output_path: str = "output.mp3",
) -> str:
"""
Generate speech from text using ElevenLabs API
Args:
text: Text to convert to speech
voice_id: Voice ID or preset name (see VOICE_PRESETS). Default: 'rachel'
model: ElevenLabs model to use. Default: 'eleven_monolingual_v1'
stability: Voice stability (0.0 - 1.0). Default: 0.5
similarity_boost: Voice similarity (0.0 - 1.0). Default: 0.75
output_path: Path to save the audio file. Default: 'output.mp3'
Returns:
Path to the generated audio file
"""
api_key = os.getenv("ELEVENLABS_API_KEY")
if not api_key:
raise ValueError("ELEVENLABS_API_KEY not found in environment variables")
# Resolve voice_id if it's a preset name
if voice_id.lower() in VOICE_PRESETS:
voice_id = VOICE_PRESETS[voice_id.lower()]
client = ElevenLabs(api_key=api_key)
# Generate audio
audio = client.text_to_speech.convert(
voice_id=voice_id,
model_id=model,
text=text,
voice_settings={
"stability": stability,
"similarity_boost": similarity_boost,
},
)
# Save to file
output_dir = Path(output_path).parent
output_dir.mkdir(parents=True, exist_ok=True)
with open(output_path, "wb") as f:
for chunk in audio:
f.write(chunk)
return str(Path(output_path).resolve())
def list_voices() -> None:
"""List available voice presets"""
print("Available voice presets:")
for name, voice_id in VOICE_PRESETS.items():
print(f" {name}: {voice_id}")
def main():
"""CLI interface for the skill"""
if len(sys.argv) < 2:
print("Usage: elevenlabs_tts.py <text> [options]")
print("\nOptions:")
print(" --voice VOICE_ID Voice ID or preset name (default: rachel)")
print(" --output FILE Output file path (default: output.mp3)")
print(" --stability FLOAT Stability value 0.0-1.0 (default: 0.5)")
print(" --similarity FLOAT Similarity boost 0.0-1.0 (default: 0.75)")
print(" --list-voices List available voice presets")
return
text = sys.argv[1]
# Parse optional arguments
voice_id = "rachel"
output_path = "output.mp3"
stability = 0.5
similarity_boost = 0.75
i = 2
while i < len(sys.argv):
if sys.argv[i] == "--voice":
voice_id = sys.argv[i + 1]
i += 2
elif sys.argv[i] == "--output":
output_path = sys.argv[i + 1]
i += 2
elif sys.argv[i] == "--stability":
stability = float(sys.argv[i + 1])
i += 2
elif sys.argv[i] == "--similarity":
similarity_boost = float(sys.argv[i + 1])
i += 2
elif sys.argv[i] == "--list-voices":
list_voices()
return
else:
i += 1
try:
path = generate_speech(
text=text,
voice_id=voice_id,
stability=stability,
similarity_boost=similarity_boost,
output_path=output_path,
)
print(f"Audio generated successfully: {path}")
except Exception as e:
print(f"Error: {e}", file=sys.stderr)
sys.exit(1)
if __name__ == "__main__":
main()
Related skills
FAQ
What can elevenlabs-tts generate from developer content?
elevenlabs-tts converts scripts, UI copy, and agent responses into natural speech through ElevenLabs. Developers use it during build for demos, accessibility read-aloud, podcasts, and voice-enabled product flows without hand-rolling a custom TTS pipeline.
When should developers use elevenlabs-tts instead of other ElevenLabs skills?
elevenlabs-tts is for text-to-speech synthesis from written content. Developers should pick dubbing, voice changer, sound effects, or voice isolator skills when the task involves translation, speech-to-speech conversion, SFX generation, or noise removal instead.