setup-api-key — Claude Code skill: ElevenLabs API configuration
A skill that checks whether an ElevenLabs API key is configured and working, then walks the user through obtaining and saving a new key if needed.
npx skills add calesthio/OpenMontage --skill setup-api-key -a claude-codeWhat setup-api-key does
The skill solves the problem of running ElevenLabs tools without a ready API key. It starts by checking: it looks for ELEVENLABS_API_KEY in environment variables or in the .env file, then validates the key with an API request. If the key exists and works, the skill reports this and stops. If the key is missing or invalid, it directs the user to the key creation page, explains how to get it, and where to copy it from.
After the user provides the key, the skill validates it again through the ElevenLabs API and saves it to .env. If the key is invalid, it asks to try again. Requires internet access to elevenlabs.io and api.elevenlabs.io. Works with all major IDEs that support skills.
What it helps with
- Check whether ElevenLabs is configured in your project
- Create a new ElevenLabs API key and save it to
.env - Validate an API key before using ElevenLabs tools
- Update or replace an expired ElevenLabs key
Example prompts for the agent
- I need to set up ElevenLabs for speech synthesis
- setup-api-key can't find my ElevenLabs key
- Help me create and save an API key for ElevenLabs
How to install setup-api-key
1Skills CLI (Vercel)
npx skills add calesthio/OpenMontage --skill setup-api-key -a claude-code2Manually: put the files in place
~/.claude/skills/setup-api-key/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/setup-api-key/
1Skills CLI (Vercel)
npx skills add calesthio/OpenMontage --skill setup-api-key -a codex2Manually: put the files in place
.agents/skills/setup-api-key/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add calesthio/OpenMontage --skill setup-api-key -a cursor2Manually: put the files in place
.cursor/skills/setup-api-key/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install calesthio/OpenMontage setup-api-key2Manually: put the files in place
.github/skills/setup-api-key/SKILL.md1Skills CLI (Vercel)
npx skills add calesthio/OpenMontage --skill setup-api-key -a gemini-cli2Platform CLI
gemini skills install https://github.com/calesthio/OpenMontage --path .claude/skills/setup-api-keyManually: put the files in place
.devin/skills/setup-api-key/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add calesthio/OpenMontage --skill setup-api-key -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set28
The whole set →Similar
Questions about setup-api-key
How do I install setup-api-key in Claude Code?
Run npx skills add calesthio/OpenMontage --skill setup-api-key -a claude-code. The skill will be saved to ~/.claude/skills/setup-api-key/SKILL.md.
What does setup-api-key do?
It checks whether an ElevenLabs API key is already configured, validates it through the API, and if no key exists or it's invalid, it guides the user through getting a new key from the ElevenLabs website and saves it to .env.
What do I need for setup-api-key to work?
You need internet access to elevenlabs.io and api.elevenlabs.io, and an ElevenLabs account (free to create). The key is saved to the .env file in your project.
Source text
SKILL.md · MIT
--- name: setup-api-key description: Guides users through setting up an ElevenLabs API key for ElevenLabs MCP tools. Use when the user needs to configure an ElevenLabs API key, when ElevenLabs tools fail due to missing API key, or when the user mentions needing access to ElevenLabs. First checks whether ELEVENLABS_API_KEY is already configured and valid, and only runs full setup when needed. license: MIT compatibility: Requires internet access to elevenlabs.io and api.elevenlabs.io. --- # ElevenLabs API Key Setup Guide the user through obtaining and configuring an ElevenLabs API key. ## Workflow ### Step 0: Check for an existing API key first Before asking the user for a key, check for an existing `ELEVENLABS_API_KEY`: 1. Check whether `ELEVENLABS_API_KEY` exists in the current environment. 2. If it's not in the environment, check `.env` for `ELEVENLABS_API_KEY=<value>`. 3. If an existing key is found, **validate it**: ``` GET https://api.elevenlabs.io/v1/user Header: xi-api-key: <existing-api-key> ``` 4. **If existing key validation succeeds:** - Tell the user ElevenLabs is already configured and working - Skip the setup flow - Ask whether they want to replace/rotate the key; if not, stop 5. **If existing key validation fails:** - Tell the user the existing key appears invalid or expired - Continue to Step 1 ### Step 1: Request the API key Tell the user: > To set up ElevenLabs, open the API keys page: https://elevenlabs.io/app/settings/api-keys > > (Need an account? Create one at https://elevenlabs.io/app/sign-up first) > > If you don't have an API key yet: > 1. Click "Create key" > 2. Name it (or use the default) > 3. Set permission for your key. If you provide a key with "User" permission set to "Read" this skill will automatically verify if your key works > 4. Click "Create key" to confirm > 5. **Copy the key immediately** - it's only shown once! > > Paste your API key here when ready. Then wait for the user's next message which should contain the API key. ### Step 2: Validate and configure Once the user provides the API key: 1. **Validate the key** by making a request: ``` GET https://api.elevenlabs.io/v1/user Header: xi-api-key: <the-api-key> ``` 2. **If validation fails:** - Tell the user the API key appears to be invalid - Ask them to try again - Remind them of the URL: https://elevenlabs.io/app/settings/api-keys - If it fails a second time, display an error and exit 3. **If validation succeeds**, save the API key in a `.env` file: ``` ELEVENLABS_API_KEY=<the-api-key> ``` - If `.env` already has `ELEVENLABS_API_KEY=...`, replace that line - Otherwise add a new line for `ELEVENLABS_API_KEY` 4. **Confirm success:** > Done! Your key is stored as an environment variable in .env > Keep the key safe! Don't share it with anyone!
© calesthio · MIT · calesthio/OpenMontage