Skip to main content
skill CX Codex

elevenlabs-tts · mengto — Claude Code skill: what it does, how to install

Creates ElevenLabs speech audio from inline text or script files through local voice profiles. Use it for narration, voiceovers, and other generated speech tracks.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add MengTo/Skills --skill elevenlabs-tts -a claude-code
Open on GitHub

What elevenlabs-tts does

This skill sends text to ElevenLabs Text-to-Speech from an inline argument, a script file, or standard input. It selects a local profile, applies its voice, model, output format, and voice settings, then writes the audio to the requested path. One-off values can override the profile through script options.

Profiles live in a separate JSON file. The bundled scripts/generate_voice.py helper can use a direct voice_id, read an ID from an environment variable, or search by voice_name. It also supports --dry-run for inspecting the resolved request and --list-voices for matching voices.

You need ELEVENLABS_API_KEY in the process environment or the nearest .env, plus a local profile file outside the skill. Check that setup first, because the ElevenLabs request cannot run without the API key.

What it helps with

  • turn a script into speech audio
  • generate a voiceover from inline text
  • select a voice from a local profile
  • inspect a request without calling TTS
  • write generated audio to a chosen file

Example prompts for the agent

  • Generate a voiceover from script.txt with the default profile and save it as output.mp3.
  • Read text from stdin and create speech audio with scripts/generate_voice.py using the default profile.
  • List ElevenLabs voices matching the local setup with --list-voices.

How to install elevenlabs-tts

1Skills CLI (Vercel)

npx skills add MengTo/Skills --skill elevenlabs-tts -a claude-code

2Manually: put the files in place

~/.claude/skills/elevenlabs-tts/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/elevenlabs-tts/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about elevenlabs-tts

How do I install elevenlabs-tts in Claude Code?

Run npx skills add MengTo/Skills --skill elevenlabs-tts -a claude-code, then run npx skills add MengTo/Skills --skill elevenlabs-tts -a claude-code again. The skill file is at ~/.claude/skills/elevenlabs-tts/SKILL.md.

What does elevenlabs-tts do?

It generates ElevenLabs speech audio from inline text, script files, or stdin. The skill applies a local voice profile and writes the result to the requested destination.

What does elevenlabs-tts need to work?

Set ELEVENLABS_API_KEY in the process environment or the nearest .env, and provide a local JSON profile file. You can select that file with --config or ELEVENLABS_TTS_CONFIG.

Source text

SKILL.md · MIT
---
name: elevenlabs-tts
description: 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.
---

# 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:

```json
{
  "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`.

© MengTo · MIT · MengTo/Skills

Similar skills

Everything for AI and ML →

elevenlabs-tts by other authors comes first.

From the same set148

generate-reference-inspired-brand-worlds Generates original brand campaign worlds from visual references without copying protected signature assets. It controls visual proximity from 30% to 85%. CX Codex +1 1,300installs create-game-vfx A skill that steers an AI agent through building Three.js visual effects: attacks, impacts, status effects, telegraphs. Useful when an effect has to read in combat and hold the frame rate. CX Codex +1 1,300installs audit-reference-originality Compares a shipped site with its reference corpus and flags overlaps in copy, brands, numbers, images and code. Useful before release. CX Codex +1 1,300installs browser-video-recording Renders 60 fps 4:3 4K browser demo videos from in-app browser screenshots. Useful for Dribbble UI clips and product presentations with macOS cursor styling. CX Codex +1 1,300installs add-shader-cursor-trail Installs a WebGPU hero effect: a twinkling white halftone trail that follows the pointer, with chromatic ripples and film grain. Falls back to the static frame. CX Codex +1 1,300installs shaders-cursor-ripples Adds interactive WebGPU fluid distortion over existing images using the Shaders library. Useful when replacing old CSS spotlight reveals without altering layout. CX Codex +1 1,400installs threejs-towers Builds pagodas, castles and domes from parameters instead of mesh files, then films the structure assembling from the ground up. CX Codex +1 1,200installs build-rigged-game-assets A skill that walks a rigged character or monster from source model to gameplay: skeleton, animation library, sockets, equipment, catalog card. CX Codex +1 1,200installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor