# minutes — full agent reference

> Generated file. Do not edit by hand.
> Source: manifest.json + crates/mcp/src/index.ts + site/lib/skills-catalog.json
> Last generated: 2026-06-25

## Product

Minutes is an open-source meeting corpus you own. Record, transcribe, search, and query every meeting and voice memo on your own disk. No cloud, no vendor to outlive. Output is structured markdown in `~/meetings/` that Claude Desktop, Claude Code, Codex, Gemini CLI, Cursor, OpenCode, Pi, and any MCP-compatible client read from the same folder, without a proprietary SDK or API key. Ten years from now, `grep` still works on your corpus.

31 tools • 7 resources • Interactive MCP App dashboard • Prompt templates

**What's new in 0.18.14:**
• **The macOS window-lifecycle crash is closed.** The desktop app could crash on WebKit/AppKit frame reconciliation when the main window was revealed, resized, or rebuilt. All window frame mutations now run through Rust-owned, visibility-guarded paths, the reveal helper is idempotent and unminimizes correctly, the frontend's window-mutation capabilities are removed, and the Recall layout no longer fires no-op frame changes. Thanks to Caleb Chong.
• **Zoom call detection handles vanity meeting URLs.** Calendar detection now recognizes Zoom links on vanity subdomains (company.zoom.us / .zoom.com), personal-link and dashed-host forms, and unwraps Google Calendar redirect wrappers. Thanks to Caleb Chong.
• **App settings persist reliably.** Several Settings toggles (global hotkey, completion notifications) could appear to change in the app but not write to config.toml or revert on restart. The settings round-trip was audited and hardened with a guard test.

**What's new in 0.18.13:**
• **Recordings warn before they capture silence.** If macOS has not granted microphone permission (for example after an app update re-signed Minutes), recording now warns or blocks at the start with the exact fix, instead of producing a silent file you discover after the meeting. A call that can still capture the other side warns and proceeds; a mic-only recording blocks. Covers meetings, memos, dictation, and live transcript.
• **Zoom call detection works with non-default input devices.** macOS native call detection could miss an active Zoom call when Zoom used an input route other than the system default. Detection now attributes active microphone input to the call app's process, so it no longer misses the call (and no longer false-positives when a dictation tool is the active mic consumer). Thanks to Caleb Chong for the fix and Quinn for confirming the related Windows menu rendering fix.

**What's new in 0.18.12:**
• **No more WebKit crash on tray hide/show.** The main window kept a transparent, vibrancy-backed WebView alive while it was hidden and re-shown from the tray, which could trip a WebKit frame-update crash on macOS 26. The window is now opaque (no visible change, the UI already paints solid surfaces) and the crash is gone.
• **Dismissing the meeting prompt no longer crashes the app.** Every dismissal path (Dismiss, X, Escape, auto-close, the 60s timeout) now closes the prompt window through a native destroy deferred out of the JS frame, instead of a self-close that could crash WebKit. Thanks to Caleb Chong for both fixes.

**What's new in 0.18.11:**
• **The macOS app bundle ships a real CLI.** Since 0.16.2, CI-built bundles contained a placeholder script instead of the CLI binary, so the in-app Set up CLI flow produced a CLI that printed an error and exited. The release pipeline now builds the CLI before bundling, hard-fails if a placeholder would ever ship again, and verifies the bundled binary after the build. If you used Set up CLI before: update the app, then run Set up CLI again.

**What's new in 0.18.10:**
• **The desktop app can find ffmpeg now.** Dock-launched macOS apps get a minimal PATH, so every ffmpeg call inside the desktop app silently failed and audio decoding fell back to the slower pure-Rust path. A shared resolver checks the MINUTES_FFMPEG override, then PATH, then standard Homebrew and system locations, and `minutes health` reports which ffmpeg it resolved.
• **The whisper model loads once per file, not once per silence gap.** Voice-activity detection splits long recordings into chunks and each chunk paid a full model load: a 49-minute meeting loaded the model 227 times. One context now loads per file and is shared across chunks, with per-chunk decode state unchanged.
• **Dev builds pass Gatekeeper's seal check.** Build scripts now sign inside-out (nested binaries first, then the bundle), so quarantined copies no longer report as "damaged".
• **Homebrew tap trust, documented.** If brew warns "Skipping silverstein/tap because it is not trusted", run `brew trust silverstein/tap` once; the README and site now say so.
• **Granola import, clarified.** The README and CLI error message now explain that the export directory must be populated by a separate tool first, and point to the API-based granola-to-minutes route.

