La Roca plugin that turns local audio and video into federated, searchable memory.
This is an extra plugin. It is not part of roca init. Install it when you want transcripts next to the rest of your local memory.
Qualities are fast, balanced, and best quality. Those are the names you choose. The speech engine is whisper.cpp, compiled into this plugin's command and pinned in CI: darwin-arm64 with Metal, linux-amd64 on CPU. Weights are downloaded hash-pinned as data. They are never bundled.
- Independent public plugin. Own repo, own
transcribe.db, installable withroca plugin install. Zero changes to La Roca's init ceremony. - One federated database. No context splitting in v1.
- Files and folders are parameters. No watched folders.
- No diarization, no live microphone, no cloud path, no daemon. The quality loads once per invocation batch and the process dies when the queue is done.
- Vector retrieval is a declaration over segment text. This plugin does not embed.
roca plugin install thellmwhisperer/roca-transcribeThat places the federated database. Build or place the command, then choose at least one quality:
make build-native
./.tmp/roca-transcribe place --dir "$HOME/.local/bin"
roca transcribe installThe chooser lists fast, balanced, and best quality. At least one is mandatory. The download runs in the background and never blocks other La Roca commands.
roca transcribe recording.wav notes/
roca transcribe interview.mp4 --model balanced --language es --output txt,srt
roca transcribe interview.mp4 --retranscribeVideo needs ffmpeg on the machine so the audio can be extracted. Folders are processed newest first. Unchanged files are skipped by fingerprint. --retranscribe does exactly the files you name.
Default AXI is bounded TOON with help[]. --json is the complete envelope.
roca exec 'SELECT COUNT(*) AS files FROM plugin_roca_transcribe.media_files'
roca exec 'SELECT COUNT(*) AS segments FROM plugin_roca_transcribe.segments'
roca exec "SELECT text, t0, t1 FROM plugin_roca_transcribe.segments ORDER BY t0 LIMIT 20"The installer verifies plugin.json and transcribe.db. Source of the database is schema/schema.sql. The published command shares the plugin release version and follows the same shape as roca-firstmate: place copies it next to the database or onto PATH so roca transcribe dispatches to roca-transcribe.
Engine telemetry is rotated JSONL under logs/ next to the database, never a table.
make check # gofmt, go vet, portable tests
make sync-db # rebuild transcribe.db and checksums.txt
make build-native # pin-compile whisper.cpp and link it inMerged product PRs open or refresh a release-please PR. Merging that PR tags
vX.Y.Z and publishes the plugin archives. The contract is in
docs/releases.md.