coco-research/openai-whisper
Speech-to-text transcription via OpenAI Whisper. Supports two modes — Local CLI (no API key, runs on-device) and Cloud API (fast, scalable, requires OPENAI_API_KEY). Use when the user needs to transcribe audio files, translate speech, or convert audio to text.
npx skills add https://github.com/coco-research/coco --skill openai-whisper
Transcribe audio files using OpenAI's Whisper model. Two modes available depending on your needs:
| Mode | Latency | Cost | Privacy | Setup |
|------|---------|------|---------|-------|
| Local CLI | Slower (on-device GPU/CPU) | Free | Audio never leaves machine | Install whisper binary |
| Cloud API | Fast | Per-minute pricing | Audio sent to OpenAI | OPENAI_API_KEY required |
Run Whisper locally with no API key required. Models download to ~/.cache/whisper on first run.
whisper /path/audio.mp3 --model medium --output_format txt --output_dir .
# Transcribe to text file
whisper /path/audio.mp3 --model medium --output_format txt --output_dir .
# Transcribe with translation to English
whisper /path/audio.m4a --task translate --output_format srt
# Transcribe with specific language
whisper /path/audio.wav --model large --language en --output_format json
| Model | Speed | Accuracy | VRAM |
|-------|-------|----------|------|
| tiny | Fastest | Lowest | ~1 GB |
| base | Fast | Low | ~1 GB |
| small | Medium | Good | ~2 GB |
| medium | Slow | Better | ~5 GB |
| large | Slowest | Best | ~10 GB |
| turbo | Fast | Good (default) | ~6 GB |
txt — Plain text transcriptsrt — SubRip subtitle format with timestampsvtt — WebVTT subtitle formatjson — Detailed JSON with word-level timestampstsv — Tab-separated values--model defaults to turbo on most installsTranscribe via OpenAI's /v1/audio/transcriptions endpoint. Faster for large batches, no local GPU needed.
{baseDir}/scripts/transcribe.sh /path/to/audio.m4a
Defaults:
whisper-1<input>.txt# Basic transcription
{baseDir}/scripts/transcribe.sh /path/to/audio.m4a
# Specify model and output
{baseDir}/scripts/transcribe.sh /path/to/audio.ogg --model whisper-1 --out /tmp/transcript.txt
# With language hint
{baseDir}/scripts/transcribe.sh /path/to/audio.m4a --language en
# With speaker name hints (improves accuracy)
{baseDir}/scripts/transcribe.sh /path/to/audio.m4a --prompt "Speaker names: Peter, Daniel"
# JSON output with timestamps
{baseDir}/scripts/transcribe.sh /path/to/audio.m4a --json --out /tmp/transcript.json
curl https://api.openai.com/v1/audio/transcriptions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F file="@/path/to/audio.m4a" \
-F model="whisper-1" \
-F response_format="text"
Set OPENAI_API_KEY environment variable, or configure in ~/.clawdbot/clawdbot.json:
{
skills: {
"openai-whisper-api": {
apiKey: "OPENAI_KEY_HERE"
}
}
}
| Consideration | Local CLI | Cloud API |
|---------------|-----------|-----------|
| Privacy-sensitive audio | Best | Audio sent to OpenAI |
| Large batch processing | Slow without GPU | Fast and parallel |
| Offline usage | Works offline | Requires internet |
| Cost | Free (hardware cost) | Per-minute pricing |
| Setup complexity | Install binary + models | API key only |
| Audio format support | Most formats | Most formats |
Take coco-research/openai-whisper from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.