Generated banner for Elevenlabs Tts
Generated logo for Elevenlabs Tts

Elevenlabs Tts

Meng ToCommunityCreated by Meng To

  • Skill
  • Tool integration
  • Automation and integrations
  • MIT
  • Low risk
  • Has scripts

From the author

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.
— the description by Meng To

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides an interface to the ElevenLabs text-to-speech service. It allows users to generate speech audio from scripts or inline text using locally defined voice profiles. The skill is designed to be non-personal, requiring users to manage their own API keys and voice configurations in external JSON files. It supports various input methods, including direct text, text files, or stdin, and provides options for overriding voice settings, models, and output formats on a per-request basis.

What it does

  • Generates speech audio from text or script files using ElevenLabs.
  • Supports local configuration files to manage voice profiles and account settings.
  • Allows for one-off overrides of voice IDs, models, and audio settings.
  • Provides a dry-run mode to inspect request payloads before execution.
  • Lists available voices from the ElevenLabs API.
  • Handles output directory management for generated audio files.

When to use it

  • When you need to convert written scripts into spoken audio.
  • When you want to automate voiceover generation using specific ElevenLabs voice profiles.
  • When you need to integrate text-to-speech capabilities into a local workflow.
  • When you want to manage multiple voice configurations outside of your main application code.

Advantages

  • Decouples sensitive configuration and API keys from the skill logic.
  • Supports flexible input sources including files and command-line arguments.
  • Enables granular control over voice settings and output formats.
  • Facilitates local management of voice profiles through JSON configuration.

Usage examples

“Generate audio for the script in script.txt using my default profile.”
The agent uses the default profile defined in your local configuration to process script.txt and saves the resulting audio file.
“Create a voiceover from the text 'Hello world' using the narrator profile.”
The agent generates an audio file from the provided text using the settings specified in the narrator profile.
“List all available ElevenLabs voices.”
The agent queries the ElevenLabs API and displays a list of available voices based on your current account configuration.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/mengto/elevenlabs-tts/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip elevenlabs-tts.zip -d .agents/skills

Documentation by Meng To

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.

Files

demo/expected-output.md

Audio handoff

  • local voice profile resolved without exposing account data

  • MP3 and WAV generated

  • duration and file type verified

  • spoken copy checked for clipping and unintended pauses

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs an API key, Needs Python

Security

What our scanner noticed· Low risk

  • Scripts that your agent may run

This skill includes scripts that your agent may run. Read them before you use it.

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Meng To
Publisher
Meng To (Community)
Source
MengTo/Skills · agent-skills/codex/elevenlabs-tts · commit 5ea1661
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Meng To.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download elevenlabs-tts.zip