/elevenlabs-transcribe
Transcribes audio/video files using ElevenLabs Scribe v2 API. Use when transcribing audio files, generating transcripts, or converting speech to text.
$ npx -y skills add qdhenry/Claude-Command-Suite --skill elevenlabs-transcribe --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/elevenlabs-transcribe
Context preview
The summary Claude sees to decide when to auto-load this skill.
Transcribes audio/video files using ElevenLabs Scribe v2 API. Use when transcribing audio files, generating transcripts, or converting speech to text.
SKILL.md
elevenlabs-transcribe.SKILL.mdname: elevenlabs-transcribe
description: Transcribes audio/video files using ElevenLabs Scribe v2 API. Use when transcribing audio files, generating transcripts, or converting speech to text.
argument-hint: <audio-file> [--output transcript.txt] [--language eng] [--num-speakers 2] [--keyterms "term1" "term2"]
<objective> Transcribe audio or video files using the ElevenLabs Speech-to-Text API (Scribe v2). Accepts a file path and optional parameters, reads the API key from the project's .env file, and returns a formatted transcription with speaker diarization and audio event tagging. </objective>
<quick_start> **Via slash command:** `/elevenlabs-transcribe path/to/audio.mp3` `/elevenlabs-transcribe path/to/audio.mp3 --output transcript.txt --num-speakers 3`
**Requirements:**
- `ELEVENLABS_API_KEY` in the project's `.env` file
- `uv` installed (dependencies auto-install via PEP 723)
</quick_start>
<prerequisites> Before transcribing, verify:
1. **`uv` is available** (dependency installation is automatic via inline script metadata — no venv or manual pip install needed)
2. **API key configured** in the `.env` file where Claude is running:
ELEVENLABS_API_KEY=your-key-here
3. **Audio file exists** and is a supported format (mp3, wav, mp4, m4a, ogg, flac, webm, etc.)
**MUST** stop if the API key is missing — inform the user to add it to their `.env` file. </prerequisites>
<process>
**Step 1: Parse user input**
Extract the audio file path and any options from `$ARGUMENTS` or the user's message. Supported options:
- `--output <path>` or `-o <path>` — where to save the transcript
- `--language <code>` — ISO-639 language code (e.g., eng, spa, fra, deu, jpn, zho)
- `--num-speakers <n>` — max speakers in the audio (1-32)
- `--keyterms "term1" "term2"` — words/phrases to bias transcription towards
- `--timestamps none|word|character` — timestamp granularity
- `--no-diarize` — disable speaker identification
- `--no-audio-events` — disable audio event tagging
- `--json` — output full JSON response
**Step 2: Validate the audio file**
Confirm the file path exists. Expand `~` paths. The script handles validation automatically but check early for a clear error message.
**Step 3: Check for API key**
grep -q "ELEVENLABS_API_KEY=" .env 2>/dev/null && echo "API key configured" || echo "API key missing"
If missing, tell the user to add `ELEVENLABS_API_KEY=` to their `.env` file and **stop**.
**Step 4: Run transcription**
Dependencies are installed automatically by `uv` via inline script metadata (PEP 723). No venv or manual pip install needed.
Basic transcription (diarize + audio events + auto language):
uv run ~/.claude/skills/elevenlabs-transcribe/scripts/transcribe.py "<audio_file_path>"
With output file and options:
uv run ~/.claude/skills/elevenlabs-transcribe/scripts/transcribe.py "<audio_file_path>" --output transcript.txt --language eng --num-speakers 3
With key terms for better accuracy:
uv run ~/.claude/skills/elevenlabs-transcribe/scripts/transcribe.py "<audio_file_path>" --keyterms "technical term" "product name"
Full JSON response:
uv run ~/.claude/skills/elevenlabs-transcribe/scripts/transcribe.py "<audio_file_path>" --json --output result.json
**Step 5: Present results**
Format the transcription output cleanly for the user. If diarization is enabled, group text by speaker. Highlight any audio events detected. Example output:
[Speaker 0]: Hello, how are you doing today?
[Speaker 1]: I'm doing great, thanks for asking! (laughter)
</process>
<script_options> | Flag | Description | Default | |------|-------------|---------| | `<file>` | Path to audio/video file (required) | - | | `--output <path>`, `-o` | Save transcription to file | stdout | | `--language <code>` | ISO-639 code (eng, spa, fra, deu, jpn, zho) | auto-detect | | `--num-speakers <n>` | Max speakers in audio (1-32) | auto-detect | | `--keyterms "t1" "t2"` | Terms to bias transcription towards (max 100) | none | | `--timestamps <level>` | Granularity: none, word, character | word | | `--no-diarize` | Disable speaker identification | diarize enabled | | `--no-audio-events` | Disable audio event tagging | events enabled | | `--json` | Output full JSON response | formatted text | </script_options>
<supported_formats> All major audio and video formats: mp3, wav, mp4, m4a, ogg, flac, webm, aac, wma, mov, avi, mkv, and more. Maximum file size: 3GB. </supported_formats>
<api_details>
- **Endpoint:** POST /v1/speech-to-text
- **Model:** scribe_v2 (latest, most accurate)
- **Diarization:** Identifies and labels different speakers (up to 32)
- **Audio events:** Tags non-speech sounds like (laughter), (applause), (music)
- **Language:** Auto-detected or specified via ISO-639 code
- **Timestamps:** none, word-level, or character-level granularity
- **Key terms:** Bias transcription towards specific words/phrases for better accuracy
</api_details>
<error_handling> | Error | Resolution | |-------|------------| | `ELEVENLABS_API_KEY not found` | Add key to `.env` file in current directory | | `uv: command not found` | Install uv: `curl -LsSf https://astral.sh/uv/install.sh` pipe to `sh` | | `File not found` | Verify the file path and expand any `~` | | `422 Validation Error` | Check file format/size, ensure model_id is valid | | `401 Unauthorized` | API key is invalid or expired | </error_handling>
<success_criteria>
- Audio file exists and is accessible
- API key loaded from `.env` without exposure in chat
- Transcription completed successfully
- Output formatted with speaker labels (if diarized)
- Audio events shown inline (if enabled)
- If `--output` specified, file written to requested path
- User can see the full transcription text
</success_criteria>
Read more
name: elevenlabs-transcribe description: Transcribes audio/video files using ElevenLabs Scribe v2 API. Use when transcribing audio files, generating transcripts, or converting speech to text. argument-hint: <audio-file> [--output transcript.txt] [--language eng] [--num-speakers 2] [--keyterms "term1" "term2"]
<objective> Transcribe audio or video files using the ElevenLabs Speech-to-Text API (Scribe v2). Accepts a file path and optional parameters, reads the API key from the project's .env file, and returns a formatted transcription with speaker diarization and audio event tagging. </objective>
<quick_start> **Via slash command:** `/elevenlabs-transcribe path/to/audio.mp3` `/elevenlabs-transcribe path/to/audio.mp3 --output transcript.txt --num-speakers 3`
**Requirements:**
- `ELEVENLABS_API_KEY` in the project's `.env` file
- `uv` installed (dependencies auto-install via PEP 723)
</quick_start>
<prerequisites> Before transcribing, verify:
1. **`uv` is available** (dependency installation is automatic via inline script metadata — no venv or manual pip install needed)
2. **API key configured** in the `.env` file where Claude is running:
ELEVENLABS_API_KEY=your-key-here
3. **Audio file exists** and is a supported format (mp3, wav, mp4, m4a, ogg, flac, webm, etc.)
**MUST** stop if the API key is missing — inform the user to add it to their `.env` file. </prerequisites>
<process>
**Step 1: Parse user input**
Extract the audio file path and any options from `$ARGUMENTS` or the user's message. Supported options:
- `--output <path>` or `-o <path>` — where to save the transcript
- `--language <code>` — ISO-639 language code (e.g., eng, spa, fra, deu, jpn, zho)
- `--num-speakers <n>` — max speakers in the audio (1-32)
- `--keyterms "term1" "term2"` — words/phrases to bias transcription towards
- `--timestamps none|word|character` — timestamp granularity
- `--no-diarize` — disable speaker identification
- `--no-audio-events` — disable audio event tagging
- `--json` — output full JSON response
**Step 2: Validate the audio file**
Confirm the file path exists. Expand `~` paths. The script handles validation automatically but check early for a clear error message.
**Step 3: Check for API key**
grep -q "ELEVENLABS_API_KEY=" .env 2>/dev/null && echo "API key configured" || echo "API key missing"
If missing, tell the user to add `ELEVENLABS_API_KEY=` to their `.env` file and **stop**.
**Step 4: Run transcription**
Dependencies are installed automatically by `uv` via inline script metadata (PEP 723). No venv or manual pip install needed.
Basic transcription (diarize + audio events + auto language):
uv run ~/.claude/skills/elevenlabs-transcribe/scripts/transcribe.py "<audio_file_path>"
With output file and options:
uv run ~/.claude/skills/elevenlabs-transcribe/scripts/transcribe.py "<audio_file_path>" --output transcript.txt --language eng --num-speakers 3
With key terms for better accuracy:
uv run ~/.claude/skills/elevenlabs-transcribe/scripts/transcribe.py "<audio_file_path>" --keyterms "technical term" "product name"
Full JSON response:
uv run ~/.claude/skills/elevenlabs-transcribe/scripts/transcribe.py "<audio_file_path>" --json --output result.json
**Step 5: Present results**
Format the transcription output cleanly for the user. If diarization is enabled, group text by speaker. Highlight any audio events detected. Example output:
[Speaker 0]: Hello, how are you doing today? [Speaker 1]: I'm doing great, thanks for asking! (laughter)
</process>
<script_options> | Flag | Description | Default | |------|-------------|---------| | `<file>` | Path to audio/video file (required) | - | | `--output <path>`, `-o` | Save transcription to file | stdout | | `--language <code>` | ISO-639 code (eng, spa, fra, deu, jpn, zho) | auto-detect | | `--num-speakers <n>` | Max speakers in audio (1-32) | auto-detect | | `--keyterms "t1" "t2"` | Terms to bias transcription towards (max 100) | none | | `--timestamps <level>` | Granularity: none, word, character | word | | `--no-diarize` | Disable speaker identification | diarize enabled | | `--no-audio-events` | Disable audio event tagging | events enabled | | `--json` | Output full JSON response | formatted text | </script_options>
<supported_formats> All major audio and video formats: mp3, wav, mp4, m4a, ogg, flac, webm, aac, wma, mov, avi, mkv, and more. Maximum file size: 3GB. </supported_formats>
<api_details>
- **Endpoint:** POST /v1/speech-to-text
- **Model:** scribe_v2 (latest, most accurate)
- **Diarization:** Identifies and labels different speakers (up to 32)
- **Audio events:** Tags non-speech sounds like (laughter), (applause), (music)
- **Language:** Auto-detected or specified via ISO-639 code
- **Timestamps:** none, word-level, or character-level granularity
- **Key terms:** Bias transcription towards specific words/phrases for better accuracy
</api_details>
<error_handling> | Error | Resolution | |-------|------------| | `ELEVENLABS_API_KEY not found` | Add key to `.env` file in current directory | | `uv: command not found` | Install uv: `curl -LsSf https://astral.sh/uv/install.sh` pipe to `sh` | | `File not found` | Verify the file path and expand any `~` | | `422 Validation Error` | Check file format/size, ensure model_id is valid | | `401 Unauthorized` | API key is invalid or expired | </error_handling>
<success_criteria>
- Audio file exists and is accessible
- API key loaded from `.env` without exposure in chat
- Transcription completed successfully
- Output formatted with speaker labels (if diarized)
- Audio events shown inline (if enabled)
- If `--output` specified, file written to requested path
- User can see the full transcription text
</success_criteria>
A comprehensive development toolkit designed following Anthropic's Claude Code Best Practices for AI-assisted software development.
Repo: qdhenry/Claude-Command-Suite
Other skills on claude-command-suite.
- /audit-env-variables
Analyze environment variables in JavaScript/TypeScript projects. Identifies unused variables, infers permission scopes, detects specific services (Stripe, AWS, Supabase), and documents code paths. Includes optional cleanup of unused variables with regression detection. Use when
Open skill - /bigcommerce-api
BigCommerce API expert for building integrations, apps, headless storefronts, and automations. Full lifecycle - REST APIs, GraphQL Storefront, webhooks, authentication, app development, and multi-storefront. Use when working with BigCommerce platform APIs.
Open skill - /cloudflare-manager
Comprehensive Cloudflare account management for deploying Workers, KV Storage, R2, Pages, DNS, and Routes. Use when deploying cloudflare services, managing worker containers, configuring KV/R2 storage, or setting up DNS/routing. Requires CLOUDFLARE_API_KEY in .env and Bun
Open skill - /extract-video-frames
Extracts frames and timestamped audio segments from video files (GIF, MP4, MOV) at configurable intervals and stores them in a directory with a manifest file. Use when analyzing video content, preparing frames for visual review, extracting audio for transcription, or creating
Open skill - /file-watcher
Chokidar-based file watcher that triggers `claude -p` on changes. Useful for automated AI reactions to file changes — design sync, code validation, config regeneration, etc.
Open skill - /gsap-animation
1. [Installation & TypeScript Setup](#installation--typescript-setup) 2. [Core Concepts](#core-concepts) 3. [Tweens](#tweens) 4. [Timelines](#timelines) 5. [Easing](#easing) 6. [Staggers](#staggers) 7. [Control Methods](#control-methods) 8. [Utility Methods](#utility-methods) 9.
Open skill

