it created a dated directory, moved the recording into it and wrote the markdown alongside. nobody asked for an archive. the thing you want from a transcription is the text next to the recording, which is exactly what the file viewer's transcribe button did — POST with saveNextTo, sibling .md, done. overwrites a previous transcription of the same file on purpose: it is derived, running it again means you wanted it again, and a -2 beside it is only a second file to choose between. inline: true, so the file browser runs it and waits rather than making a background job out of a call that takes seconds. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Officer-Session: 656f5c85-e49a-4f1f-b9f3-042a04b4d043
2.1 KiB
name, description, category, version, mode, inline, language, tags, skills, inputs, trigger
| name | description | category | version | mode | inline | language | tags | skills | inputs | trigger | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Transcribe Audio File | Transcribe an audio file to text over your own whisper.cpp server, no model turn per file. | Media | 1 | script | true | typescript |
|
|
|
|
Transcribe Audio File
Sends the audio file to the transcribe plugin's own route — POST /api/transcribe/transcribe — and
files the result next to the original.
A script task, deliberately: the plugin already does its own language detection and transcription server-side, so there is nothing here worth a model turn for. Running one per audio file would be a model call spent re-deriving what the plugin already returns.
What it does
- Read the audio file at
file_pathand the caller's spoken-language preferences (GET /api/user/settings). POSTthe file to/api/transcribe/transcribe. The plugin detects the language and transcribes faithfully in it — seeplugins/transcribe/skills/transcribe/SKILL.mdfor the contract.- Write the transcription beside the audio file, same name,
.md. Nothing is moved and nothing is created around it.
It overwrites a previous transcription of the same file, deliberately: a transcription is derived, and running it again means you wanted it again.
Before it runs
The plugin has to be configured — PUT /api/transcribe/config with a reachable whisper.cpp URL. If it
is not, this fails with that told plainly rather than a generic error.
What it deliberately does not do
The worked example this was adapted from (an agentic task) ran its own detect-language pass before transcribing, and generated a title from the transcription's contents. Both are dropped here: the detect-then-transcribe step is already what the plugin's route does internally, so repeating it would be redundant work against the same server. And a generated title needs a model turn, which is exactly what this task exists to avoid spending per file.