Elevenlabs upgrade migration
Upgrade ElevenLabs SDK versions and migrate between API model generations. Use when upgrading the elevenlabs-js or elevenlabs Python SDK, migrating from v1 to v2 models, or handling deprecations across the JS package rename and model ID changes. Trigger with: "upgrade elevenlabs", "elevenlabs migration", "elevenlabs breaking changes", "update elevenlabs SDK", "migrate elevenlabs model", "eleven_v3 migration".From its SKILL.md
npx -y skills add jeremylongshore/claude-code-plugins-plus-skills --skill elevenlabs-upgrade-migrationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
7.0 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it
ElevenLabs Upgrade & Migration
Overview
Guide for upgrading the ElevenLabs SDK and migrating between model generations.
Covers the JS SDK package rename (community elevenlabs → official
@elevenlabs/elevenlabs-js), model ID changes across generations, voice-settings
evolution, and API endpoint stability.
Work the seven steps below at a high level from this file; drill into references/migration-guide.md for the full command set and per-step code, and references/examples.md for three end-to-end worked scenarios.
Authentication
All API calls authenticate with an account API key passed as the xi-api-key
header. Store it in the ELEVENLABS_API_KEY environment variable — never inline a
key in source. The SDK clients read the same value (process.env.ELEVENLABS_API_KEY
in Node, api_key=... in Python).
Prerequisites
- Current ElevenLabs SDK installed (Node or Python)
ELEVENLABS_API_KEYexported in the environment- Git for version control
- Test suite available
- Staging environment for validation
Instructions
The migration is a seven-step, branch-isolated workflow. Read package manifests and
config with Read, apply import/model changes with Edit, add new config files
(e.g. config/models.ts) with Write, and run the npm/pip/git commands via
Bash. Full commands and code for each step are in
references/migration-guide.md.
- Check current versions — inspect installed Node/Python SDK versions and list the models your account can reach.
- JS SDK package migration — uninstall the legacy community
elevenlabspackage, install@elevenlabs/elevenlabs-js, and update imports on anupgrade/elevenlabs-sdkbranch. - Model migration — map deprecated model IDs to current generations using the
migration table, and add a
selectModel()helper that falls back offeleven_v3when WebSocket streaming is required. - Voice settings migration — verify
stability,similarity_boost,style, andspeedagainst each model's capabilities. - API endpoint changes — confirm the stable
/v1/endpoints and adopt the enhanced/v2/voicessearch where useful. - Python SDK upgrade — upgrade, pin the version in
requirements.txt, and move from the old module-levelgenerate/set_api_keyAPI to the client object. - Validation — run tests plus a TTS smoke test and a voice-list check.
The essential skeleton for the highest-leverage step (the JS package swap):
npm uninstall elevenlabs
npm install @elevenlabs/elevenlabs-js
git checkout -b upgrade/elevenlabs-sdk
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
const client = new ElevenLabsClient({
apiKey: process.env.ELEVENLABS_API_KEY,
maxRetries: 3,
timeoutInSeconds: 60,
});
Model migration map
| Old Model | New Model | Migration Notes |
|---|---|---|
eleven_monolingual_v1 | eleven_multilingual_v2 | 29 languages; same voice IDs work |
eleven_multilingual_v1 | eleven_multilingual_v2 | Better emotional range; same API |
eleven_english_v1 | eleven_turbo_v2_5 | Lower latency; same voice_settings |
eleven_turbo_v2 | eleven_flash_v2_5 | Same quality, lower latency (~75ms) |
eleven_multilingual_v2 | eleven_v3 | Most expressive; 70+ languages; NO WebSocket support |
Full model-selection code, voice-settings and endpoint tables, the Python client migration, and the rollback procedure live in references/migration-guide.md.
Output
Working through this skill produces:
- An
upgrade/elevenlabs-sdkbranch with the package swap and updated imports. - Updated dependency manifests —
package.jsonon@elevenlabs/elevenlabs-js, or a pinnedelevenlabs==line inrequirements.txt. - A model-selection helper (
config/models.ts) mapping quality/balanced/speed preferences to current model IDs with a WebSocket-safe fallback. - Validation evidence: a green test run, a
200from the TTS smoke test, and a non-empty voice-list count. - A rollback path (pinned previous version or
git revert) if validation fails.
Error Handling
| Issue | Cause | Solution |
|---|---|---|
Cannot find module | Old package name | Update import to @elevenlabs/elevenlabs-js |
model_not_found | Deprecated model ID | Map to current model (see table) |
| WebSocket fails after model change | eleven_v3 doesn't support WS | Use eleven_flash_v2_5 or eleven_multilingual_v2 |
| Voice settings ignored | Wrong parameter names | Verify stability, similarity_boost, style, speed |
Examples
Three complete, copy-pasteable walkthroughs are in references/examples.md:
- Migrate a Node.js app off the legacy
elevenlabscommunity package — branch, swap the package, update the client, and validate with a smoke test. - Migrate a deprecated model with a WebSocket-safe fallback — move toward
eleven_v3while keeping streaming working via automatic downgrade. - Upgrade the Python SDK from a pre-client generation — move to the client object and pin the version for reproducible builds.
Minimal first example (the package swap and smoke test):
git checkout -b upgrade/elevenlabs-sdk
npm uninstall elevenlabs && npm install @elevenlabs/elevenlabs-js
npm test
curl -s -o /dev/null -w "%{http_code}" \
-X POST "https://api.elevenlabs.io/v1/text-to-speech/21m00Tcm4TlvDq8ikWAM" \
-H "xi-api-key: ${ELEVENLABS_API_KEY}" \
-H "Content-Type: application/json" \
-d '{"text":"Upgrade test.","model_id":"eleven_flash_v2_5"}'
Resources
- Full migration guide (references/migration-guide.md)
- Worked examples (references/examples.md)
- ElevenLabs JS SDK Releases
- ElevenLabs Python SDK Changelog
- ElevenLabs Models
- ElevenLabs Changelog
Next Steps
For CI integration during upgrades, see the elevenlabs-ci-integration skill, which
wires the smoke test and voice-list check into a pipeline gate so a bad SDK or model
bump fails the build before it ships.
What ships with it: 2 files
9.4 KB alongside SKILL.md
references/
- examples.md3.7 KB
- migration-guide.md5.7 KB