transcribe
Skill17 starsChanged 2 months agoMITView on GitHub
Transcribe audio (Dropbox links, uploaded files, URLs, local paths) with CrisperWhisper running locally, and commit each transcript to a private GitHub repo — one dated folder per transcription.
- Installs packages
- Commits and pushes
47 other projects use a version of this.
Adopted by
Most recently taken up by
- linxule/carreltheir own version, first seen Nov 8, 2026
- overment/skillstheir own version, first seen Nov 8, 2026
- TserenTserenov/FMT-exocortex-templatetheir own version, first seen Nov 2, 2026
- iwesys/IWEtheir own version, first seen Nov 1, 2026
- thesammykins/skillstheir own version, first seen Nov 1, 2026
- DojoCodingLabs/remotion-superpowerstheir own version, first seen Nov 1, 2026
Used with
Projects with it also use spreadsheet, think and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
JetBrainsSkillspreadsheet
Use when tasks involve creating, editing, analyzing, or formatting spreadsheets (`.xlsx`, `.csv`, `.tsv`) with formula-aware workflows, cached recalculation, and visual review.
Also in 3 projects that use this
vltingSkillthink
Lightweight plan-to-execution pipeline. Explores codebase, runs council deliberation, presents plan for approval, then executes via /run.
Also in 3 projects that use this
robzolkosSkilldone
Reset the working directory for the next task by ensuring no uncommitted changes exist, then switching to the main branch and pulling latest.
Also in 3 projects that use this
JaimeGBASkillingest
Digest an external source (article, paper, transcript, URL, book chapter) and integrate its content into the knowledge base
Also in 3 projects that use this
AnthropicSkillonboarding
Generate an onboarding checklist and first-week plan for a new hire. Use when someone has a start date coming up, building the pre-start task list (accounts, equipment, buddy), scheduling Day 1 and Week 1, or setting 30/60/90-day goals for a new team member.
Also in 3 projects that use this
MicrosoftSkilldiagnose
Use to systematically diagnose why scenarios fail — identifies root causes by analyzing agent traces, codebase, and behavioral patterns
Also in 3 projects that use this
Other versions47 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 47
- openai/skills★ 27ksame name
- gnekt/My-Brain-Is-Full-Crew★ 3.9ksame name
- badlogic/pi-skills★ 2.5ksame name
- greatSumini/cc-system★ 438same name
- JetBrains/skills★ 386same name
- bholmesdev/skills★ 179same name
- DojoCodingLabs/remotion-superpowers★ 153same name
- thiagofinch/mega-brain★ 95same name
- TserenTserenov/FMT-exocortex-template★ 63same name
- jftuga/transcript-critic★ 40same name
37 more not listed
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 repository18 other files it gives its agents.
- 3dprinterSkill
- ai-projectsSkill
- ciberjohn-no-slopSkill
- excalidrawSkill
- gymcoachSkill
- jevSkill
- joplin-brainSkill
- medium-storySkill
- openrouter-image-genSkill
- openscad-cadSkill
- paperclip-creatorSkill
- proxmox-estateSkill
- short-videosSkill
- skill-writerSkill
- social-posterSkill
- t3mp3st-autonomous-securitySkill
- technical-trainerSkill
- uk-business-consultantSkill
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 40 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
- Distinctive: line 15
Use when the user gives you an audio file or link (Dropbox shared link, direct URL, uploaded file, local path) and wants it transcribed.
- Very specific: line 76
Never use --backend transformers on a CPU-only box except as a compatibility check — it will make the user wait hours for a podcast.
- Distinctive: line 82
Do NOT block the chat.
“Common” is measured: kept by at least 6 in 10 of the 40 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
Transcribe — Audio → Transcripts → GitHub
Use when the user gives you an audio file or link (Dropbox shared link, direct URL,
uploaded file, local path) and wants it transcribed. Produces two transcripts per
audio — verbatim.txt (word-for-word, fillers included) and intended.txt (clean,
readable) — and commits each into its own dated folder in a private GitHub repo,
then pushes.
Configuration Variables
Set these at install time (the natural-language install prompt asks for them):
| Variable | Required | Description | Example |
{{TRANSCRIBE_VENV_PATH}} | Yes | Absolute path to the CrisperWhisper Python virtual environment | ~/.venvs/crisperwhisper |
{{TRANSCRIBE_SCRIPT_PATH}} | Yes | Absolute path to the driver script | ~/.hermes/skills/media/transcribe/scripts/transcribe.py |
{{TRANSCRIPTS_REPO_PATH}} | Yes | Local checkout of the private transcripts GitHub repo | ~/transcripts |
{{TRANSCRIPTS_REPO_URL}} | Yes | Git remote URL of that repo | https://github.com/<your-user>/transcripts.git |
{{TRANSCRIBE_MODEL}} | No | Default Whisper model size (small/medium/turbo/large) | medium |
Prerequisites
| Component | Notes |
| Python 3.10+ venv | crisperwhisper[all] installed (torch, transformers, ctranslate2 fork) |
| ffmpeg | Required for audio decode (mp3/m4a/ogg/wav). Debian/Ubuntu: sudo apt-get install -y ffmpeg; macOS: brew install ffmpeg |
| Private GitHub repo | The transcripts output repo; needs a local clone and git push access |
| Model cache | First run downloads the Whisper model (~1.5 GB for medium) from HuggingFace and converts it once for the ct2 backend; cached afterwards |
Procedure
1. Get the audio locally
Any of these work; pass the source string straight to the script:
- Dropbox shared link — the script auto-converts
www.dropbox.com/s/...→dl.dropboxusercontent.comand appends?dl=1for a direct download. Works with?dl=0links too. - Direct URL (http/https) — downloaded with a browser User-Agent.
- Uploaded file — Hermes desktop uploads land somewhere local; pass the path.
- Local path — pass as-is.
2. Run the transcription
"{{TRANSCRIBE_VENV_PATH}}/bin/python" "{{TRANSCRIBE_SCRIPT_PATH}}" "<SOURCE>" --out "{{TRANSCRIPTS_REPO_PATH}}" [OPTIONS]Defaults: --model {{TRANSCRIBE_MODEL}} (CPU tradeoff), language auto-detect, both verbatim + intended.
| Option | Effect |
--model small|medium|turbo|large | Size/quality tradeoff. medium is the CPU sweet spot. |
--language pt|en|... | Force ISO language; omit for auto-detect. |
--words | Also write words.tsv with per-word timestamps. |
--srt | Also write intended.srt subtitles. |
--backend auto|ct2|transformers | auto prefers ct2 (verified ~50× faster than transformers on CPU). See backend notes below. |
Backend reality check (measured 2026-08-02, medium model, 10.6 s audio, 6-core EPYC CPU, no GPU):
| Backend | Model load | Decode 10.6 s audio | Verdict |
| ct2 (int8) | ~26 s (first run includes one-time HF→CT2 conversion) | ~10 s (≈ realtime, RTF ≈ 1.0) | Default |
| transformers (torch) | ~30 s | >9 min (RTF > 50×), aborted | Unusable on CPU |
Never use --backend transformers on a CPU-only box except as a compatibility check —
it will make the user wait hours for a podcast.
Long audio: with ct2, transcription is roughly realtime (1 h audio ≈ 1 h CPU,
single transcription; medium, int8). Still worth running in background with
notify_on_complete=true for anything over ~15 min, and tell the user the ETA.
Do NOT block the chat.
3. Verify output
The script prints OUTDIR:<path> and the word counts. Check:
ls -la "{{TRANSCRIPTS_REPO_PATH}}/<YYYY-MM-DD>_<slug>/"Expect: verbatim.txt, intended.txt, meta.json (+ words.tsv / intended.srt if requested).
Spot-check both texts — if a transcript is empty or obviously wrong, rerun with
--language <code> explicitly (auto-detect occasionally fails on short clips).
4. Commit and push
cd "{{TRANSCRIPTS_REPO_PATH}}"
git add <YYYY-MM-DD>_<slug>/
git commit -m "transcribe: <slug> (<lang>, <model>, <duration>s)"
git pushNever commit the original audio — GitHub caps files at 100 MB and repos stay lean
without LFS. The source is recorded in meta.json; the downloaded audio lives in the
ephemeral work dir (/tmp/transcribe-work/) — if the user wants it kept, copy it to an
audio archive folder before cleaning up.
5. Report
Give the user:
- The folder path (local) and the GitHub URL:
{{TRANSCRIPTS_REPO_URL}}/tree/main/<folder> - Language detected, model/backend used, audio duration vs transcription time
- A 1–2 line sample of each mode so they can see the verbatim/intended difference
Pitfalls
- Hermes profile HOME isolation — Under a Hermes profile,
~may resolve to the profile's sandbox home (e.g.~/.hermes/profiles/<profile>/home/), so the HF model cache and any path built from~land in odd places. Always use absolute paths for the venv, script, and repo (the{{VAR}}values). The model only downloads once and is reused. - First run is slow — downloads the model (~1.5 GB for
medium) from HuggingFace, and the ct2 backend converts HF→CT2 once. Subsequent runs skip both. Don't panic if the first run takes several minutes before "model loaded". - transformers 5.x tokenizer failure — crisperwhisper 2.0.1 was built for
transformers 4.x. If you see
OSError: Can't load tokenizer for 'nyralabs/...', it's usually an interrupted first download (re-run fixes it). If it persists, pintransformers<5in the venv:pip install "transformers<5". - No GPU — on a CPU-only box,
largewill be slow and may OOM with word timestamps; stick tomediumunless the user asks otherwise. - ct2 float16 on CPU fails —
ValueError: Requested float16 compute type...The ct2 backend defaults tocompute_type="float16", which needs a GPU. The script forcescompute_type="int8"when the backend is ct2; don't remove that. - First ct2 run converts the model — HF→CT2 conversion of
mediumon CPU takes ~10–15 min once; cached afterwards. The transformers backend has no conversion step but is slower per-decode. - Unauthenticated HF downloads — fine but slower; don't block on rate limits, just retry.
- Empty transcript on silence — by design (both backends decode with begin-of-sequence suppression disabled). If the audio is genuinely silent, that's the correct output.
- Dropbox links with
&in the URL — quote the source argument in the shell.
Verification checklist
verbatim.txtandintended.txtnon-empty, language looks rightmeta.jsonhas source, duration, model, backend, languagegit statusclean after push;git log --oneline -1shows the new commit- User can open the GitHub link (private repo — their account only)
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.

