audio-transcribe
Skill5 starsChanged 12 days agoMITView on GitHub
Transcribes local audio into Markdown with Gemini 3.5 Transcribe, including speaker labels and provider timestamps. Use for interviews, meetings, lectures, podcasts, voice notes, and similar recordings.
- Reads credentials
8 other projects use a version of this.
Adopted by
Most recently taken up by
- Apprentice-Geo/skillstheir own version, first seen Nov 1, 2026
- sunchaser15/claude-skillstheir own version, first seen Nov 1, 2026
- itqanlab/agent-toolkittheir own version, first seen Oct 13, 2026
- SongXy99/audio-transcriber-memorytheir own version, first seen Aug 18, 2026
- belschak/video-watchtheir own version, first seen Jul 17, 2026
- sonichi/sutandotheir own version, first seen May 17, 2026
Other versions8 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 8
- sonichi/sutando★ 396same name
- eze-is/eze-skills★ 74same name
- SongXy99/audio-transcriber-memory★ 8same name
- Apprentice-Geo/skills★ 3same name
- belschak/video-watch★ 1same name
- itqanlab/agent-toolkit★ 1same name
- jay1803/audio-transcribe★ 0same name
- sunchaser15/claude-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository23 other files it gives its agents.
- AGENTS.mdAGENTS.md
- architecture-knowledge-baseSkill
- better-uiSkill
- brainstormingSkill
- broSkill
- chatgpt-imagegenSkill
- coding-standardsSkill
- decision-roomSkill
- deslopifySkill
- domain-modelingSkill
- frontend-designSkill
- gemini-ttsSkill
- goalSkill
- readbackSkill
- rephraseSkill
- reply-broSkill
- setup-goalSkill
- skill-cleanerSkill
- strunk-writing-qualitySkill
- technical-writingSkill
- tech-specSkill
- tool-installSkill
- type-breakdownSkill
The file
We split this skill into the rules it gives an agent
3 rules. 0 are common, 2 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 27
Use ffprobe to inspect duration.
- Distinctive: line 30
Ask for language hints and domain terms when they are known and likely to improve recognition.
- Distinctive: line 32
Do not upload media without the user's explicit transcription request.
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Audio Transcription
The bundled CLI normalizes audio, uploads each chunk to Gemini 3.5 Transcribe, and writes one Markdown transcript. Default output uses Gemini's speaker diarization and word-level timestamps.
Setup
Resolve paths relative to this SKILL.md. Do not assume a global skill directory.
bun install --cwd <skill-directory>/scripts --no-save
export GEMINI_API_KEY='...'GOOGLE_API_KEY and OPENCODE_GOOGLE_API_KEY are fallbacks. Set GEMINI_TRANSCRIBE_MODEL only to select a compatible replacement model. The default is gemini-3.5-transcribe.
Before transcription
- Confirm the input exists and uses a supported format.
- Use
ffprobeto inspect duration. - Agree on an output path when the user does not provide one.
- Warn before an unexpectedly long or costly transcription.
- Ask for language hints and domain terms when they are known and likely to improve recognition.
Do not upload media without the user's explicit transcription request.
Run
bun run <skill-directory>/scripts/transcribe.ts \
./interview.m4a \
--language en-US \
--vocabulary "SumUp" \
--output ./interview-transcript.mdOptions:
--chunk-minutes N: chunk duration. The default is30.--language CODE: BCP-47 language hint. Repeat the option for each known language. Omit it for automatic language detection and code-switching.--vocabulary TERM: domain term, acronym, or proper name. Repeat the option for each term. Use it with--smart. Gemini accepts up to 1,000 terms. It normally performs best with a short, targeted list.--smart: return a cleaned transcript. This removes filler words, repetitions, and false starts, but Gemini does not provide speaker labels or timestamps in this mode.--output PATH: exact Markdown output path.--keep: retain normalized audio and chunk files beside the transcript.--help: show usage.
Default verbatim mode requests speaker diarization and word timestamps. Gemini limits those requests to 30 minutes of audio per request, so the CLI splits longer recordings. The live API rejects custom vocabulary with word timestamps, so the CLI fails clearly when --vocabulary is used without --smart. --smart supports chunks up to 60 minutes because it does not request either feature. If Gemini returns a rate-limit delay, the CLI waits for that delay and retries the interaction once.
Supported inputs: MP3, WAV, M4A, OGG, FLAC, and WebM.
Output
Default output contains source metadata, duration, model, mode, language hints, custom vocabulary, chunk count, speaker-labelled turns, and timestamps from Gemini's word annotations. The CLI orders annotations by their audio timestamps before it formats turns. The CLI deletes each remote Gemini upload after its transcription request. It warns if that deletion fails.
--smart produces clean text from interaction.output_text. It does not invent timestamps or speaker identity that the API did not return.
Speaker labels identify distinct voices within one Gemini request, not verified people. The CLI adds a heading for each chunk because Gemini can reset labels after a split. Preserve labels such as Speaker 1 when names are uncertain. Do not present inferred identities as facts.
Verification
After transcription:
- Confirm that the command succeeded.
- Confirm that the Markdown file exists and is non-empty.
- Inspect the beginning, one middle section, and the end for missing chunks, speaker changes, or malformed timestamps.
- Report the exact path and disclose failed or partial processing.
The CLI does not write a transcript after a failed API request. It removes local normalized audio unless --keep is set. Never print API keys or add private media and generated transcripts to the skill repository.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