**What's new in 0.18.9:**
• **Sensitive meetings: a first-class no-capture mode.** Designate a meeting sensitive and Minutes records nothing; you still get a real meeting file built from your typed markers and a guided debrief, marked `capture: none` so future agent-policy layers can respect it. Start and stop from the palette, tray, or `minutes sensitive start/stop`.
• **Require mode now truly gates desktop recording.** With consent mode set to require, every recording entry point (button, palette, tray, hotkey, automation) shows the same blocking confirmation before capture starts; Cancel leaves nothing behind.
• **Calendar permission status tells the truth.** macOS can silently downgrade calendar access to Add-Only, which kills meeting reminders while everything claims healthy (it bit us for weeks). Readiness and the tray now report the observed access state with the exact fix path.
• **In-window Cmd+K.** Plain Cmd+K opens the command palette when the Minutes window has focus; the global binding stays Cmd+Shift+K.
• **Sensitive meeting cards are useful.** The detail view shows a purposeful no-capture card with a one-click Run debrief that hands the meeting to your assistant.
• **Fixes.** CLI version parsing respects semver prerelease/build suffixes; repo install docs use rm-then-copy so a rebuilt binary can never invalidate its own signature under a running process; a new Using Minutes user guide is live on the site.

**What's new in 0.18.8:**
• **Live Parakeet transcription is fast by default.** The warm sidecar that keeps the model resident between utterances now enables itself whenever Parakeet is your engine and the `example-server` binary is present; no hidden setting to discover. Status surfaces report the real state (warm server, or cold per-utterance with the fix linked) instead of a misleading 'Warm: yes'. A legacy `parakeet_sidecar_enabled = false` that earlier versions wrote into every config is recognized as a serializer artifact and treated as auto; forcing the sidecar off is now "off" in config.toml.
• **`minutes setup --parakeet` checks the live-sidecar binary.** If `example-server` is missing it says so and prints the build recipe, instead of letting live mode silently run slow.
• **Dead settings removed.** Desktop-context domain allow/deny lists were accepted by settings and documented but enforced nowhere; they are gone until real enforcement exists.

**What's new in 0.18.7:**
• **Recording consent, built in.** A new consent layer stamps every recording's consent basis into the meeting frontmatter, with an optional disclosure reminder before each meeting recording and a Require mode that blocks CLI recording until confirmed (the desktop app reminds for now; a blocking confirmation is coming). Configure it in Settings or under `[consent]` in config.toml. It is a disclosure aid, not legal advice: make sure everyone present has agreed where required.
• **Live transcripts no longer go silent mid-meeting.** A slow or wedged transcription call could starve live mode's audio pipeline, freezing the live transcript while the recording itself stayed healthy. Transcription now runs on a dedicated worker with a bounded queue, the first seconds of a meeting are no longer lost to model loading, and stuck engine calls time out and retry on CPU.
• **pi and opencode summaries no longer hang.** Agents that take their prompt as a file argument blocked forever on an unused stdin pipe and timed out on every summarization. Fixed across all three agent spawn paths. Thanks to Geert Theys (@gtheys) for the diagnosis and the fix.
• **Stale Retry cards no longer appear at launch.** The startup notice for a failed recording could promise a retry after its raw capture had already been cleaned up, and Retry then failed with "audio file missing." The notice now verifies the capture still exists before offering it.
• **Desktop call capture docs corrected.** The desktop app records calls natively via ScreenCaptureKit: no BlackHole needed. The audio guide now leads with that and reserves BlackHole for the CLI path. Thanks to @dean815 for pushing on this.

