minutes
App Listed
Open-source, local-first Granola/Otter alternative that Claude Code, Codex, Cursor, and any MCP client can query. Meetings, calls, and voice memos transcribed on-device into markdown you own.
- Downloads
- 3,152
- Dependents
- Not applicable
- Stars
- 1,595
- Forks
- 182
- Contributors
- 39
- Commits
- 2,718
- Latest release
- 0.32.1 ·
About
Minutes is a free, open-source conversation memory app for the AI you already use. Record and transcribe meetings, calls, voice memos, and dictation on your device, then let Claude Code, Codex, Cursor, or another MCP client search the history you choose to share. Your records are Markdown files you own in ~/meetings/.
Capture, transcription, and storage run locally. If you choose a cloud AI assistant or summarizer, the meeting context you authorize is sent to that provider.
Your conversations. Your memory. Ready for the AI you use.

Install
Choose the desktop app or one standalone CLI installation. The desktop app includes a CLI: use About Minutes → Set up CLI to add it to your PATH.
brew install --cask silverstein/tap/minutes # Desktop app, with bundled CLI
brew install silverstein/tap/minutes # Standalone CLI alternative
cargo install minutes-cli # Standalone CLI via Cargo
For an agent connection, add the MCP server separately with
claude mcp add minutes -- npx -y minutes-mcp (or run npx minutes-mcp
from another MCP client).
If Homebrew reports an untrusted tap, run brew trust silverstein/tap once.
Read the full README
Ask your agent
Add Minutes to your agent, seed five sample meetings (no mic needed), then ask about them:
claude mcp add minutes -- npx -y minutes-mcp
minutes demo --full
What did we decide about monthly billing, and did it stick?
The answer spans two meetings a month apart: launched on Feb 28, reversed on Mar 25.
A direct MCP call uses the same local meeting files:
search_meetings({"query":"monthly billing decision"})
Record a real one with minutes record, then minutes stop to transcribe. minutes demo --clean removes the samples.
Setup: Codex, Gemini CLI, and Claude Desktop,
Cursor,
OpenCode,
Pi,
Mistral Vibe, and
Cowork or Dispatch.
Works with
Claude Code · Codex · Cursor · OpenCode · Pi · Gemini CLI · Claude Desktop · Mistral Vibe · Cowork · Dispatch · Obsidian · Logseq · any MCP client
How it compares
| Workflow | Granola | Otter.ai | Anarlog (formerly Hyprnote) | Minutes |
|---|---|---|---|---|
| Product | Hosted meeting notepad | Hosted meeting assistant | Local meeting notepad | Local conversation memory |
| Agent access | Hosted MCP | Hosted integrations | CLI + MCP | Local files, MCP, CLI, SDK |
| Primary storage | Hosted workspace | Hosted workspace | Local SQLite + files | Local Markdown + YAML |
| Local AI | Cloud transcription | Cloud transcription | With local providers | Local transcription; AI provider of your choice |
Reviewed September 5, 2026 against Granola MCP, Otter privacy and security, and the Anarlog repository. Anarlog's community app is MIT; its enterprise components use a commercial license. See the detailed comparison and open-source alternatives for fit and limitations.
Who it's for
Agent-first users treat Minutes as the capture layer of a local second brain. They search meetings through Claude Code, Cursor, Codex, OpenCode, MCP, or the CLI, then fold useful context into a vault or wiki they own.
Desktop notetaker users record and read results in the app. They value reliable setup, clear processing and recovery, Recall, documents, Coach, and summary quality. See the full persona notes.
Surfaces
| Surface | What it provides | Docs |
|---|---|---|
| Desktop app | Menu bar capture, dictation, Recall, documents, and Coach. | Install |
| CLI (60 commands) | Local recording, processing, search, import, and automation. | Commands |
| MCP server (34 tools) | Local meeting tools and resources for any MCP client. | MCP reference |
| Claude Code plugin (23 skills) | Prep, capture, live help, debrief, and memory workflows. | Client setup |
| SDK | TypeScript access to meeting files without MCP. | Agent architecture |
Dictation
The desktop Dictation settings bring writing preferences, personal spellings and snippets, microphone selection, and recent text together. Cursor context is optional and stays on the Mac. Recovery restores text for review; local edits use an explicit Ollama preview, and spelling corrections require confirmation.
See dictation behavior and evaluation boundaries for supported fields, safe insertion and undo, clipboard restoration, and the synthetic benchmark.
Output format
Meetings are plain markdown with structured YAML frontmatter:
---
title: Q2 Pricing Discussion with Alex
type: meeting
date: 2026-03-17T14:00:00
duration: 42m
context: Discuss Q2 pricing
action_items:
- assignee: mat
task: Send pricing doc
due: Friday
status: open
decisions:
- text: Test monthly billing with 10 advisors
---
See the frontmatter schema. Files work with Obsidian, grep, and any markdown tool.
Privacy & consent
- Transcription and speaker processing run on-device. Audio stays on your machine.
- Sensitive meetings save typed markers without audio and default to restricted.
- Consent reminders, acknowledgement, and provenance help you disclose recording.
- Text leaves the machine only when you send authorized context to a cloud agent or summarizer.
See the security documentation and consent enforcement design.
Docs
- Features and commands
- Install, setup, updating, and troubleshooting
- Agent and MCP client integrations
- Phone voice memo pipeline
- Summarization and automation
- Configuration
- Architecture and agent development
- Evidence, retrieval, and decision-history contracts
- Recall and speech evaluation
- Switching from Granola and importing archives
- Frontmatter schema
- Security
- Personas
- Native call capture recovery (
minutes recover-stem) - Opt-in automatic call recording for Teams and Zoom desktop on macOS
- MCP tools
- Error reference
- Agent index
- Full agent index
Contributing
See CONTRIBUTING.md. Minutes is MIT licensed and staying that way: no relicensing, no paid tier for anything in this repo.
MIT. Built by Mat Silverstein, founder of X1 Wealth.
Star History
Compatibility
- Runs on
- CUDA, Metal, Vulkan
What shows it
- CUDA: minutes-core feature cuda, minutes-cli feature cuda
- Metal: minutes-core feature metal, minutes-cli feature metal
- Vulkan: minutes-core feature vulkan, minutes-cli feature vulkan
- Native code
- Required
- Binds native code: alsa-sys, libsqlite3-sys, knf-rs-sys (feature diarize), ort-sys (feature diarize), whisper-rs-sys (feature coreml)
- Python bindings
- No Python binding crate found
- License
- MIT
Compare with similar projects
Order: strongest tier first, then most downloads, then name, with unmeasured values last. A library counts downloads over 30 days. An app counts binary downloads per release. An app with none counts its crate downloads over 30 days. ML Rust runs this catalogue, so its closest project always gets a row.
| Project | Downloads | Dependents | Stars | Latest release | Runs on (GPU) | Native code | License |
|---|---|---|---|---|---|---|---|
|
Open-source, local-first Granola/Otter alternative that Claude Code, Codex, Cursor, and any MCP client can query. Meetings, calls, and voice memos transcribed on-device into markdown you own. |
3,152 binary downloads per release | Not applicable | 1,595 | 0.32.1 | CUDA, Metal, Vulkan | Binds native code: alsa-sys, libsqlite3-sys, knf-rs-sys (feature diarize), ort-sys (feature diarize), whisper-rs-sys (feature coreml) | MIT |
|
msedge-tts Listed
This library is a wrapper of MSEdge Read aloud function API. You can use it to synthesize text to speech with many voices MS provided. |
5,349 downloads over 30 days | 3 | 27 | 0.4.1 | GPU support unknown | No native code found | Apache-2.0 OR MIT |
|
any-tts Listed
A Rust TTS library with Candle backends and runtime adapters for modern open TTS models |
3,404 downloads over 30 days | 2 | 23 | 0.2.0 | CUDA, Metal | No native code found | Apache-2.0 OR MIT |
|
Voice for the Linux desktop: dictation, read-aloud (TTS), and voice-driven LLM commands, with Groq, OpenAI, Deepgram, and local Whisper backends |
61 binary downloads per release | Not applicable | 149 | 0.2.0 | CUDA, Vulkan | Binds native code: alsa-sys, mac-notification-sys, wayland-sys (feature overlay), whisper-rs-sys (feature local-whisper) | MIT |
|
gradbot Listed
Open source framework to vibecode and prototype voice agents with Gradium APIs |
31 downloads over 30 days | 3 | 152 | 0.6.4 | GPU support unknown | No native code found | Apache-2.0 OR MIT |
|
voxr New
Audio and speech on boostr: compressed-audio decode, resampling, DSP and grapheme to phoneme, with speech synthesis (Kokoro, VITS), voice cloning (VoxCPM2), transcription with word timings (Whisper), voice activity (Silero) and audio-text scoring (CLAP), on CPU or CUDA. |
642 downloads over 30 days | 2 | 2 | 0.9.1 | CUDA | No native code found | Apache-2.0 |
Why ListedNo archive, New or Featured rule places it, so it is Listed.
What it lacks for Featured
- The check holds no value for Homebrew installs on request over 365 days, Repology repository families, Docker pull growth over 90 days. A gate that lacks its signal does not pass.
What else the check found
- The last activity is on 6 Nov 2026, 3 days ago. The rules expect an update within 365 days. Dormancy rule
Not measured: Homebrew installs on request over 365 days, Repology repository families, Docker pull growth over 90 days.
Exact rules: Listed, Featured app. The check on applied thresholds version 9.
Every rule outcome, as the check records it
expected-interval: app: E = 365 daysdormancy: last activity 2026-11-06, 3 days ago, E = 365: activefeatured: not featured: unknown homebrew_on_request_365d, repology_families, docker_pull_growth_90dlisted: listed: no archive, new or featured rule applies
Crates3 crates
- minutes-core Primary
- minutes-cli
- whisper-guard
Measurements and sources
Each signal row shows the raw value, its source and the fetch date. The Sources list gathers every distinct source on this page. Movement needs more history.
Sources6 sources
- Description: the GitHub repository description
- crates.io database dump, fetched
- GitHub releases, fetched
- GitHub repository, fetched
- crates.io package, fetched
- GitHub contributors, fetched
Adoption3,152 binary downloads per release4 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Active dependents | Not measured | Yes | ||
| New dependents (365 days) | Not measured | Yes | ||
| Peak active dependents | Not measured | Yes | ||
| Active dependents as a share of the peak | Not measured | Yes | ||
| Binary downloads per release | 3152 | GitHub releases | Yes |
MaintenanceLatest human commit: 3 days ago4 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Latest human commit | 2026-11-06 | GitHub repository | Yes | |
| Latest release | 2026-11-05 | GitHub releases | Yes | |
| First release | 2026-03-24 | crates.io database dump | Yes | |
| Latest version | 0.32.1 | crates.io database dump | No | |
| Days the oldest outside issue waits for a reply | 1 | GitHub repository | Yes | |
| Maintainer replies over 365 days | 74 | GitHub repository | Yes | |
| Repository archived | false | GitHub repository | Yes | |
| Repository gone | false | GitHub repository | Yes | |
| Release commit or manifest in the repo | true | crates.io package | No | |
| Published docs | Not measured | Yes | ||
| Latest release fails cargo check | Not measured | Yes | ||
| Build check date | Not measured | Yes | ||
| Build check toolchain | Not measured | Yes |
SecurityNot measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Unpatched vulnerabilities past the grace window | Not measured | Yes | ||
| RustSec unmaintained advisory | Not measured | Yes | ||
| Deprecation notice | Not measured | Yes | ||
| Deprecated requirement | Not measured | Yes |
Distribution54 releases, 505 downloads over 30 days6 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Releases | 54 | crates.io database dump | No | |
| Downloads over 30 days | 505 | crates.io database dump | No | |
| Binary downloads over the last 3 releases | 9456 | GitHub releases | Yes | |
| Homebrew installs on request over 365 days | Not measured | Yes | ||
| Repology repository families | Not measured | Yes | ||
| Docker pull growth over 90 days | Not measured | Yes | ||
| Docker pulls at the growth baseline | Not measured | Yes | ||
| Every version a prerelease | false | crates.io database dump | Yes | |
| Every version 0.0.x | false | crates.io database dump | Yes | |
| Every version yanked | Not measured | Yes | ||
| Crate deleted from crates.io | Not measured | Yes |
Repository1,595 stars, 182 forks, 39 contributors, 2,718 commits. Stars alone never qualify a project.
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| GitHub stars | 1595 | GitHub repository | Yes — one part of the repository route | |
| GitHub forks | 182 | GitHub repository | Yes — one part of the repository route | |
| Contributors with a GitHub account | 39 | GitHub contributors | Yes — one part of the repository route | |
| Commits on the default branch | 2718 | GitHub repository | No | |
| Repository's main crate left out of the entry | none | crates.io database dump | Yes |
Facts that never count
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| License | MIT | crates.io database dump | No | |
| Runs on, from listed crates and their direct dependencies | CUDA, Metal, Vulkan | crates.io database dump | No | |
| What shows each backend | CUDA: minutes-core feature cuda, minutes-cli feature cuda; Metal: minutes-core feature metal, minutes-cli feature metal; Vulkan: minutes-core feature vulkan, minutes-cli feature vulkan | crates.io database dump | No | |
| Native code, from listed crates and their dependencies | Binds native code: alsa-sys, libsqlite3-sys, knf-rs-sys (feature diarize), ort-sys (feature diarize), whisper-rs-sys (feature coreml) | crates.io database dump | No | |
| Python bindings, from direct dependencies of listed crates | No Python binding crate found | crates.io database dump | No | |
| Crates that depend on a listed crate directly | Not measured | No |
Corrections and review history
No correction applies to this entry.
Judgments
A judgment enters only through an approved issue and a merged pull request.
No judgment applies to this entry.