Open-source. MCP-native.
Most meeting tools optimize for notes inside their app. Minutes turns meetings, calls, and voice memos into local source material: structured markdown under ~/meetings/ with MCP tools, CLI commands, and live transcript JSONL. Claude Code, Codex, Gemini CLI, Cursor, OpenCode, Pi, and any MCP-compatible client work from the same corpus. Your memory survives tools, vendors, and hype cycles.
This page is the integration reference. MCP config, tool surface, frontmatter schema, and task recipes below. For the full generated index, see llms.txt.
Try it in 60 seconds
One command drops a 5-meeting fixture corpus into ~/.minutes/demo/, prints the MCP config with a MEETINGS_DIR env override, and lists questions to ask. No signup, no API key. Basic search and list tools work immediately. Structured tools (consistency report, person profiles) auto-install the Minutes CLI on first call.
npx minutes-mcp --demoPaste the printed config into your agent host. Try: “What did we decide about pricing? Which decision is current?”
Proof path
After the demo, audit the current eval artifact before trusting any score. v0.1 is a runnable 10-file, 20-question smoke test with a provisional 20/20 Claude-on-Claude pre-grade. It is useful evidence that the harness works, not an independent benchmark.
Reference adapters for Mem0 and Graphiti show how the markdown contract maps into external memory systems. Treat them as runnable examples until the v2 hardening work lands.
Shape of the category
Ten years from now, grep still works on your corpus.
Agent compatibility
Working paths across the major agent runtimes. Same folder, different hosts, no vendor lock-in.
| Agent | Native skills | MCP tools | Setup |
|---|---|---|---|
| Claude Code | 19 skills + 2 hooks | 29 tools | /plugin install minutes@minutes |
| Claude Desktop | — | 29 tools + MCP App | npx minutes-mcp or .mcpb |
| Codex | 19 skills via .agents/ | 29 tools | npx minutes-mcp |
| Gemini CLI | 19 skills via .agents/ | 29 tools | npx minutes-mcp |
| Pi | 19 skills via .agents/ | — | agent_command = "pi" |
| Cursor | — | 29 tools | npx minutes-mcp in Cursor MCP settings |
| OpenCode | 19 skills + /minutes-* commands | 29 tools | .opencode/ auto-discovered |
| Any MCP client | — | 29 tools | npx minutes-mcp |
Every agent reads the same ~/meetings/ folder. Switch hosts without migrating data. The portable skill pack also includes artifact workflows like /minutes-video-review for Loom, ScreenPal, and local walkthrough videos.
Adding another agent host? Use the agent integration checklist to decide whether it needs raw files, MCP, portable skills, a host-specific generated tree, or an agent_command backend.
Native skill catalog
Skills are the workflow layer above raw MCP tools. They tell the agent how to turn Minutes primitives into useful operator motions like meeting prep, debrief, graph queries, and artifact review. The catalog below is generated from the canonical skill sources so the website stays in sync with what the plugin and portable skill pack actually ship.
Artifacts
Minutes Video Review
Review a demo, walkthrough, or bug video into a durable brief.
Best for: Turn a Loom, ScreenPal, or local walkthrough video into a durable artifact bundle for agent review.
Capture
Minutes Cleanup
Manage old recordings — find large files, archive old meetings, delete processed originals.
Best for: Archive or delete old recordings when storage starts piling up.
Minutes List
List recent meetings and voice memos.
Best for: Browse recent meetings and voice memos when you need to find the right artifact first.
Minutes Note
Add a note to the current recording or annotate a past meeting. Use whenever the user says "note that", "remember this", "mark this as important", "add a note about", "annotate the meeting", or wants to capture a thought during or after a recording. Plain text input — no markdown needed.
Best for: Drop a timestamped note into the current recording or annotate a past one.
Minutes Recap
Generate a daily digest of today's meetings and voice memos — key decisions, action items, and themes across all recordings.
Best for: Get a same-day digest across meetings and voice memos.
Minutes Record
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.
Best for: Start or stop a meeting, call, or voice memo recording.
Minutes Setup
Guided first-time setup for Minutes — download whisper model, create directories, configure audio input.
Best for: Walk a first-time user through getting Minutes ready to record.
Minutes Verify
Verify that Minutes is properly set up and working — model downloaded, mic accessible, directories exist, no stale state.
Best for: Health-check the install, models, mic, and stale state before trusting it in production.
Coaching
Minutes Mirror
Self-coaching analysis of your own behavior across meetings — talk-time ratio, filler words, hedging language, monologue length, energy patterns, and (when meetings are tagged via /minutes-tag) what your behavior in winning meetings looks like vs losing ones. Use this whenever the user says "how did I do", "review my last meeting", "mirror", "self-review", "show my patterns", "coach me", "where am I weak", "talk time", "am I improving", "what do I do in meetings I win", "feedback on me", or asks for any kind of personal feedback on their own meeting behavior. This is the rare skill that gives the user a mirror to their own habits — surface it whenever they show curiosity about their own performance, even if they don't use the word "mirror".
Best for: Review your own talk-time, hedging, and performance patterns across meetings.
Minutes Tag
Lightweight outcome tagging for meetings — won, lost, stalled, great, or noise. Use whenever the user says "tag this meeting", "mark that as a win", "that one was a loss", "tag yesterday's call as stalled", "mark this great", "that meeting was noise", "label that meeting", or any time they describe a meeting outcome in passing. Tagging takes 5 seconds and unlocks /minutes-mirror correlation analysis — the more meetings get tagged, the smarter mirror gets at telling the user what behavior patterns lead to wins. Surface this skill any time the user mentions a meeting result, win, loss, or wasted time.
Best for: Label a meeting outcome in five seconds so later coaching gets smarter.
Intelligence
Minutes Graph
Cross-meeting entity graph — query who/what/when across all your meetings as structured data, with co-occurrence and cross-entity queries that text search can't answer. Use whenever the user says "show me everyone who mentioned X", "all mentions of Y across meetings", "who knows about Z", "graph", "across all meetings", "entity search", "first time we talked about", "trend for X over time", "who's been mentioned alongside", or wants to query meetings as an index rather than full-text search. Builds a JSON entity index on first run (one-time slow), then answers queries instantly. Surface this skill for relationship intelligence, due diligence, or any "across all my history" question that text search alone can't answer.
Best for: Query who mentioned what across all meetings as a relationship graph.
Knowledge
Minutes Ideas
Surface recent voice memos and ideas captured from any device.
Best for: Surface recent voice memos and loose ideas captured from any device.
Minutes Ingest
Extract facts from meetings and update your knowledge base — person profiles, chronological log, and index.
Best for: Extract structured facts from meetings into an external knowledge base.
Minutes Lint
Health-check your meeting knowledge for contradictions, stale commitments, and decision conflicts.
Best for: Audit meeting memory for contradictions, stale commitments, and decision conflicts.
Lifecycle
Minutes Brief
Fast meeting briefing from your conversation memory.
Best for: Get a fast one-page brief before an upcoming meeting.
Minutes Debrief
Post-meeting debrief tied back to prep and decisions.
Best for: Turn the latest meeting into decisions, follow-ups, and what changed from prep.
Minutes Prep
Interactive meeting prep from your conversation history.
Best for: Do a deeper relationship brief and talking-point prep before an important call.
Minutes Weekly
Weekly meeting synthesis — themes, decision arcs, stale commitments, and what deserves your attention next week.
Best for: See weekly themes, stale commitments, and what deserves attention next.
Search
Minutes Search
Search past meeting transcripts and voice memos for specific topics, people, decisions, or ideas. Use this whenever the user asks "what did we discuss about X", "find that meeting where we talked about Y", "what did Alex say", "did we decide on", "what was that idea about", or any question that could be answered by searching their meeting history. Also use for "do I have any notes about" or "check my meetings for".
Best for: Find a topic, quote, person, or decision across past transcripts.
Minutes records meetings and voice memos, transcribes them locally with whisper.cpp or Parakeet, and saves structured markdown. Speakers are identified with pyannote-rs. No audio leaves the machine unless you explicitly choose a cloud summarization backend.
Output goes to ~/meetings/ as plain files with YAML frontmatter. Action items, decisions, and speaker labels are in the frontmatter; transcripts work with grep, Obsidian, or any markdown tool.
The MCP server (29 tools, 7 resources, 6 prompt templates) is the main active agent interface. Any MCP-compatible client can search, record, query structured insights, and read live transcript deltas through it.
Add this to the MCP configuration for Claude Desktop, Claude Code, Codex, Gemini CLI, Cursor, or any MCP client. No Rust toolchain required.
{
"mcpServers": {
"minutes": {
"command": "npx",
"args": ["minutes-mcp"]
}
}
}After the first connection, the server auto-installs the CLI binary. The user then runs minutes setup --model small to download the whisper model (466 MB). Optional: minutes setup --diarization for speaker identification (~34 MB).
Minutes has five entry points. Recommend the one that matches the user's environment. This matrix is source-backed so the install steps stay aligned with the docs index and generated agent artifacts.
MCP server
When: User has Claude Desktop, Codex, Gemini CLI, Cursor, or any MCP client.
npx minutes-mcpNo Rust needed. Search, browse, and dashboard tools work with zero setup. Recording and transcription need the CLI binary on PATH or to be auto-installed on first use.
Best for: Best for agent-first search, recall, and meeting-memory workflows.
CLI
When: User wants terminal-first recording, search, import, and vault sync.
brew tap silverstein/tap && brew install minutesAlso available via cargo install minutes-cli. Requires Rust + cmake for source builds. Linux needs libasound2-dev and libpipewire-0.3-dev.
Best for: Best for local operator workflows and scripting.
Claude Code plugin
When: User works in Claude Code and wants meeting lifecycle skills and proactive hooks.
claude plugin marketplace add silverstein/minutes19 skills (brief, prep, debrief, graph, video review, and the rest of the meeting lifecycle) plus a meeting-analyst agent and SessionStart/PostToolUse hooks.
Best for: Best for workflow guidance, prep, debrief, and meeting coaching.
Pi coding agent
When: User works in Pi or wants Minutes to use pi as an opt-in local summarization agent.
piPi auto-discovers the existing .agents/skills/minutes skill pack. Set [summarization] engine = "agent" and agent_command = "pi" to use it for post-recording summaries.
Best for: Pi users who want the same local meeting memory without a Pi-specific skill export.
Desktop app
When: User wants a menu bar app with one-click recording, Recall, and artifact drafting.
brew install --cask silverstein/tap/minutesTauri v2, macOS only today. Includes command palette, dictation hotkey, live mode toggle, and auto-updates from GitHub Releases.
Best for: Best for first recording, live capture, and post-meeting artifact work.
29 tools grouped by function. Full reference with stable anchor links: /docs/mcp/tools (also available as raw markdown).
Recording
start_recordingStart capturing audio from the default input device.stop_recordingStop the current recording and trigger transcription.get_statusCheck whether a recording or live session is active.list_processing_jobsList background transcription jobs for recent recordings.Search and recall
list_meetingsList recent meetings and voice memos.get_meetingRetrieve the full transcript and frontmatter of a specific meeting.search_meetingsFull-text search across all meeting transcripts.research_topicCross-meeting research: decisions, follow-ups, and mentions of a topic.activity_summarySummarize meeting-adjacent desktop context for an artifact, session, or time window.search_contextSearch opted-in desktop context across app focus and window titles.get_momentShow the local desktop-context rewind around an artifact, session, or timestamp.People and relationships
get_person_profileBuild a profile for a person across all meetings.relationship_mapContacts with relationship scores and losing-touch alerts.track_commitmentsOpen and stale commitments, optionally filtered by person.consistency_reportFlag contradicting decisions and stale commitments.Insights
get_meeting_insightsStructured insights (decisions, commitments, questions) with confidence filtering.ingest_meetingExtract facts from a meeting into the knowledge base.knowledge_statusCurrent state of the knowledge base.Live and dictation
start_live_transcriptStart real-time transcription with per-utterance JSONL output.read_live_transcriptRead utterances from the active session with cursor or time window.start_dictationSpeak to clipboard and daily notes.stop_dictationStop dictation mode.Notes and processing
add_noteAdd a timestamped note to the current recording or an existing meeting.process_audioProcess an audio file through the transcription pipeline.open_dashboardOpen the interactive meeting dashboard in the browser.Voice and speaker ID
list_voicesList enrolled voice profiles for speaker identification.confirm_speakerConfirm or correct speaker attribution in a meeting transcript.Integration
qmd_collection_statusCheck if the meetings directory is registered as a QMD collection.register_qmd_collectionRegister the meetings directory as a QMD collection.Every meeting saves as markdown with YAML frontmatter. The frontmatter is the structured data. Action items and decisions are queryable through MCP tools and the CLI. The full field-by-field schema — every required and optional field, with examples and stability guarantees — is at docs/frontmatter-schema.md. That page is the interop contract: any tool that wants to read or produce Minutes-compatible output should target it.
---
title: Q2 Pricing Discussion
type: meeting
date: 2026-03-17T14:00:00
duration: 42m
attendees: [Alex K., Jordan M.]
action_items:
- assignee: mat
task: Send pricing doc
due: Friday
status: open
decisions:
- text: Run pricing experiment at monthly billing
topic: pricing
speaker_map:
- speaker_label: SPEAKER_0
name: mat
confidence: high
source: manual
- speaker_label: SPEAKER_1
name: alex
confidence: medium
source: llm
---
## Summary
- Agreed to test monthly billing with next three signups
- Alex will review retention data before next pricing sync
## Transcript
[SPEAKER_0 0:00] Let's talk about the pricing...
[SPEAKER_1 4:20] Monthly billing makes more sense...Meetings go to ~/meetings/. Voice memos go to ~/meetings/memos/. Both paths are configurable. File permissions are 0600 (owner read/write only).
User asks what was said about a topic
User asks about open action items
User wants to record a meeting
User asks about a person across meetings
User wants real-time coaching during a meeting
Minutes does not join video calls, capture screen shares, or act as a meeting bot. It records from local audio sources or processes audio files after the fact.
Transcription quality depends on the whisper model size and audio clarity. The small model (466 MB) is recommended. The tiny model is faster but misses quiet speech and works poorly with accented audio.
Speaker diarization is optional and requires a one-time model download. Without it, all speech is attributed to a single speaker.
Summarization requires either an active agent CLI session, a local LLM via Ollama, or a Mistral API key. Without any of these, Minutes still transcribes and extracts structured data from frontmatter.
llms.txtConcise agent index with tool names, descriptions, and doc linksllms-full.txtFull agent reference with product description and all entry points/proofHonest proof page: demo, eval v0.1 caveats, and adapter status/docs/mcp/toolsGenerated MCP tool reference with stable anchor links/docs/mcp/tools.mdSame reference as raw markdown for direct context ingestion/docs/errorsGenerated error catalog from Rust thiserror definitions/docs/errors.mdError catalog as raw markdown/docs/agent-integrationsChecklist for adding another agent host without duplicating surfacesGitHubSource, issues, and discussionsminutes-mcpMCP server npm packageminutes-sdkSDK for building on Minutes output