Agent Skillssilverstein/minutes › minutes-record

minutes-record

GitHub

实现会议录音、本地实时转写及Markdown归档。支持通过whisper.cpp进行隐私保护转录,提供开始/停止控制、状态查询及会话摘要功能,适用于语音备忘与会议记录场景。

.agents/skills/minutes/minutes-record/SKILL.md silverstein/minutes

Trigger Scenarios

用户要求开始或停止录音 询问录音状态或转写进度 提及会议录制或语音备忘

Install

npx skills add silverstein/minutes --skill minutes-record -g -y
More Options

Non-standard path

npx skills add https://github.com/silverstein/minutes/tree/main/.agents/skills/minutes/minutes-record -g -y

Use without installing

npx skills use silverstein/minutes@minutes-record

指定 Agent (Claude Code)

npx skills add silverstein/minutes --skill minutes-record -a claude-code -g -y

安装 repo 全部 skill

npx skills add silverstein/minutes --all -g -y

预览 repo 内 skill

npx skills add silverstein/minutes --list

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."
}

Skill Path

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"

/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:

  1. Stops audio capture
  2. Transcribes the audio locally via whisper.cpp (no cloud, no data leaves the machine)
  3. Saves the transcript as a markdown file in ~/meetings/
  4. 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 stop first, or minutes status to check. If the PID file is stale (process crashed), minutes stop will 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.md in this skill folder for the full setup guide.
  • Recording runs but transcription is garbage → The tiny model is fast but low quality. Upgrade to small or medium for 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 small model takes ~3-5 minutes on Apple Silicon. The tiny model is ~4x faster but much less accurate.
  • Recording process disappeared → If you close the terminal tab where minutes record is running, the recording stops but may not process. Always use minutes stop from another terminal.

Version History

  • a9a4a8b Current 2026-08-20 02:20

    移除parakeet.cpp支持,仅保留whisper.cpp作为默认转写引擎,以解决音频安全传输问题。

  • 1dfcb30 2026-07-25 08:25

Same Skill Collection

.agents/skills/minutes/minutes-cleanup/SKILL.md
.agents/skills/minutes/minutes-debrief/SKILL.md
.agents/skills/minutes/minutes-graph/SKILL.md
.agents/skills/minutes/minutes-ideas/SKILL.md
.agents/skills/minutes/minutes-ingest/SKILL.md
.agents/skills/minutes/minutes-lint/SKILL.md
.agents/skills/minutes/minutes-list/SKILL.md
.agents/skills/minutes/minutes-note/SKILL.md
.agents/skills/minutes/minutes-prep/SKILL.md
.agents/skills/minutes/minutes-recap/SKILL.md
.agents/skills/minutes/minutes-release-notes/SKILL.md
.agents/skills/minutes/minutes-search/SKILL.md
.agents/skills/minutes/minutes-seo-wave/SKILL.md
.agents/skills/minutes/minutes-setup/SKILL.md
.agents/skills/minutes/minutes-verify/SKILL.md
.agents/skills/minutes/minutes-video-review/SKILL.md
.agents/skills/minutes/minutes-weekly/SKILL.md
.claude/plugins/minutes/skills/minutes-cleanup/SKILL.md
.claude/plugins/minutes/skills/minutes-debrief/SKILL.md
.claude/plugins/minutes/skills/minutes-graph/SKILL.md
.claude/plugins/minutes/skills/minutes-ideas/SKILL.md
.claude/plugins/minutes/skills/minutes-ingest/SKILL.md
.claude/plugins/minutes/skills/minutes-lint/SKILL.md
.claude/plugins/minutes/skills/minutes-list/SKILL.md
.claude/plugins/minutes/skills/minutes-note/SKILL.md
.claude/plugins/minutes/skills/minutes-prep/SKILL.md
.claude/plugins/minutes/skills/minutes-recap/SKILL.md
.claude/plugins/minutes/skills/minutes-record/SKILL.md
.claude/plugins/minutes/skills/minutes-release-notes/SKILL.md
.claude/plugins/minutes/skills/minutes-search/SKILL.md
.claude/plugins/minutes/skills/minutes-seo-wave/SKILL.md
.claude/plugins/minutes/skills/minutes-setup/SKILL.md
.claude/plugins/minutes/skills/minutes-verify/SKILL.md
.claude/plugins/minutes/skills/minutes-video-review/SKILL.md
.claude/plugins/minutes/skills/minutes-weekly/SKILL.md
.opencode/skills/minutes-cleanup/SKILL.md
.opencode/skills/minutes-debrief/SKILL.md
.opencode/skills/minutes-graph/SKILL.md
.opencode/skills/minutes-ideas/SKILL.md
.opencode/skills/minutes-ingest/SKILL.md
.opencode/skills/minutes-lint/SKILL.md
.opencode/skills/minutes-list/SKILL.md
.opencode/skills/minutes-note/SKILL.md
.opencode/skills/minutes-prep/SKILL.md
.opencode/skills/minutes-recap/SKILL.md
.opencode/skills/minutes-record/SKILL.md
.opencode/skills/minutes-release-notes/SKILL.md
.opencode/skills/minutes-search/SKILL.md
.opencode/skills/minutes-seo-wave/SKILL.md

Metadata

Files
0
Version
a9a4a8b
Hash
1d625962
Indexed
2026-07-25 08:25

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-25 07:34
浙ICP备14020137号-1 $mapa de visitantes$