Vocateca, together with LLMs · 00:05:33 · 788 words
file
llm-workflows.txt
speakers
vocateca
address
vocateca.com/en/llm-workflows
duration
00:05:33 · 788 words

Vocateca, together with LLMs

00:00:00vocateca

Vocateca ships two ways to put an AI assistant in the loop: a command-line interface you can script directly, and an MCP server that lets assistants like Claude call those same commands as tools. Both talk to the exact same local data — your library never has to leave your Mac to be useful to an LLM.

00:00:24

The CLI

00:00:24vocateca

vocateca-cli is the same headless surface the app itself uses to subscribe, transcribe, and search — every command supports --json, so the output is exact and stable enough to script or hand to a model.

The CLI is open source — read the code or build it yourself. github.com/madevmuc/vocateca-open-core

vocateca

Subscribe to a podcast feed

$ vocateca-cli sources add-podcast https://feeds.example.com/interest-rates-weekly.xml \
    --title "Interest Rates Weekly" --json

{
  "action" : "add-podcast",
  "added" : true,
  "ok" : true,
  "polled" : false,
  "slug" : "interest-rates-weekly",
  "title" : "Interest Rates Weekly"
}
vocateca

Check what the queue is doing

$ vocateca-cli status --json

{
  "by_status" : {
    "deferred" : 12,
    "deleted" : 0,
    "done" : 486,
    "downloaded" : 0,
    "downloading" : 1,
    "failed" : 2,
    "pending" : 3,
    "skipped" : 0,
    "stale" : 0,
    "transcribing" : 1
  },
  "in_flight" : 2,
  "paused_reason" : "",
  "queue_depth" : 5,
  "queue_paused" : false
}
vocateca

Search everything you've transcribed

$ vocateca-cli library search "interest rates" --limit 2 --json

[
  {
    "guid" : "local:9f3a1c02",
    "score" : 0.94,
    "show_slug" : "interest-rates-weekly",
    "show_title" : "Interest Rates Weekly",
    "title" : "The Fed's next move",
    "transcript_path" : "/Users/you/Library/Application Support/Vocateca/transcripts/interest-rates-weekly/9f3a1c02.md"
  },
  {
    "guid" : "local:6b71ffa9",
    "score" : 0.81,
    "show_slug" : "market-signals",
    "show_title" : "Market Signals",
    "title" : "Why the yield curve matters",
    "transcript_path" : "/Users/you/Library/Application Support/Vocateca/transcripts/market-signals/6b71ffa9.md"
  }
]
vocateca

Export a transcript as SRT

$ vocateca-cli library export local:9f3a1c02 --format srt --out ~/Desktop/ --json

{
  "action" : "library-export",
  "dest_path" : "/Users/you/Desktop/9f3a1c02.srt",
  "format" : "srt",
  "guid" : "local:9f3a1c02",
  "ok" : true,
  "source_path" : "/Users/you/Library/Application Support/Vocateca/transcripts/interest-rates-weekly/9f3a1c02.srt"
}
00:02:09

The MCP server

00:02:09vocateca

MCP (Model Context Protocol) is a standard way for AI assistants like Claude to call tools on your machine directly — instead of you copy-pasting commands, the assistant runs them itself and reads the result.

vocateca-cli mcp exposes every CLI command above as an MCP tool, generated from the same command catalog so the two surfaces never drift apart. A few of the most useful ones:

vocateca
  • status Queue depth, in-flight, by-status counts, paused state.
  • shows Watchlist shows with per-show pending/done/failed counts.
  • episodes Episodes for one show.
  • failed Failed episodes across every show.
  • stats Throughput, success rate, realtime factor over N days.
  • library_search Score-ranked search over transcript titles and bodies.
  • library_export Export one transcript (md, txt, html, srt, okf).
  • sources_add-podcast Subscribe to an RSS/podcast feed. (mutating)
  • transcribe Import a single link and optionally run it to completion. (mutating)
  • queue_run Run a headless drain: download, transcribe, write to the library. (mutating)
  • retry_all Re-enqueue every failed episode, optionally for one show. (mutating)
  • notifications_list In-app notifications.

46 tools in total — one for every CLI command, including the mutating ones (sources_add-podcast, queue_run, retry, …). Each mutating tool accepts an optional dry_run to preview a change before it writes anything.

00:03:30vocateca

Connect it to Claude Desktop or Claude Code

Point the mcpServers config at the built vocateca-cli binary and its mcp subcommand:

claude_desktop_config.json

{
  "mcpServers": {
    "vocateca": {
      "command": "/absolute/path/to/vocateca-cli",
      "args": ["mcp"]
    }
  }
}
00:03:44

Worked examples

00:03:44vocateca

What actually happens when you ask an assistant to do one of these:

00:03:51vocateca

“What needs my attention?” Claude calls the status and failed tools. Both return small JSON objects — queue depth, counts by state, a list of failed guids with their error text. Claude reads that JSON and answers in plain language. Nothing else on your Mac is touched or sent anywhere.

00:04:12vocateca

“Catch me up on what's new” Claude calls shows, then episodes for whichever show you mean, filtered to --status done. It gets back titles, publish dates, and word counts — not full transcripts — and summarizes the list for you. If you then ask what a specific episode actually said, that's when Claude calls library_export or reads the file it points to — only then does that transcript's text become part of the conversation.

00:04:43vocateca

“Find everything I've said about interest rates” Claude calls library_search. The response is a ranked list — show, title, a relevance score, and a local file path — not the transcript contents. Claude can tell you which episodes match and where they live on disk. To see what's actually in one, it has to explicitly export or open that file, which you can watch it do.

00:05:10vocateca

What stays local: your audio, your transcripts, your watchlist, and everything in state.sqlite — Vocateca never uploads any of it. What reaches the model: only the JSON a tool call returns, which is exactly what you'd see printed to your terminal if you ran the same command yourself.

00:05:31

See also