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.
- 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.
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.
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.
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-runWithout the optional transcribe dependencies, ingest/search still works after
transcripts are available.
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 codexdispatch 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.
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
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.
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.0The MCP server exposes read-first tools for recent memos, transcript search, recording detail, action candidates, marking reviewed, prompt preparation, and digest rendering.
python3 -m venv .venv
. .venv/bin/activate
pip install -e ".[transcribe]"
python3 -m pytest
python3 -m voice_memo_hub.cli --help- 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.
Apache License 2.0 - Copyright 2026 Voice Memo Hub contributors.