Start or stop recording a meeting, call, or voice memo. Use this whenever the user says "record", "start recording", "capture this meeting", "stop recording", "I'm in a meeting", "take notes on this call", or wants to transcribe live audio. Also use when they ask about recording status or want to know if something is being recorded.
Before running helper scripts or opening bundled references, set:
export MINUTES_SKILLS_ROOT="$(git rev-parse --show-toplevel)/.agents/skills/minutes"
export MINUTES_SKILL_ROOT="$MINUTES_SKILLS_ROOT/minutes-record"Record audio from the microphone, transcribe it locally (whisper.cpp or parakeet.cpp), and save as searchable markdown.
Recording is a two-step process — start and stop. Between those two commands, audio is captured continuously from the default input device.
Start recording:
minutes record
# Or with a title:
minutes record --title "Weekly standup with Alex"The process runs in the foreground. It captures audio from whatever input device is active — the built-in MacBook mic for in-person conversations, or a BlackHole virtual audio device for system audio (Zoom, Meet, Teams calls).
Stop recording:
minutes stopThis sends a signal to the recording process, which then:
~/meetings/Live transcript during recording:
While recording, Minutes streams a real-time transcript to ~/.minutes/live-transcript.jsonl. You can read it with:
minutes transcript # all lines
minutes transcript --since 42 # lines after cursor
minutes transcript --since 5m # last 5 minutes
minutes transcript --status # check if activeThis lets you follow what's being discussed mid-meeting. The live output is rougher than the final transcript produced after stop -- it prioritizes speed over accuracy.
Check status:
minutes statusReturns JSON: {"recording": true, "pid": 12345} or {"recording": false}
A markdown file at ~/meetings/YYYY-MM-DD-title.md with:
File permissions are set to 0600 (owner-only) because transcripts contain sensitive content.
If the user hasn't set up minutes before, they need a speech model:
Whisper (default):
minutes setup --model smallThis downloads a ~466MB model. For faster but lower quality: --model tiny (75MB). For best quality: --model large-v3 (3.1GB).
Parakeet (opt-in, lower WER, fast on Apple Silicon):
minutes setup --parakeet # English (tdt-ctc-110m, ~220MB)
minutes setup --parakeet --parakeet-model tdt-600m # Multilingual v3 (~1.2GB)Requires both parakeet.cpp installed AND a Minutes CLI compiled with --features parakeet. The downloadable DMG and tagged CLI release binaries include the feature; the Homebrew Formula CLI (brew install silverstein/tap/minutes) and bare cargo install minutes-cli do not. If minutes setup --parakeet reports WARNING: this minutes binary was compiled WITHOUT the parakeet feature, rebuild from source with the flag. See docs/architecture/parakeet.md for the full walkthrough.
minutes setup --model small (whisper) or minutes setup --parakeet (parakeet). This is the most common first-run error.minutes stop first, or minutes status to check. If the PID file is stale (process crashed), minutes stop will clean it up.references/audio-devices.md in this skill folder for the full setup guide.tiny model is fast but low quality. Upgrade to small or medium for real meetings: minutes setup --model small.0600 (owner-only). This is intentional — transcripts contain sensitive content. Don't chmod them to be world-readable.small model takes ~3-5 minutes on Apple Silicon. The tiny model is ~4x faster but much less accurate.minutes record is running, the recording stops but may not process. Always use minutes stop from another terminal.7a61dd5
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.