Architecture / Minutes

Local-first conversation memory

Minutes captures audio and imports, runs a local processing pipeline, writes durable meeting markdown, and exposes that memory to desktop, CLI, MCP, and agent workflows without making the markdown corpus depend on any one surface.

Minutes architecture Architecture diagram showing capture surfaces flowing into minutes-core, durable markdown and sidecar stores, then minutes-mcp and agent clients. LOCAL-FIRST MEMORY PLANE CAPTURE PROCESS ARTIFACTS QUERY SURFACES INGEST CONTROL WRITE INDEX STATE TOOLS RECALL CONTEXT READ FILES WORKFLOWS EXT Audio and imports mic / loopback / memos UI Desktop app and CLI record / watch / live / note CORE 01 minutes-core capture / transcribe / diarize / summarize MEM 02 ~/meetings/*.md durable source of truth IDX Local sidecars graph.db / context.db / JSONL / WAV MCP 03 minutes-mcp tools / resources / interactive UI EXT Agents and apps Codex / Claude / OpenCode / Obsidian LEGEND Primary contract Surface / service Local sidecar state External input / client Primary flow Secondary workflow

Durable contract

The markdown corpus is the product

~/meetings/*.md is the durable memory surface. If the sidecar databases disappear, the conversation corpus still exists as files that any agent or human tool can read directly.

Why sidecars exist

Recall gets faster without swallowing the source

graph.db and context.db keep relationship, artifact, and desktop-context indexes local and adjacent. They enrich recall and MCP workflows without becoming the only place the truth lives.

Surface strategy

One backend, many ways in

The desktop app and CLI handle capture and operator workflows. minutes-mcp turns the same local memory plane into agent tools, resources, and interactive dashboards for Codex, Claude, OpenCode, and related clients.