Skip to content

About

Local-first Personal Memory OS on macOS: turn recordings, documents, and AI conversations into memory your agents can actually reuse.

Topics

Resources

Contributing

Security policy

Stars

20 stars

Watchers

0 watching

Forks

Repository files navigation

Echo Memory / 回声记忆

License

中文文档 · Download v1.0.0 · MCP reference · Security · Contributing

Turn your recordings and AI conversations into memory your agents can actually reuse.

The decisions you made in this week's meetings and the conclusions you reached in AI chats are scattered across apps a week later — and every new AI session starts with you re-explaining your own context.

Echo Memory collects three kinds of sources into one local library on your Mac:

  • Recordings — one click records your Mac's microphone in-app (stop and it transcribes and analyzes automatically); meetings, interviews, and voice memos are also supported (USB recorders import automatically)
  • Documents — Markdown, TXT, DOCX
  • AI conversations — local Claude Code / Codex sessions, ChatGPT / Claude export archives

Transcription and analysis run entirely on your machine (Whisper + Ollama — no cloud, no per-minute caps), every conclusion can be clicked back to the exact words and timestamp it came from; citations are compared word for word against the transcript, and anything that does not match is dropped — fabricated citations are never shown. Only memories you have personally confirmed are exposed to your agents through read-only MCP — what they receive is not the AI's guess, it is the account you signed off on.

⬇ Download the signed and notarized macOS build · macOS Apple Silicon · Apache-2.0

What it is not

It is not a meeting bot, not a 24-hour recorder, and not a team collaboration tool. It does not capture system output audio (the far side of an online meeting is not recorded), there is no live transcription during recording (transcription and analysis run after you stop), and there is no Windows/mobile app and no cloud sync — these are trade-offs, not debts. It is a capture-plus-precipitation layer: record with one click in the app, or bring your own material — it makes sure that material stays usable by you and your agents later.

Three steps to start

  1. Download the DMG and drag the app into your Applications folder;
  2. Click "开始记录" on the home screen to record a clip, or drag in an existing audio file;
  3. Ask knowledge chat about a conclusion from last week and see whether it can click back to the exact words.

FAQ

  • Microphone permission denied? Allow Echo Memory under "System Settings → Privacy & Security → Microphone".
  • No Ollama installed, analysis unavailable? Clicking analysis opens the setup panel — local one-click prepare or cloud with an API key, either works.
  • Can the cloud fully replace local? Cloud covers analysis/understanding only; knowledge indexing still needs local Ollama.
  • Is there a Windows version? No Windows/mobile app, no cloud sync, no automatic meeting joining.

Why it exists

People generate valuable context continuously: meetings, calls, customer feedback, voice notes, documents, AI conversations, decisions, and follow-up results. That context is usually scattered across tools and quickly loses its connection to time, evidence, and later outcomes.

Traditional tools mainly preserve files or produce one-off summaries. Echo Memory is designed around a longer loop:

Capture -> Understand -> Connect -> Evolve -> Retrieve -> Feedback

The goal is not to save more notes. It is to preserve a person's experiences and reasoning as a durable, user-controlled context layer for future AI.

What the product already does

Capabilities from the 0.9 line

  • Memories you confirmed are now retrievable: knowledge chat runs hybrid retrieval over records and confirmed memory items, labels the two sources separately (资料原文 / 你的过往记忆), and memory citations jump back to the originating record or audio.
  • AI conversations are a first-class input: ChatGPT/Claude exports, conversational Markdown, and a local agent-session scanner (Claude Code, Codex) land as searchable records in their own lane — they stay out of the recording memory chain and out of the pending queue.
  • A personal profile (L3): a cross-snapshot, first-person summary of your stances, preferences, trajectory, and what you are watching; exposed read-only to agents through the get_my_context MCP tool.
  • Per-record analysis instructions: type a supplementary request such as "keep only action items, grouped by owner" in the record's analysis panel. It outranks the template and is enforced deterministically, while verbatim-citation and safety rules still apply to every item.
  • Chapters and verbatim quotes: long recordings get 2–6 clickable chapters that seek the player, plus 0–5 quotes that must match the transcript word for word or they are dropped.
  • The workspace groups content into 录音 / 文档 / AI 对话: each group header collapses, shows its count and supported formats, and carries that category's import entry — the entry and the content live in the same place.
  • Storage is visible and cleanable: a storage panel shows what the library occupies per category, clears regenerable intermediate files in one click, and a banner warns on low disk. Original audio is never auto-deleted.
  • Bounded self-recovery: transient transcription failures retry twice with backoff, jobs interrupted by an app quit resume on next launch, and AAC audio imports correctly.
  • Release hygiene: the release script audits the built app before notarization (sourcemaps, dev leftovers, developer paths, dev endpoints), guarding against the class of leftover-artifact leaks shipped builds get caught on.