**What's new in 0.18.6:**
• **USB conference speakerphones no longer lose native call recordings.** A quiet mic stem (a far-field mic plus the device's own echo cancellation) was misread as empty, so the whole call was discarded as unrecoverable. Minutes now scans the full mic stem for audio instead of only the opening seconds, so a call that starts with the far end speaking is captured correctly. Thanks to @jmh1313 for the detailed report.
• **Codex and Gemini summaries no longer silently degrade.** When summarization ran from outside a git repo (the normal case for the desktop app), Codex and Gemini refused to start in an untrusted directory and the meeting fell back to a degraded summary. Both now bypass the directory-trust check for the read-only summary pass.
• **Back on crates.io.** minutes-cli and minutes-core are published to crates.io again, so `cargo install minutes-cli` works for Linux and Windows users who do not use Homebrew.

**What's new in 0.18.5:**
• **macOS: an idle Minutes no longer slows down your whole Mac.** When Minutes sat idle, usually hidden in the menu bar, its status refresh repainted the translucent main window every couple of seconds even when nothing had changed. On macOS that makes the window server re-blend the entire frosted-glass surface each time, so over a few hours it pegged a CPU core and made scrolling and switching apps stutter across the whole system. Idle refreshes now skip redundant redraws, so a hidden, idle Minutes leaves your Mac alone. Windows and Linux were not affected.
• **The AI assistant is now optional.** If you do not have an agent CLI installed (Claude Code by default), Minutes no longer auto-opens the assistant panel and then fails to launch it. It degrades quietly, the rest of the app keeps working, and the assistant shows a calm note that it is optional. Thanks to Mike (@mquinn614) for the fix.

**What's new in 0.18.4:**
• **Windows: the app no longer hangs on quit.** Quitting on Windows (tray Quit, window close, any exit path) could leave the process alive indefinitely: window hidden, tray icon lingering, a Not Responding overlay, with Task Manager the only way out. An unconditional join on the assistant PTY reader thread blocked shutdown because Windows ConPTY never delivers EOF when the child is killed. The join is now bounded and then detached, so quit always completes within a moment. macOS and Linux were never affected. Thanks to Quinn (@mquinn614) for the precise diagnosis and the fix.

**What's new in 0.18.3:**
• **Windows live transcript no longer reports a frozen session.** On Windows, a live transcript session holds its PID file under a mandatory OS lock, which made status reads fail and report the session as inactive, so the in-app Live timer and line count froze at 0:00 and a concurrent recording could clobber the shared transcript file. Minutes now treats a held lock as proof the session is alive. macOS and Linux were never affected. Thanks to Quinn (@mquinn614) for the report and diagnosis.
• **Richer MCP `get_meeting` output.** Structured meeting content returned over MCP is more complete.
• **Clearer desktop recording feedback.** Recording-start failures are now surfaced instead of failing silently, and processing stages read more clearly.

**Also new in 0.18.2:**
• **Manual meeting ingest accepts normal YAML dates.** `minutes ingest` now accepts hand-authored frontmatter like `date: 2024-05-14` and local timestamps without an offset, while keeping existing RFC3339 timestamps working.
• **Manual files no longer need a synthetic duration.** Ingested markdown that omits `duration` now defaults to `0s`, which is enough for knowledge-base extraction and avoids a second confusing validation failure.

**Also new in 0.18.1:**
• **Native-call recovery no longer strands usable audio.** If macOS native capture leaves recoverable `.voice.wav` / `.system.wav` stems but the primary `.mov` is missing, empty, or incomplete, Minutes now queues a processable recovery input instead of leaving the capture under `~/.minutes/native-captures`.
• **Recovered native captures stay native.** Successful jobs preserve the source `.mov` artifact beside the meeting markdown rather than renaming it to `.wav`, so future reprocessing can rediscover and mix the sibling native-call stems correctly.
• **Manual recovery is less confusing.** `minutes import <audio-file>` now accepts ordinary audio paths as a recovery alias for meeting processing, while `minutes process <path> --type meeting` remains supported.
• **Artifact cleanup understands native sidecars.** Delete, archive, and retention logic now include preserved `.mov` artifacts and their native stem sidecars without double-counting shared stems.

**Also new in 0.18.0:**
• **More honest failed-capture output.** Near-silent recordings and long silent tails are guarded so Minutes does not present hallucinated non-speech markers or unrelated YouTube-style filler as real transcript content.
• **Dual-AAC native-call .mov files transcribe correctly.** macOS call captures with separate voice/system AAC tracks are mixed before transcription instead of producing doubled-duration garble.
• **Summarization timeouts degrade explicitly.** Meetings with transcript output but failed summary generation now show structured degraded status instead of pretending the meeting is complete.

**Known follow-ups:** call-end auto-stop reliability (#129) and multi-party remote-speaker diarization quality (#169) remain open. This release focuses on Windows live transcript reliability and MCP output completeness; manual ingest/frontmatter compatibility shipped in 0.18.2 and native-capture recovery in 0.18.1.

**Setup:** `npx minutes-mcp` gets you search, browsing, and the dashboard right away. For recording and transcription, Minutes can auto-install the CLI on first use, or you can install it yourself with `brew install silverstein/tap/minutes` or `cargo install minutes-cli`, then run `minutes setup --model tiny`, `minutes setup --parakeet`, or `minutes setup --demo`.

**What Minutes already gives you:**
• Filesystem-as-API: meetings land as YAML-frontmatter markdown in `~/meetings/`. Every agent reads the same source of truth. No vendor lock-in.
• Start/stop live meeting recordings
• Process audio files (WAV, M4A, MP3, OGG), Looms, and ScreenPal recordings
• Local transcription with Whisper or Parakeet. Nothing leaves your machine.
• Speaker diarization, native, no Python required
• Dictation mode for clipboard and daily notes
• Live transcript reads for mid-meeting AI coaching
• Desktop-context rewind and activity summaries around recordings and live sessions
• Full-text search across every meeting and memo
• Decisions, commitments, questions, and relationship context across meetings
• Agent Event Bus for local workflow automation
• An interactive MCP App dashboard inside Claude conversations

**Privacy:** all audio processing happens locally via whisper.cpp or parakeet.cpp plus pyannote-rs. Summarization is opt-in; the OpenAI-compatible backend points wherever you tell it (including local servers). No audio is sent anywhere unless you explicitly enable a cloud summary backend, and even then only the transcript text travels. Agent Event Bus entries are local files on your disk.


## Choose your surface

- MCP server
  - When: User has Claude Desktop, Codex, Gemini CLI, Cursor, or any MCP client.
  - Install: `npx minutes-mcp`
  - Best for: Best for agent-first search, recall, and meeting-memory workflows.
  - Notes: No 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.
- CLI
  - When: User wants terminal-first recording, search, import, and vault sync.
  - Install: `brew tap silverstein/tap && brew install minutes`
  - Best for: Best for local operator workflows and scripting.
  - Notes: Also available via cargo install minutes-cli. Requires Rust + cmake for source builds. Linux needs libasound2-dev and libpipewire-0.3-dev.
- Claude Code plugin
  - When: User works in Claude Code and wants meeting lifecycle skills and proactive hooks.
  - Install: `claude plugin marketplace add silverstein/minutes`
  - Best for: Best for workflow guidance, prep, debrief, and meeting coaching.
  - Notes: 19 skills (brief, prep, debrief, graph, video review, and the rest of the meeting lifecycle) plus a meeting-analyst agent and SessionStart/PostToolUse hooks.
- Pi coding agent
  - When: User works in Pi or wants Minutes to use pi as an opt-in local summarization agent.
  - Install: `pi`
  - Best for: Pi users who want the same local meeting memory without a Pi-specific skill export.
  - Notes: Pi auto-discovers the existing .agents/skills/minutes skill pack. Set [summarization] engine = "agent" and agent_command = "pi" to use it for post-recording summaries.
- Desktop app
  - When: User wants a menu bar app with one-click recording, Recall, and artifact drafting.
  - Install: `brew install --cask silverstein/tap/minutes`
  - Best for: Best for first recording, live capture, and post-meeting artifact work.
  - Notes: Tauri v2, macOS only today. Includes command palette, dictation hotkey, live mode toggle, and auto-updates from GitHub Releases.

## Canonical entry points

- Website: https://useminutes.app
- Agent entry point: https://useminutes.app/for-agents
- Proof and eval caveats: https://useminutes.app/proof
- Concise agent index: https://useminutes.app/llms.txt
- MCP tools reference (HTML): https://useminutes.app/docs/mcp/tools
- MCP tools reference (Markdown): https://useminutes.app/docs/mcp/tools.md
- Error reference (HTML): https://useminutes.app/docs/errors
- Error reference (Markdown): https://useminutes.app/docs/errors.md
- Support: https://github.com/silverstein/minutes/discussions

## Tool surface

- `start_recording` — Start recording audio from the default input device Docs: https://useminutes.app/docs/mcp/tools#tool-start-recording
- `stop_recording` — Stop the current recording and process it Docs: https://useminutes.app/docs/mcp/tools#tool-stop-recording
- `get_status` — Check if a recording is currently in progress Docs: https://useminutes.app/docs/mcp/tools#tool-get-status
- `list_processing_jobs` — List background processing jobs for recent recordings Docs: https://useminutes.app/docs/mcp/tools#tool-list-processing-jobs
- `list_meetings` — List recent meetings and voice memos Docs: https://useminutes.app/docs/mcp/tools#tool-list-meetings
- `search_meetings` — Search meeting transcripts and voice memos Docs: https://useminutes.app/docs/mcp/tools#tool-search-meetings
- `get_meeting` — Get full transcript of a specific meeting Docs: https://useminutes.app/docs/mcp/tools#tool-get-meeting
- `activity_summary` — Summarize meeting-adjacent desktop context for a linked artifact, context session, or time window Docs: https://useminutes.app/docs/mcp/tools#tool-activity-summary
- `search_context` — Search desktop-context events across app focus and captured window titles, including opted-in browser titles Docs: https://useminutes.app/docs/mcp/tools#tool-search-context
- `get_moment` — Show the local desktop-context rewind around a linked artifact, session, or timestamp Docs: https://useminutes.app/docs/mcp/tools#tool-get-moment
- `process_audio` — Process an audio file through the transcription pipeline Docs: https://useminutes.app/docs/mcp/tools#tool-process-audio
- `add_note` — Add a timestamped note to the current recording or an existing meeting Docs: https://useminutes.app/docs/mcp/tools#tool-add-note
- `consistency_report` — Flag conflicting decisions and stale commitments Docs: https://useminutes.app/docs/mcp/tools#tool-consistency-report
- `get_person_profile` — Build a profile for a person across all meetings Docs: https://useminutes.app/docs/mcp/tools#tool-get-person-profile
- `research_topic` — Research a topic across meetings, decisions, and follow-ups Docs: https://useminutes.app/docs/mcp/tools#tool-research-topic
- `qmd_collection_status` — Check if the Minutes output directory is registered as a QMD collection Docs: https://useminutes.app/docs/mcp/tools#tool-qmd-collection-status
- `register_qmd_collection` — Register the Minutes output directory as a QMD collection Docs: https://useminutes.app/docs/mcp/tools#tool-register-qmd-collection
- `start_dictation` — Start dictation mode — speech to clipboard and daily notes Docs: https://useminutes.app/docs/mcp/tools#tool-start-dictation
- `stop_dictation` — Stop dictation mode Docs: https://useminutes.app/docs/mcp/tools#tool-stop-dictation
- `track_commitments` — List open and stale commitments, optionally filtered by person Docs: https://useminutes.app/docs/mcp/tools#tool-track-commitments
- `relationship_map` — All contacts with relationship scores and losing-touch alerts Docs: https://useminutes.app/docs/mcp/tools#tool-relationship-map
- `list_voices` — List enrolled voice profiles for speaker identification Docs: https://useminutes.app/docs/mcp/tools#tool-list-voices
- `confirm_speaker` — Confirm or correct speaker attribution in a meeting transcript Docs: https://useminutes.app/docs/mcp/tools#tool-confirm-speaker
- `get_meeting_insights` — Query structured meeting insights (decisions, commitments, questions) with confidence filtering Docs: https://useminutes.app/docs/mcp/tools#tool-get-meeting-insights
- `start_live_transcript` — Start a live transcript session for real-time meeting transcription Docs: https://useminutes.app/docs/mcp/tools#tool-start-live-transcript
- `read_live_transcript` — Read utterances from the active live transcript with optional cursor or time window Docs: https://useminutes.app/docs/mcp/tools#tool-read-live-transcript
- `open_dashboard` — Open the Meeting Intelligence Dashboard in the browser — visual overview of conversation memory Docs: https://useminutes.app/docs/mcp/tools#tool-open-dashboard
- `ingest_meeting` — Extract facts from a meeting and update the knowledge base (person profiles, log, index) Docs: https://useminutes.app/docs/mcp/tools#tool-ingest-meeting
- `knowledge_status` — Show the current state of the knowledge base — configuration, adapter, people count, log entries Docs: https://useminutes.app/docs/mcp/tools#tool-knowledge-status
- `add_agent_annotation` — Append attributed agent commentary as an agent.annotation event, never editing meeting markdown or frontmatter (allowlist-gated by ~/.minutes/agents.allow) Docs: https://useminutes.app/docs/mcp/tools#tool-add-agent-annotation
- `get_agent_annotations` — Read append-only agent.annotation events separately from human-authored meeting markdown and frontmatter Docs: https://useminutes.app/docs/mcp/tools#tool-get-agent-annotations

## Resource surface

- `ui://minutes/dashboard` — Interactive meeting dashboard and detail viewer Docs: https://useminutes.app/docs/mcp/tools#resource-minutes-dashboard
- `minutes://meetings/recent` — List of recent meetings and memos Docs: https://useminutes.app/docs/mcp/tools#resource-recent-meetings
- `minutes://status` — Current recording status Docs: https://useminutes.app/docs/mcp/tools#resource-recording-status
- `minutes://actions/open` — All open action items across meetings Docs: https://useminutes.app/docs/mcp/tools#resource-open-actions
- `minutes://events/recent` — Recent pipeline events (recordings, processing, notes) Docs: https://useminutes.app/docs/mcp/tools#resource-recent-events
- `minutes://events/agent-annotations` — Recent append-only agent.annotation events, separate from human meeting markdown Docs: https://useminutes.app/docs/mcp/tools#resource-agent-annotations
- `minutes://ideas/recent` — Recent voice memos and ideas captured from any device (last 14 days) Docs: https://useminutes.app/docs/mcp/tools#resource-recent-ideas
- `minutes://meetings/{slug}` — Get a specific meeting by its filename slug Docs: https://useminutes.app/docs/mcp/tools#resource-meeting

## Claude Code Plugin skill surface

Workflow-level skills that wrap MCP tools into operator motions. Install in Claude Code via `claude plugin marketplace add silverstein/minutes` then `/plugin install minutes@minutes`. The same skills ship as a portable pack at `.agents/skills/minutes/` for Codex / Gemini CLI and at `.opencode/skills/` + `.opencode/commands/` for OpenCode. New skills must declare `metadata.site_category`, `metadata.site_example`, and `metadata.site_best_for` in `tooling/skills/sources/<name>/skill.md`.

### Artifacts

- `/minutes-video-review` — Turn a Loom, ScreenPal, or local walkthrough video into a durable artifact bundle for agent review.
  - Description: Review a demo, walkthrough, or bug video into a durable brief.
  - Example: `/minutes-video-review https://go.screenpal.com/watch/...`
  - Docs: https://useminutes.app/for-agents#minutes-video-review

### Capture

- `/minutes-cleanup` — Archive or delete old recordings when storage starts piling up.
  - Description: Manage old recordings — find large files, archive old meetings, delete processed originals.
  - Example: `/minutes-cleanup`
  - Docs: https://useminutes.app/for-agents#minutes-cleanup
- `/minutes-list` — Browse recent meetings and voice memos when you need to find the right artifact first.
  - Description: List recent meetings and voice memos.
  - Example: `/minutes-list`
  - Docs: https://useminutes.app/for-agents#minutes-list
- `/minutes-note` — Drop a timestamped note into the current recording or annotate a past one.
  - Description: 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.
  - Example: `/minutes-note Alex wants monthly billing`
  - Docs: https://useminutes.app/for-agents#minutes-note
- `/minutes-recap` — Get a same-day digest across meetings and voice memos.
  - Description: Generate a daily digest of today's meetings and voice memos — key decisions, action items, and themes across all recordings.
  - Example: `/minutes-recap`
  - Docs: https://useminutes.app/for-agents#minutes-recap
- `/minutes-record` — Start or stop a meeting, call, or voice memo recording.
  - 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.
  - Example: `/minutes-record`
  - Docs: https://useminutes.app/for-agents#minutes-record
- `/minutes-setup` — Walk a first-time user through getting Minutes ready to record.
  - Description: Guided first-time setup for Minutes — download whisper model, create directories, configure audio input.
  - Example: `/minutes-setup`
  - Docs: https://useminutes.app/for-agents#minutes-setup
- `/minutes-verify` — Health-check the install, models, mic, and stale state before trusting it in production.
  - Description: Verify that Minutes is properly set up and working — model downloaded, mic accessible, directories exist, no stale state.
  - Example: `/minutes-verify`
  - Docs: https://useminutes.app/for-agents#minutes-verify

### Coaching

- `/minutes-mirror` — Review your own talk-time, hedging, and performance patterns across meetings.
  - Description: 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".
  - Example: `/minutes-mirror`
  - Docs: https://useminutes.app/for-agents#minutes-mirror
- `/minutes-tag` — Label a meeting outcome in five seconds so later coaching gets smarter.
  - Description: 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.
  - Example: `/minutes-tag won`
  - Docs: https://useminutes.app/for-agents#minutes-tag

### Intelligence

- `/minutes-graph` — Query who mentioned what across all meetings as a relationship graph.
  - Description: 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.
  - Example: `/minutes-graph everyone who mentioned Stripe`
  - Docs: https://useminutes.app/for-agents#minutes-graph

### Knowledge

- `/minutes-ideas` — Surface recent voice memos and loose ideas captured from any device.
  - Description: Surface recent voice memos and ideas captured from any device.
  - Example: `/minutes-ideas`
  - Docs: https://useminutes.app/for-agents#minutes-ideas
- `/minutes-ingest` — Extract structured facts from meetings into an external knowledge base.
  - Description: Extract facts from meetings and update your knowledge base — person profiles, chronological log, and index.
  - Example: `/minutes-ingest`
  - Docs: https://useminutes.app/for-agents#minutes-ingest
- `/minutes-lint` — Audit meeting memory for contradictions, stale commitments, and decision conflicts.
  - Description: Health-check your meeting knowledge for contradictions, stale commitments, and decision conflicts.
  - Example: `/minutes-lint`
  - Docs: https://useminutes.app/for-agents#minutes-lint

### Lifecycle

- `/minutes-brief` — Get a fast one-page brief before an upcoming meeting.
  - Description: Fast meeting briefing from your conversation memory.
  - Example: `/minutes-brief`
  - Docs: https://useminutes.app/for-agents#minutes-brief
- `/minutes-debrief` — Turn the latest meeting into decisions, follow-ups, and what changed from prep.
  - Description: Post-meeting debrief tied back to prep and decisions.
  - Example: `/minutes-debrief`
  - Docs: https://useminutes.app/for-agents#minutes-debrief
- `/minutes-prep` — Do a deeper relationship brief and talking-point prep before an important call.
  - Description: Interactive meeting prep from your conversation history.
  - Example: `/minutes-prep Alex`
  - Docs: https://useminutes.app/for-agents#minutes-prep
- `/minutes-weekly` — See weekly themes, stale commitments, and what deserves attention next.
  - Description: Weekly meeting synthesis — themes, decision arcs, stale commitments, and what deserves your attention next week.
  - Example: `/minutes-weekly`
  - Docs: https://useminutes.app/for-agents#minutes-weekly

### Search

- `/minutes-search` — Find a topic, quote, person, or decision across past transcripts.
  - Description: 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".
  - Example: `/minutes-search pricing strategy`
  - Docs: https://useminutes.app/for-agents#minutes-search
