Minutes is an open-source, local-first meeting recorder that transcribes meetings, calls, and voice memos on the device and stores the results as Markdown files. It is for people who want their meeting records available to Claude Code, Codex, Cursor, and other MCP clients without uploading them. The catalogue add-ons extend agent workflows for querying and using those local meeting files.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add silverstein/minutes --skill minutes-searchgit clone --depth 1 https://github.com/silverstein/minutesWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/silverstein/minutes/minutes-search)<a href="https://agentmods.dev/skills/silverstein/minutes/minutes-search"><img src="https://agentmods.dev/badge/skills/silverstein/minutes/minutes-search/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/silverstein/minutes/minutes-search"><img src="https://agentmods.dev/badge/skills/silverstein/minutes/minutes-search.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00096 | $0.01226 |
| Opus 5 | $0.00048 | $0.00613 |
| Sonnet 5 | $0.00019 | $0.00245 |
| Haiku 4.5 | $0.00010 | $0.00123 |
Grade A, and why
minutes-search scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 89 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/minutes-search
Find information across all meeting transcripts and voice memos.
Usage
# Basic search
minutes search "pricing strategy"
# Filter to just voice memos
minutes search "onboarding idea" -t memo
# Filter to just meetings
minutes search "sprint planning" -t meeting
# Date filter + limit
minutes search "API redesign" --since 2026-03-01 --limit 5
Flags
| Flag | Description |
|---|---|
-t, --content-type <meeting|memo> |
Filter by type |
--since <date> |
Only results after this date (ISO format, e.g., 2026-03-01) |
-l, --limit <n> |
Maximum results (default: 10) |
Output
Returns JSON to stdout with an array of matches. Each result includes:
title— Meeting or memo titledate— When it was recordedcontent_type— "meeting" or "memo"snippet— The line containing the matchpath— Full path to the markdown file
Human-readable output goes to stderr. A result path is only a hint. To read the
full transcript, run minutes get "<exact path>" --json, require exit status 0,
and use only that response. Never pass the path to cat or the host Read tool.
How search works
Search is case-insensitive and matches against both the transcript body and the YAML frontmatter title. It walks all .md files in ~/meetings/ (including the memos/ subfolder).
For richer semantic search, users can configure QMD as the search engine in ~/.config/minutes/config.toml:
[search]
engine = "qmd"
qmd_collection = "meetings"
Search coaching
When the user's search query is vague or too broad, push back before running it:
- "who said X" or "what did Alex say" → If the meeting has
speaker_mapin frontmatter, use it to identify who said what.speaker_mapmaps SPEAKER_X labels to real names. High confidence = reliable, Medium = "likely" (suggestminutes confirmto lock it in). - "everything" or "all meetings" → "That'll return hundreds of results. What specifically are you looking for? A person, a topic, or a decision?"
- Single common word like "meeting" or "project" → "That's too broad. Can you narrow it — a person's name, a specific topic, or a date range?"
- "that meeting" or "the one where" → "Help me narrow it down. Do you remember who was in the meeting, roughly when it was, or a specific thing that was said?"
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 89 lines · 96 tokens per session scan A 94f03264e1c4
minutes-search is a skill published in the GitHub repository silverstein/minutes (1,474 stars, last pushed 2d ago), licensed MIT. It adds 96 tokens to every session and 1,226 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
meeting-notes
Use when a meeting just ended and a transcript or rough notes must become a record the absent can act on — decisions with their why, actions with an owner and a real date, open questions, a recap inside 24–48h — or to clean an AI-notetaker draft that invented tasks or swapped speakers. NOT the durable ADR with…
granola-to-steno
Sync Granola meeting notes into Steno's file-based store. Reads recent meetings from the Granola MCP (titles, dates, participants, AI summaries, verbatim transcripts) and regenerates Steno's output/summary.md and transcripts/transcript.txt files in a target folder (e.g. an iCloud Drive directory). The operation is…
Board Meeting Prep
Prepare board meeting decks, updates, and materials for effective governance.
granola
Access and process Granola meeting notes and transcripts via the granola CLI (MCP-backed). Use when pulling meeting data, analyzing transcripts, backfilling meetings, or any task involving Granola meeting content.
Board Meeting Prep
Prepare board meeting decks, updates, and materials for effective governance.
mcp_granola
All tools that accept meeting identifiers use meetingid (not docid, id, or documentid). The meetingid value comes from the id field in search results and meeting lists.