Complete workflow

  • First-run onboarding: environment check, resumable local model downloads, and inbox setup; analysis models can be configured later in Settings without blocking first use.
  • In-app local recording: one-click microphone capture that saves, transcribes, and analyzes automatically when stopped; unsealed recordings from a crashed session can be recovered or discarded.
  • Audio inbox: watch folders and USB recorders; new audio imports, transcribes, and analyzes automatically.
  • Personal hotword vocabulary injected into transcription, with optional local LLM correction that never overwrites the original transcript.
  • Cross-record action items and open questions dashboard with completion tracking and evidence jumps.
  • Assistant dock: chat with local (or optional external) models from any view — summarize the current record, create writing, or brainstorm.
  • AI template wizard: describe your needs in conversation; a local model generates the analysis template.
  • Output folder: analyses, transcripts, and AI drafts are written as standard Markdown into a folder of your choice (e.g. an Obsidian vault).
  • Speaker diarization: optionally run the whisperX engine to separate "Speaker 1, Speaker 2…"; the embedded engine stays the zero-dependency default.
  • Speaker renaming: turn "Speaker 1" into a real name in the record detail, optionally adding it to the hotword vocabulary; action items and decisions carry the attributed owner.
  • The workspace groups records into 录音 / 文档 / AI 对话 with collapsible headers that double as the import entries for each category.
  • Imports MP3, M4A, WAV, and AAC audio with duplicate detection.
  • Imports Markdown, TXT, and DOCX documents into the same searchable library.
  • Imports AI conversation exports (ChatGPT / Claude) and local agent sessions (Claude Code, Codex) as their own content category: searchable, answerable, and kept outside the recording memory chain.
  • Transcribes audio locally with embedded Whisper or a local whisper.cpp command.
  • Optionally transcribes with a configured OpenAI-compatible third-party ASR provider. This requires a separate audio-upload consent, completed provider settings, and an API key; providers that return speaker fields can populate speaker labels without guessing.
  • Uses local Ollama models for summaries, key points, decisions, action items, and open questions. A per-record supplementary instruction can override the template's structure for that analysis.
  • Optionally sends transcript text to a separately configured OpenAI-compatible text model for structured analysis, subject to a distinct text-upload consent.
  • Adds navigable chapters and verbatim highlights to long recordings, with every item verified against the transcript.
  • Archives records from the single-record context menu, alongside moving, renaming, opening management, and deletion.
  • Preserves timestamped transcript evidence and lets users return from a conclusion to its source.
  • Organizes records into project knowledge libraries with local full-text and vector retrieval.
  • Answers questions across indexed audio, documents, and confirmed memories with openable citations and clearly separated sources.
  • Shows a day-based growth timeline across projects and records.
  • Generates versioned cognitive-evolution snapshots with reviewable evidence, narrative change summaries, and bulk confirmation, plus a first-person personal profile on top.
  • Shows per-category storage usage and clears regenerable intermediate files on demand; submitted transcription jobs retry transient failures with backoff and resume after an interrupted launch.
  • Exposes an opt-in, local, read-only MCP server for authorized AI tools.

What makes it different

Time is the backbone

Memory is not a folder tree. Events, projects, people, questions, and decisions develop in parallel. Echo Memory keeps when something happened and how later information relates to it.

Evidence is more important than a summary

Important conclusions should return to original transcript segments, timestamps, or document sources. AI inference is marked and reviewable instead of being presented as user-authored fact.

Memory keeps its history

A changed opinion is not a database error. Versioned memory preserves what was believed before, what changed, and which evidence caused the change.

Memory is callable

With user authorization, different AI tools can retrieve the context needed for a task through MCP without forcing the user to repeat the same background in every chat.

Current interface

The screenshots use synthetic demonstration data.

Home recording card

Home recording card: one click to record your Mac's microphone

Analysis setup panel

Analysis setup panel: local one-click prepare / cloud with an API key

Evidence-backed knowledge chat

Echo Memory knowledge chat

Growth timeline

Echo Memory growth timeline

Cognitive evolution

Echo Memory cognitive evolution

Local-first and user-controlled

Audio, the SQLite library, local transcription, local analysis, retrieval, and MCP remain on the Mac by default. External processing is opt-in.

Third-party ASR requires a separate audio-upload consent, a selected provider, endpoint, model, API key, and the audio-upload setting. Echo Memory must fail before creating an upload connection when any of these is missing. Third-party text analysis has its own text-send consent and never includes the audio file. Both forms of consent are enforced by the service layer rather than only by the interface. API keys are stored in macOS Keychain.

