Files
transcribe/tasks/transcribe-audio-file/TASK.md
T
pastilhasandClaude Opus 5 887eed226b the transcription goes beside the audio, and nothing else moves
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
2026-08-24 04:47:05 +00:00

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
audio
transcription
transcribe
name description required
file_path Path to the audio file to transcribe. Auto-filled from the file browser. true
type extensions
file
mp3
wav
m4a

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

  1. Read the audio file at file_path and the caller's spoken-language preferences (GET /api/user/settings).
  2. POST the file to /api/transcribe/transcribe. The plugin detects the language and transcribes faithfully in it — see plugins/transcribe/skills/transcribe/SKILL.md for the contract.
  3. 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.