From elevenlabs-pack
Installs ElevenLabs TTS SDK and configures API key authentication for Node.js or Python, with client init and verification code.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin elevenlabs-packThis skill is limited to using the following tools:
Set up the ElevenLabs SDK and configure API key authentication. ElevenLabs uses a single API key (`xi-api-key` header) for all endpoints at `api.elevenlabs.io`.
Applies production-ready ElevenLabs SDK patterns for TypeScript and Python, including singleton clients, type-safe TTS with voice presets, retries, and error handling for audio AI integrations.
Build and troubleshoot ElevenLabs TTS integrations in Node/Python/web apps: auth, voice/model selection, streaming vs batch generation, latency, fallbacks, secure API keys.
Installs Deepgram SDK and configures API key authentication for Node.js/TypeScript and Python. Includes client init code and verification for speech-to-text/TTS integrations.
Share bugs, ideas, or general feedback.
Set up the ElevenLabs SDK and configure API key authentication. ElevenLabs uses a single API key (xi-api-key header) for all endpoints at api.elevenlabs.io.
Node.js (official package: @elevenlabs/elevenlabs-js):
npm install @elevenlabs/elevenlabs-js
# or
pnpm add @elevenlabs/elevenlabs-js
Python (official package: elevenlabs):
pip install elevenlabs
# Set environment variable (all SDKs auto-detect this)
export ELEVENLABS_API_KEY="sk_your_key_here"
# Or create .env file
echo 'ELEVENLABS_API_KEY=sk_your_key_here' >> .env
Add to .gitignore:
.env
.env.local
.env.*.local
TypeScript:
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
const client = new ElevenLabsClient({
apiKey: process.env.ELEVENLABS_API_KEY,
// Optional: configure retries (default: 2)
maxRetries: 3,
// Optional: configure timeout in seconds
timeoutInSeconds: 30,
});
Python:
import os
from elevenlabs.client import ElevenLabsClient
client = ElevenLabsClient(
api_key=os.environ.get("ELEVENLABS_API_KEY")
)
TypeScript:
async function verifyConnection() {
// List available voices to confirm auth works
const voices = await client.voices.getAll();
console.log(`Connected. ${voices.voices.length} voices available.`);
// Check subscription/quota
const user = await client.user.get();
console.log(`Plan: ${user.subscription.tier}`);
console.log(`Characters used: ${user.subscription.character_count}/${user.subscription.character_limit}`);
}
verifyConnection().catch(console.error);
Python:
def verify_connection():
voices = client.voices.get_all()
print(f"Connected. {len(voices.voices)} voices available.")
user = client.user.get()
print(f"Plan: {user.subscription.tier}")
print(f"Characters used: {user.subscription.character_count}/{user.subscription.character_limit}")
verify_connection()
cURL (raw API):
curl -s https://api.elevenlabs.io/v1/user \
-H "xi-api-key: ${ELEVENLABS_API_KEY}" | jq '.subscription.tier'
node_modules or site-packages.env (git-ignored)| Error | HTTP | Cause | Solution |
|---|---|---|---|
invalid_api_key | 401 | Key missing, expired, or malformed | Regenerate at elevenlabs.io > Profile > API Keys |
ENOTFOUND api.elevenlabs.io | N/A | DNS/network failure | Check internet; ensure outbound HTTPS on port 443 |
MODULE_NOT_FOUND | N/A | SDK not installed | Run npm install @elevenlabs/elevenlabs-js |
quota_exceeded | 401 | Character limit reached for billing period | Upgrade plan or wait for reset |
xi-api-key header is used for REST calls; SDKs handle this automaticallyAfter auth is confirmed, proceed to elevenlabs-hello-world for your first text-to-speech generation.