Generated cross-record memory is versioned, linked to sources, and can be confirmed or rejected. It does not overwrite original recordings, transcripts, or single-record analysis.

MCP: one memory layer for many agents

The current MCP server is local stdio, disabled by default, and read-only. It can search records, retrieve bounded transcript ranges, list projects, return project context, list action items, and read your confirmed personal profile (get_my_context). It does not open a public port or modify the library.

See the MCP reference for tools and development configuration.

Product principles

  • The user owns the memory: data should remain exportable, correctable, deletable, and revocable.
  • Original evidence outranks AI summaries: important claims must remain traceable.
  • Time and versions are preserved: new conclusions do not erase old reasoning.
  • High-impact automation is confirmable: inferred relationships and changes must be reviewable.
  • Agent access follows least privilege: tools receive only the context required for the task.
  • The system assists decisions, not replaces the user: uncertainty and conflicting evidence should remain visible.

Current boundary and direction

The current release focuses on a single-user, single-device workflow. In-app recording of your Mac's microphone is supported, but system output audio is not captured and transcription is not live during recording. Automatic meeting joining, mobile or Windows apps, cloud sync, team collaboration, public APIs, and MCP writes are not provided.

The longer-term direction is to expand from traceable conversation memory into a personal memory infrastructure that can connect events, people, projects, questions, knowledge, decisions, and outcomes across time. That direction still requires product, privacy, and user-trust validation.

Direction

Echo Memory is not defined by transcription or meeting summaries. Those are input and processing capabilities.

The long-term product has four connected layers:

  1. Personal Memory Layer: shared, permissioned context so every AI does not need to learn the user from zero.
  2. Cognitive Database: evidence-backed records of knowledge, decisions, open questions, and how beliefs change.
  3. Personal Memory OS: one system for capture, understanding, organization, retrieval, and feedback.
  4. Digital Twin Database: a long-term, correctable model of what a person experienced, knows, values, and how they make decisions.

The digital-twin direction is a product vision, not a claim that the current release can fully model a person.

Repository layout

  • app/ — the Tauri application. app/src/ is the React frontend (components, hooks, shared utilities); app/src-tauri/src/ is the Rust backend (commands, database layer, native bridge); app/src-tauri/migrations/ holds the database migrations; app/tests/ui/ and app/src-tauri/tests/ hold the frontend and backend test suites.
  • docs/ — product documentation: docs/mcp.md (MCP reference), docs/macos-signing.md (signing and notarization), docs/analysis-quality.md, docs/plans/ (design and planning notes), docs/release-notes-*.md (per-release notes, including v1.0.0), and docs/images/ (screenshots used by the READMEs).
  • benchmarks/ — performance benchmarks and sample clips.
  • .github/ — CI workflow (workflows/ci.yml) and the bug-report issue template.
  • Root files — README.md / README.zh-CN.md (this introduction), LICENSE (Apache-2.0), CONTRIBUTING.md, SECURITY.md, CITATION.cff.

Requirements

  • macOS on Apple Silicon
  • Node.js 22+, Rust stable, Cargo, and Xcode Command Line Tools
  • CMake for the first embedded Whisper build
  • A local Whisper ggml-*.bin model for transcription
  • Optional local whisper-cli / WHISPER_CPP_BIN
  • Optional local Ollama service and model for analysis
  • Optional pip install whisperx and a HuggingFace token (after accepting the pyannote model terms) for speaker diarization

Run locally

cd app
npm install
bash scripts/check-env.sh
npm run tauri dev

The default library is stored at ~/Library/Application Support/回声记忆. Use ECHO_LIBRARY_ROOT for an isolated development or test library.

Verify

cd app
npm run typecheck
npm run build
npm run test:growth
npm run test:ui
cd src-tauri
cargo fmt --check
cargo test --features mcp-bin

Project status

Echo Memory v1.0.0 is the current public release. Download the latest build from GitHub Releases. Source builds are supported. Distribution artifacts must be labeled truthfully according to their actual signing and Apple notarization status; this repository does not claim notarization unless the artifact passes the documented verification commands.

Full v1.0.0 notes (highlights, verification status, distribution SHA-256 and notarization): docs/release-notes-v1.0.0.md and the v1.0.0 release page.

Contributions are welcome. Read CONTRIBUTING.md before opening an issue or pull request, and never attach real audio, transcripts, databases, credentials, or private customer material to a public issue. Security reports should follow SECURITY.md.

License

Apache-2.0. See LICENSE.

About

Local-first Personal Memory OS on macOS: turn recordings, documents, and AI conversations into memory your agents can actually reuse.

Topics

Resources

Contributing

Security policy

Stars

20 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages