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.
README
Voice Memo Hub
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
.m4afiles 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 runtimeoutbox/.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
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.