Skip to content

v0.23.0: Minutes learns your voice

Latest

Choose a tag to compare

@silverstein silverstein released this 23 Jul 20:41

Minutes now learns your voice. This release ships the first slice of first-class voice enrollment, rescues recordings that other tools would call dead, and adds two new ways to get meetings into and out of Minutes.

New

  • Voice enrollment (CLI). Teach Minutes your voice in ~25 seconds, entirely on-device: minutes voice enroll records a quality-gated sample (bad mic, background chatter, or a second speaker gets rejected instead of silently poisoning your profile), and speaker matching now returns evidence instead of a bare name — model-compatible profiles only, with margin checks so an uncertain match stays anonymous rather than guessing wrong. minutes voice status / list / test / remove / delete-all round out the surface, including a one-command sweep that removes every voiceprint, sample, sidecar, and database trace. Voiceprints are one-way identity vectors in a local 0600 SQLite file, never audio, never transmitted, created only by explicit action. Desktop enrollment UI is next; this release is CLI-first. (#496, #505, #506, #518)
  • Import existing text archives. minutes import text brings transcripts and notes from other tools into your searchable meeting history — one command to stop paying rent on your own conversation memory. (#516)
  • Cursor Agent summarization backend. agent_command = "agent" points post-meeting summarization at the Cursor Agent CLI, alongside Claude, Codex, Gemini, OpenCode, and Pi. Read-only ask mode, no hardcoded model, and engine = "auto" preference order is unchanged for existing setups. Thanks @adriannoes for the spike and the PR. (#520, #522)

Fixed

  • Recovery no longer refuses healthy audio. When a native call capture is interrupted, macOS can leave stem WAVs with unfinalized headers (a data chunk claiming 0 bytes on a 400+ MB file). Recovery trusted the header, declared the audio "digitally silent," and refused to retry — while telling you to run ffmpeg yourself. The probe now measures the actual samples, repairs the header, and runs the mix itself: Retry as meeting just works. Thanks @rymalia for a diagnosis so complete it doubled as the spec. (#519)
  • Dictation without a model now recovers in one click. Starting dictation before the Whisper model is downloaded previously failed with a raw error; it now explains what's missing and offers the setup step directly. (#509)
  • Vocabulary entries with non-ASCII names. Terms whose canonical form has no ASCII characters (e.g. CJK, Cyrillic) no longer collide on a shared bare-kind id, and minutes vocabulary remove now accepts the canonical text as well as the id. (#511, #512)
  • Recall panel text is selectable. You can finally copy out of the Recall/chat panel on desktop. (#490, #503)
  • Transient permission-probe failures no longer show a false warning banner. One slow probe tick at launch no longer flags Input Monitoring as broken. (#501, #504)
  • Faster desktop first paint. The meetings list no longer waits on the proactive-context bundle before rendering. (#507)

Install

# Homebrew
brew install silverstein/tap/minutes

# Cargo
cargo install minutes-cli

# macOS app: download Minutes.dmg from the assets below
# MCP (Claude Desktop / Cowork): npx minutes-mcp, or install minutes.mcpb

Upgrading? minutes voice enroll is the one to try first — then say a few words in your next meeting and watch the speaker labels get it right.