voice-memo-hub

voice-memo-hub

Enables read-first interaction with Apple Voice Memos: search transcripts, review action candidates, mark reviewed, prepare tasks for Codex, and render digests.

Category
Visit Server

README

Voice Memo Hub

Python Status License

Voice Memo Hub turns Apple Voice Memos into a local inbox for transcription, search, review, and safe Codex workflow handoff.

It is designed for an always-on Mac that ingests synced Voice Memos, transcribes them locally when configured, indexes them in SQLite, and prepares bounded workflow candidates for humans or agents to review.

Alpha: this project is early. CLI flags, policy shape, data schema, and install flow may change before beta.

What It Does

  • Reads Apple Voice Memos metadata from the local synced Voice Memos container.
  • Copies new .m4a files into a managed private archive outside the repo.
  • Stores durable metadata in SQLite.
  • Indexes transcripts with SQLite FTS5.
  • Optionally transcribes locally with MLX Whisper.
  • Extracts conservative action candidates for review.
  • Applies narrow external automation policy for safe local handling.
  • Exposes a small stdio MCP server for Codex and other clients.

Privacy Model

The repo contains code, docs, and generic examples only. Runtime data belongs outside git:

~/Library/Application Support/voice-memo-hub/

That runtime directory may contain raw audio, transcripts, logs, policy files, workflow state, and local outbox files. Do not commit it.

Automation policy is runtime configuration, not app code. See docs/POLICY.md.

Current Status

This repo is in public alpha. The core local workflow is available:

  • ingest synced Apple Voice Memos
  • transcribe selected recordings with optional local dependencies
  • search transcripts
  • extract and review action candidates
  • prepare Codex task prompts
  • run a narrow safe automation dispatcher
  • serve read-first MCP tools

Known limitations:

  • macOS Voice Memos storage is private app data and can be affected by Apple sync and privacy behavior.
  • launchd may need a host-specific access workaround on some Macs.
  • automatic action execution is intentionally limited to local status updates, local outbox files, and fixed-template notifications.
  • no hosted API or packaged installer is provided yet.
  • schema migrations are not stabilized for long-lived external users.

Quick Start

Prerequisites: macOS, Python 3.9+, local access to the synced Voice Memos container, and optional MLX Whisper dependencies for transcription.

git clone https://github.com/OWNER/voice-memo-hub.git
cd voice-memo-hub
python3 -m venv .venv
. .venv/bin/activate
pip install -e ".[transcribe]"
memo doctor
memo ingest
memo list
memo search "idea"
memo transcribe --pending --limit 2 --max-duration-seconds 1800
memo actions --extract
memo inbox
memo automate --dry-run

Without the optional transcribe dependencies, ingest/search still works after transcripts are available.

Common Commands

memo doctor
memo run-once --transcribe --limit 2 --max-duration-seconds 1800 --apply-policy
memo digest --limit 10
memo policy
memo policy --check <action_id>
memo automate --dry-run
memo approve <action_id> --note "reason"
memo prepare-codex-task <action_id>
memo dispatch <action_id> --runner codex

dispatch records a handoff in workflow_runs; it does not execute arbitrary work by itself. Codex should use prepare-codex-task as the safe prompt source.

Default Paths

Voice Memos source:

~/Library/Group Containers/group.com.apple.VoiceMemos.shared/Recordings

Voice Memo Hub runtime:

~/Library/Application Support/voice-memo-hub

External policy:

~/Library/Application Support/voice-memo-hub/config/policy.json

Automation Safety

The dispatcher only runs allowlisted action types:

  • mark_reviewed: local database status update.
  • prepare_codex_task: writes a prompt file under runtime outbox/.
  • local_notification: fixed-template macOS notification.

External writes, deploys, commits, pushes, public posts, email, work-system updates, and device-control actions should remain manual or approval_required policy rules.

See config/automation-policy.example.json for a generic starter policy.

Codex MCP

Voice Memo Hub includes a stdio MCP server for Codex:

[mcp_servers.voice_memo_hub]
command = "/path/to/voice-memo-hub/.venv/bin/python"
args = ["-m", "voice_memo_hub.mcp_server"]
startup_timeout_sec = 30.0

The MCP server exposes read-first tools for recent memos, transcript search, recording detail, action candidates, marking reviewed, prompt preparation, and digest rendering.

Documentation

Development

python3 -m venv .venv
. .venv/bin/activate
pip install -e ".[transcribe]"
python3 -m pytest
python3 -m voice_memo_hub.cli --help

Community And Support

  • Use GitHub Issues for bugs and concrete feature requests.
  • Security reports should follow SECURITY.md.
  • External contributions are welcome after alpha expectations are documented in CONTRIBUTING.md.

License

Apache License 2.0 - Copyright 2026 Voice Memo Hub contributors.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured