8.9k★by obviyus
openrouter-transcribe – OpenClaw Skill
openrouter-transcribe is an OpenClaw Skills integration for coding workflows. Transcribe audio files via OpenRouter using audio-capable models (Gemini, GPT-4o-audio, etc).
Skill Snapshot
| name | openrouter-transcribe |
| description | Transcribe audio files via OpenRouter using audio-capable models (Gemini, GPT-4o-audio, etc). OpenClaw Skills integration. |
| owner | obviyus |
| repository | obviyus/openrouter-transcribe |
| language | Markdown |
| license | MIT |
| topics | |
| security | L1 |
| install | openclaw add @obviyus/openrouter-transcribe |
| last updated | Feb 7, 2026 |
Maintainer

name: openrouter-transcribe description: Transcribe audio files via OpenRouter using audio-capable models (Gemini, GPT-4o-audio, etc). homepage: https://openrouter.ai/docs metadata: {"clawdbot":{"emoji":"🎙️","requires":{"bins":["curl","ffmpeg","base64","jq"],"env":["OPENROUTER_API_KEY"]},"primaryEnv":"OPENROUTER_API_KEY"}}
OpenRouter Audio Transcription
Transcribe audio files using OpenRouter's chat completions API with input_audio content type. Works with any audio-capable model.
Quick start
{baseDir}/scripts/transcribe.sh /path/to/audio.m4a
Output goes to stdout.
Useful flags
# Custom model (default: google/gemini-2.5-flash)
{baseDir}/scripts/transcribe.sh audio.ogg --model openai/gpt-4o-audio-preview
# Custom instructions
{baseDir}/scripts/transcribe.sh audio.m4a --prompt "Transcribe with speaker labels"
# Save to file
{baseDir}/scripts/transcribe.sh audio.m4a --out /tmp/transcript.txt
# Custom caller identifier (for OpenRouter dashboard)
{baseDir}/scripts/transcribe.sh audio.m4a --title "MyApp"
How it works
- Converts audio to WAV (mono, 16kHz) using ffmpeg
- Base64 encodes the audio
- Sends to OpenRouter chat completions with
input_audiocontent - Extracts transcript from response
API key
Set OPENROUTER_API_KEY env var, or configure in ~/.clawdbot/clawdbot.json:
{
skills: {
"openrouter-transcribe": {
apiKey: "YOUR_OPENROUTER_KEY"
}
}
}
Headers
The script sends identification headers to OpenRouter:
X-Title: Caller name (default: "Peanut/Clawdbot")HTTP-Referer: Reference URL (default: "https://clawdbot.com")
These show up in your OpenRouter dashboard for tracking.
Troubleshooting
ffmpeg format errors: The script uses a temp directory (not mktemp -t file.wav) because macOS's mktemp adds random suffixes after the extension, breaking format detection.
Argument list too long: Large audio files produce huge base64 strings that exceed shell argument limits. The script writes to temp files (--rawfile for jq, @file for curl) instead of passing data as arguments.
Empty response: If you get "Empty response from API", the script will dump the raw response for debugging. Common causes:
- Invalid API key
- Model doesn't support audio input
- Audio file too large or corrupted
No README available.
Permissions & Security
Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.
Requirements
- OpenClaw CLI installed and configured.
- Language: Markdown
- License: MIT
- Topics:
FAQ
How do I install openrouter-transcribe?
Run openclaw add @obviyus/openrouter-transcribe in your terminal. This installs openrouter-transcribe into your OpenClaw Skills catalog.
Does this skill run locally or in the cloud?
OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.
Where can I verify the source code?
The source repository is available at https://github.com/openclaw/skills/tree/main/skills/obviyus/openrouter-transcribe. Review commits and README documentation before installing.
