Audio scribe
One git checkout drops a shared AI coding setup (skills, subagents, MCP servers, OpenSpec scaffolding) into any project, across Claude Code, Kilo, OpenCode, Codex, and Copilot.
npx -y skills add Lukk17/agent-standards --skill audio-scribeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Transcribe audio (speech-to-text) via the self-hosted AudioScribe service. Use this whenever the user wants the spoken content of an audio or video file as text, meeting recordings, voice notes, podcasts, interviews, lectures, Discord/Craig recordings, Audacity multi-track sessions. Trigger on phrases like "transcribe this", "what's said in this audio", "turn this recording into text", or any file path ending in .mp3 / .wav / .m4a / .ogg / .flac / .zip (Audacity).
SKILL.md
4.8 KB, as published. Nobody here has run it
AudioScribe
Speech-to-text with three swappable backends and one specialised endpoint for multi-track Audacity / Craig recordings.
All endpoints accept a multipart file upload and return a Markdown transcript.
Base URL
Use whatever base URL the runtime gives you for AudioScribe; examples below use $BASE. Ask if it isn't configured.
Endpoints
All under /api/v1/transcribe. Each takes a file form field plus a few optional form fields. By default the response
is the transcript file itself (Markdown). Set stream=true to get an SSE progress stream that ends with a
download_url you can fetch from /api/v1/transcribe/download/{file_id}.
POST /local: local faster-whisper on the host GPU. Best when the file is sensitive (no third-party API), GPU is available, or you want timestamps. Form fields:file,model(defaultSystran/faster-whisper-large-v3),language(auto if omitted),with_timestamps(default false),stream.POST /openai: OpenAI Whisper API. Best for short clips when you want the highest-quality general-purpose result and don't need timestamps. Server handles chunking for files >25MB. Form fields:file,model(defaultwhisper-1),language,stream.POST /hf: Hugging Face Inference. Use when the user names a specific HF model or you want to avoid OpenAI. Form fields:file,model(defaultopenai/whisper-large-v3),hf_provider(defaulthf-inference),stream.POST /audacity: multi-track.zip(Audacity.aupproject, or a Craig Bot dump). Extracts each track, transcribes them with whichever backend you pick, and merges chronologically into[HH:MM:SS] [Speaker] …lines. Form fields:file(must be.zip),provider(local/openai/hf, defaultlocal),model,language,hf_provider,stream.
Picking a backend
Default to local when the host has a GPU, it's free, private, and supports timestamps. Switch to openai for short
clips where quality matters and the recording is non-sensitive. Use hf only when the user pins a specific HF model.
For multi-speaker or Discord/Craig recordings always use /audacity.
Examples
Quick transcription with the local model (response is the .md file), Bash:
curl -s -o transcript.md \
-X POST $BASE/api/v1/transcribe/local \
-F "[email protected]" \
-F "with_timestamps=true"
PowerShell:
curl.exe -s -o transcript.md `
-X POST $BASE/api/v1/transcribe/local `
-F "[email protected]" `
-F "with_timestamps=true"
OpenAI backend, English forced, Bash:
curl -s -o transcript.md \
-X POST $BASE/api/v1/transcribe/openai \
-F "[email protected]" \
-F "language=en"
PowerShell:
curl.exe -s -o transcript.md `
-X POST $BASE/api/v1/transcribe/openai `
-F "[email protected]" `
-F "language=en"
Audacity / Craig multi-track zip with chronological speaker merge, Bash:
curl -s -o transcript.md \
-X POST $BASE/api/v1/transcribe/audacity \
-F "[email protected]" \
-F "provider=local"
PowerShell:
curl.exe -s -o transcript.md `
-X POST $BASE/api/v1/transcribe/audacity `
-F "[email protected]" `
-F "provider=local"
Streaming progress (SSE) for a long file, Bash:
curl -N -X POST $BASE/api/v1/transcribe/local \
-F "[email protected]" \
-F "stream=true"
PowerShell:
curl.exe -N -X POST $BASE/api/v1/transcribe/local `
-F "[email protected]" `
-F "stream=true"
The stream emits {"type":"progress",…} events and ends with
{"type":"complete","download_url":"/api/v1/transcribe/download/<id>"}. Fetch the URL from $BASE to get the Markdown.
Note for PowerShell: line continuation is the backtick `, not \. Use curl.exe so PowerShell doesn't route to its Invoke-WebRequest alias.
Tips
- Long files take real time: set the HTTP client timeout high (10+ minutes) for hour-long recordings, and prefer
stream=trueso the user sees progress instead of staring at a hung request. - Pass
languagewhen you know it; auto-detection wastes the first chunk on identification. - The Markdown response is plain text: feel free to post-process (summarise, extract action items, diarize further) once you have it.
- Servers'
OPENAI_API_KEY/HF_TOKENare configured server-side: don't ask the user for keys.