jarvisrchen/yogurt

yogurt-control

Read or control a meeting in a running yogurt instance.

View source
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

Read and control yogurt

Run yogurt ctl first, with no arguments: it prints status - instances found, the active meeting, and the active provider. Needs yogurt 0.8.0 or newer: check with yogurt --version, and run brew upgrade jarvisrchen/yogurt/yogurt if it's older.

The binary

<!-- yogurt-cli:start -->

  • yogurt start - Launch the local server and open the browser
  • yogurt doctor - Print diagnostic info (rust, macOS, perms, providers, models) + repair actions
  • yogurt ctl - Control a running yogurt instance: status, meetings, detection, windows
  • yogurt ctl status - Instances found, active/detected meeting, stt engine, provider, permission grants
  • yogurt ctl meeting - Create, start, stop, and read meetings on a running instance
  • yogurt ctl detect - What meeting detection currently sees (MTG-11), or dismiss the prompt
  • yogurt ctl windows - On-screen windows and each one's meeting-detection verdict. No server needed
  • yogurt ctl settings - General settings the server exposes: get and set
  • yogurt ctl provider - Configured LLM providers: list, activate, test
  • yogurt ctl models - STT models: list, download, delete
  • yogurt ctl ws - Subscribe to the server websocket, printing one JSON frame per line

<!-- yogurt-cli:end -->

docs/FEATURES.md maps every feature to its UI path, API route, and ctl command. Reads fall back to the local database (source: db) when no server answers, so they still work with yogurt not running.

Finding a meeting without a URL

yogurt ctl meeting search <word> --json is full-text over title, notes, and transcript, newest first among equal matches. Search one word (a person's name, a topic), not a phrase - "Steven" matches, "1:1 with Steven" only matches that exact string, and "Steve" does not match "Steven". Narrow by date client-side on started_at, then read it with ctl meeting summary <id>. ctl meeting show last is the most recent meeting; ctl meeting list --json is everything, newest first.

Three rules:

  • Summary before transcript. ctl meeting summary is small; ctl meeting transcript is large - reach for it only when the summary doesn't answer the question.
  • One recording at a time. Run ctl status before ctl meeting start, since a second recording overlaps audio captures.
  • Never cat or print the session token. ctl handles auth itself; ~/.yogurt/session-token is not for the agent to read.

See docs/AI-INTEGRATION.md for anything ctl doesn't cover yet.