Generate ElevenLabs text-to-speech audio from scripts or inline text using local voice profiles. Use when the user asks for ElevenLabs, text-to-speech, TTS, narration, voiceover, speech audio, or voice generation; load voice names, voice ids, emails, owners, and account-specific defaults only from local config outside the skill.
80
100%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Use this skill for ElevenLabs text-to-speech generation. Keep the skill reusable and non-personal:
ELEVENLABS_API_KEY from the process environment or the nearest .env.Prefer one of these config sources, in order:
--config /path/to/profiles.jsonELEVENLABS_TTS_CONFIG=/path/to/profiles.jsonlocal/elevenlabs/profiles.jsonProject-local profile files are also fine when they are gitignored, for example config/local/elevenlabs-tts.json.
The helper script expects this shape:
{
"default_profile": "default",
"profiles": {
"default": {
"voice_name": "Voice name from the local account",
"voice_id": "optional-direct-voice-id",
"voice_id_env": "OPTIONAL_ENV_VAR_WITH_VOICE_ID",
"model_id": "eleven_multilingual_v2",
"output_format": "mp3_44100_128",
"voice_settings": {
"stability": 0.5,
"similarity_boost": 1.0,
"style": 0.0,
"speed": 1.0,
"use_speaker_boost": true
},
"output_dir": "outputs/voiceovers",
"emails": []
}
}
}Fields like emails, owners, aliases, and notes are for local routing/context only. The script ignores unknown metadata fields.
--profile, ELEVENLABS_TTS_PROFILE, or default_profile.python3 <skill-root>/scripts/generate_voice.py --text-file script.txt --profile default --output output.mp3voice_id, use it. If it has voice_id_env, read that env var. Otherwise search ElevenLabs by voice_name.model_id, output_format, and voice_settings unless the user overrides them for this generation.output_dir, then outputs/voiceovers/.The bundled script supports:
--text "..." for inline text--text-file path.txt for script files--text nor --text-file is provided--profile name to select a local profile--config path.json to select a local profile file--voice-id, --voice-name, --model-id, --output-format, and --settings-json for one-off overrides--output path.mp3 to choose the output file--dry-run to print the resolved request payload without calling the text-to-speech endpoint--list-voices to list matching ElevenLabs voices without generating audioUse the current ElevenLabs endpoints:
GET https://api.elevenlabs.io/v2/voicesPOST https://api.elevenlabs.io/v1/text-to-speech/:voice_id?output_format=...Send the API key as xi-api-key.
46abf78
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.