| name | minutes-record |
| description | 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. |
| triggers | ["record","start recording","capture this meeting","stop recording","I'm in a meeting","take notes on this call"] |
| user_invocable | true |
| metadata | {"display_name":"Minutes Record","short_description":"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.","default_prompt":"Use Minutes Record for this task.","site_category":"Capture","site_example":"/minutes-record","site_best_for":"Start or stop a meeting, call, or voice memo recording."} |
| assets | {"scripts":[],"templates":[],"references":["references/audio-devices.md"]} |
| output | {"claude":{"path":".claude/plugins/minutes/skills/minutes-record/SKILL.md"},"codex":{"path":".agents/skills/minutes/minutes-record/SKILL.md"}} |
| tests | {"golden":true,"lint_commands":true} |
/minutes-record
Record audio from the microphone, transcribe it locally with whisper.cpp, and save as searchable markdown.
How it works
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
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 stop
This sends a signal to the recording process, which then:
- Stops audio capture
- Transcribes the audio locally via whisper.cpp (no cloud, no data leaves the machine)
- Saves the transcript as a markdown file in
~/meetings/
- Prints the output path and word count as JSON
Live transcript during recording:
While recording, Minutes streams a real-time transcript to ~/.minutes/live-transcript.jsonl. You can read it with:
minutes transcript
minutes transcript --since 42
minutes transcript --since 5m
minutes transcript --status
This 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 status
Returns JSON: {"recording": true, "pid": 12345} or {"recording": false}
What you get
A markdown file at ~/meetings/YYYY-MM-DD-title.md with:
- YAML frontmatter (title, date, duration, type)
- Timestamped transcript
- Summary, decisions, and action items (if LLM summarization is configured)
File permissions are set to 0600 (owner-only) because transcripts contain sensitive content.
First-time setup