New to Claude Skills? Learn how to install them →

mengto on GitHub

ElevenLabs TTS

Free

Generate text-to-speech audio with local voice profiles.

by mengto4.6k stars on mengto/skills
1 views
Updated Aug 9, 2026
Get this skill

Free · Opens the source repo

What ElevenLabs TTS does

The ElevenLabs TTS skill allows developers and designers to generate high-quality text-to-speech audio using ElevenLabs' API, leveraging local voice profiles for customization. This skill is designed to be reusable and non-personal, ensuring that sensitive information such as API keys and voice profiles are not stored within the skill itself. Instead, it reads necessary configurations from environment variables or local JSON files, making it straightforward to integrate into existing projects.

Users can specify various parameters for audio generation, including voice settings, output formats, and profile selections. The skill supports multiple input methods, allowing users to provide text directly, from a file, or even through standard input. This flexibility makes it suitable for a range of applications, from automated narration to voiceover work in multimedia projects.

The workflow for using this skill is clear and efficient. Users can select profiles, generate audio files, and manage output locations with ease. The bundled helper script simplifies the process, allowing for quick adjustments and testing without the need for extensive setup. Furthermore, the skill ensures that any changes made during audio generation do not affect saved settings unless explicitly requested, maintaining a clean operational environment.

This skill is ideal for developers looking to implement text-to-speech functionality in their applications or for designers needing to create voiceovers for multimedia content. Its reliance on local profiles enhances security and customization, making it a valuable tool for projects that require personalized voice generation without compromising on privacy or data integrity.

When to use it

Use this skill when you need to generate audio from text using ElevenLabs' TTS service, especially when working with local voice profiles.

When not to use it

This skill may not be suitable if you require a cloud-based solution that stores voice profiles or if you need features beyond basic TTS generation.

What you can build with it

Automated Narration for Videos

Integrate ElevenLabs TTS into your video production workflow to automatically generate narration from scripts.

Voiceover for Presentations

Use this skill to create professional voiceovers for slideshows and presentations, enhancing audience engagement.

Interactive Voice Applications

Develop interactive applications that respond with natural-sounding speech using the ElevenLabs TTS capabilities.

How to install ElevenLabs TTS

View source

1. Install with the skills CLI

npx skills add mengto/skills/elevenlabs-tts --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by mengto

ElevenLabs TTS

Use this skill for ElevenLabs text-to-speech generation. Keep the skill reusable and non-personal:

  • Do not store API keys, voice names, voice ids, emails, account names, customer names, or personal defaults in the skill.
  • Read ELEVENLABS_API_KEY from the process environment or the nearest .env.
  • Read account-specific voice profiles from local JSON config outside this skill.
  • Generate audio with request-level settings. Do not mutate saved ElevenLabs account or voice settings unless the user explicitly asks.

Local Profiles

Prefer one of these config sources, in order:

  1. --config /path/to/profiles.json
  2. ELEVENLABS_TTS_CONFIG=/path/to/profiles.json
  3. local/elevenlabs/profiles.json

Project-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.

Workflow

  1. Choose the profile from --profile, ELEVENLABS_TTS_PROFILE, or default_profile.
  2. Prefer the helper script: python3 <skill-root>/scripts/generate_voice.py --text-file script.txt --profile default --output output.mp3
  3. If the profile has voice_id, use it. If it has voice_id_env, read that env var. Otherwise search ElevenLabs by voice_name.
  4. Use profile model_id, output_format, and voice_settings unless the user overrides them for this generation.
  5. Put generated audio in the requested destination. If no destination is given, use the profile output_dir, then outputs/voiceovers/.
  6. Report the output path and any important warnings. Do not print secrets.

Helper Script

The bundled script supports:

  • --text "..." for inline text
  • --text-file path.txt for script files
  • stdin when neither --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 audio

API Notes

Use the current ElevenLabs endpoints:

  • Voice search: GET https://api.elevenlabs.io/v2/voices
  • Speech generation: POST https://api.elevenlabs.io/v1/text-to-speech/:voice_id?output_format=...

Send the API key as xi-api-key.

Frequently asked questions about ElevenLabs TTS

Similar skills