Skip to content
Back to skills

Elevenlabs

ASecurity

ElevenLabs: check subscription usage, list voices, and generate text-to-speech audio. TTS spends quota and needs --confirm. Trigger phrases: elevenlabs, eleven labs, voice api, tts, text to speech.

  • 18 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 25, 2026
securitygobashapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 25, 2026

npx -y skills add gabrielmoreira/agent-skills-mirror --skill elevenlabs --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Elevenlabs?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Elevenlabs
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gabrielmoreira-elevenlabs/badge)](https://www.skillsdirectory.com/skills/gabrielmoreira-elevenlabs)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: "elevenlabs"
description: "ElevenLabs: check subscription usage, list voices, and generate text-to-speech audio. TTS spends quota and needs --confirm. Trigger phrases: elevenlabs, eleven labs, voice api, tts, text to speech."
metadata: { "includeInPrompt": true }
tagline: "Check ElevenLabs subscription usage, list voices, and generate text-to-speech audio (TTS needs --confirm, spends characters)."
catalog_auth: "ElevenLabs API key (per-user, elevenlabs.io/app/settings/api-keys)"
catalog_hosts: ["api.elevenlabs.io"]
---

# ElevenLabs

## Purpose
Work with the user's ElevenLabs account: subscription tier and character usage (`me`), the voices available on the account (`voices`), and text-to-speech generation (`text-to-speech`). TTS consumes characters from the account quota (real money on paid plans): it requires the exact-match `--confirm` string on every generation, stating the voice and character count.

## Tooling
All commands go through `bin/elevenlabs.py`:

```bash
bin/elevenlabs.py me        # subscription tier, character_count, character_limit
bin/elevenlabs.py voices    # available voices (name, category)

# TTS: every generation requires the exact --confirm string the CLI prints
bin/elevenlabs.py text-to-speech --text "Hello there" --voice-name Rachel --out /tmp/line.mp3
bin/elevenlabs.py text-to-speech --text "Hello there" --voice-id VOICE_ID --out /tmp/line.mp3
bin/elevenlabs.py text-to-speech --text "Hello" --voice-name Rachel --out /tmp/line.mp3 --voice-settings '{"stability":0.5,"similarity_boost":0.75}'
```

`--voice-id` wins over `--voice-name`. Audio saves to `--out` (MP3). Default model is `eleven_multilingual_v2`.

## Auth
- Provider id: `elevenlabs` (credential is collected as `custom.elevenlabs`)
- Collection: API key via the secure credential flow (`credentials.request_api_access`): create one at elevenlabs.io/app/settings/api-keys
- Connect placement: `custom_header:xi-api-key` (ElevenLabs uses `xi-api-key`, not `Authorization: Bearer`)
- Allowed hosts: `api.elevenlabs.io`
- Status check: `bin/elevenlabs.py me` (a successful response proves the key works)

## Operating Rules
1. COST WARNING: `text-to-speech` spends characters from the account quota, which costs real money on paid plans. Check `me` first to confirm headroom, and confirm with the user before every generation, stating the voice and character count. Every generation requires the exact-match `--confirm` string the CLI prints; never skip it.
2. The `me` and `voices` reads are free and need no confirmation.
3. Never exfiltrate the credential: the CLI only ever handles surrogates (see `bin/elevenlabs.py`). Do not print, log, or transmit the key value.

## Files
- SKILL.md
- bin/elevenlabs.py

## Maturity
🧪 Draft: written from ElevenLabs' public API docs; not yet live-tested end-to-end. The `text-to-speech` endpoint path and body are doc-built only and have never been run against a real account.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…