minutes-record
GitHub用于本地录音、实时转写及生成会议笔记的 Skill。支持开始/停止录音,利用 whisper.cpp 进行离线语音识别,将音频保存为带摘要和待办事项的 Markdown 文件,并提供状态查询与实时流式转录功能。
Trigger Scenarios
Install
npx skills add silverstein/minutes --skill minutes-record -g -y
SKILL.md
Frontmatter
{
"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.",
"compatibility": "opencode"
}
Skill Path
Before running helper scripts or opening bundled references, set:
export MINUTES_SKILLS_ROOT="$(git rev-parse --show-toplevel)/.opencode/skills"
export MINUTES_SKILL_ROOT="$MINUTES_SKILLS_ROOT/minutes-record"
/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
# 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 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 # all lines
minutes transcript --since 42 # lines after cursor
minutes transcript --since 5m # last 5 minutes
minutes transcript --status # check if active
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
If the user hasn't set up minutes before, they need a speech model:
Whisper (default):
minutes setup --model small
This downloads a ~466MB model. For faster but lower quality: --model tiny (75MB). For best quality: --model large-v3 (3.1GB).
Parakeet preferences currently resolve to Whisper on every platform. The pathname-only helper cannot safely receive Minutes' sealed private audio, so setup and selection fail closed until a secure byte transport lands. Do not send users through the Parakeet setup guide as a recording prerequisite.
Gotchas
- "model not found" → Run
minutes setup --model small. This is the most common first-run error. - "already recording" → Run
minutes stopfirst, orminutes statusto check. If the PID file is stale (process crashed),minutes stopwill clean it up. - No audio captured / empty transcript → Check that the right input device is selected in System Settings > Sound. On MacBooks, the default mic works for in-person conversations but won't capture system audio.
- For Zoom/Meet/Teams audio → You need BlackHole to capture system audio. See
references/audio-devices.mdin this skill folder for the full setup guide. - Recording runs but transcription is garbage → The
tinymodel is fast but low quality. Upgrade tosmallormediumfor real meetings:minutes setup --model small. - "permission denied" on output file → Output files are
0600(owner-only). This is intentional — transcripts contain sensitive content. Don't chmod them to be world-readable. - Long meetings (>2 hours) → Transcription time scales with duration. A 2-hour meeting with the
smallmodel takes ~3-5 minutes on Apple Silicon. Thetinymodel is ~4x faster but much less accurate. - Recording process disappeared → If you close the terminal tab where
minutes recordis running, the recording stops but may not process. Always useminutes stopfrom another terminal.
Version History
-
a9a4a8b
Current 2026-08-20 02:22
移除了对 parakeet.cpp 的支持,仅保留 whisper.cpp 作为默认转写引擎,并更新相关说明。
- 1dfcb30 2026-07-25 08:27


