Skip to main content
Glama

lflabs-memory-engine

The memory engine inside Dawnmere: one long-term memory on your Mac, shared by your AI apps (Claude Code, Codex, Cursor and other MCP apps).

Memories live in one SQLite file in your Library folder. Search runs on your Mac: vectors (sqlite-vec), keywords (SQLite FTS5) and a reranker, with small ONNX models on the CPU. Apps reach it through an MCP server; Claude Code also gets hooks that recall into each prompt and queue finished sessions for saving.

You probably want Dawnmere, not this repo. The Dawnmere installer installs this engine, downloads and checks the models, starts the background service and connects your apps:

curl -fsSL https://dawnmere.app/install | sh

The installer, the dawnmere command, the Claude Code plugin and the connector live in Hadeva-Dev/dawnmere (MIT). This repo is the engine's source, published so you can read and check what runs on your Mac: storage, search, the screening of saved text, and what each app may see.

Version 0.1.5, early beta. This repo gets one commit per release.

License

Source-available under the Functional Source License, Version 1.1, MIT Future License (FSL-1.1-MIT).

  • You may use, copy, change and share it for any purpose except a competing use: making it available to others in a commercial product or service that substitutes for it or offers substantially similar functionality. Internal use, non-commercial education and non-commercial research are expressly permitted. LICENSE has the exact terms.

  • Each version becomes available under the MIT license two years after it was released.

Related MCP server: claude-memory-mcp

Requirements

  • macOS 14 or later on Apple silicon (onnxruntime ships no wheels for Intel Macs)

  • Python 3.12 or 3.13, arm64, and uv

  • About 60 MB of models, plus 250 MB for the optional sensitivity model

Run it by itself

uv tool install --managed-python --python 3.12 .
lflabs-memory --help

--managed-python makes uv use its own arm64 Python, not an x86_64 one that may be first on your PATH.

Every model file, with its URL, size and sha256, is listed in src/lflabs_memory/models.json. The engine checks each file's size and sha256 before loading it and refuses anything that does not match. lflabs-memory paths prints where the models, the database and the settings go.

lflabs-memory add "The staging server is staging.example.com" --kind reference
lflabs-memory search "staging server"
lflabs-memory serve          # the MCP server an app runs
lflabs-memory daemon         # the background service: keeps models loaded, saves from finished sessions

lflabs-memory COMMAND --help shows one command's arguments. How memories are filed into sections, and which sections each app may see, is in docs/SECTIONS.md.

Everything the engine writes is in one folder, created readable only by you: $LFLABS_MEMORY_HOME, else ~/Library/Application Support/LF Labs/Memory.

Tests

uv sync
LFLABS_MEMORY_MODELS=~/path/to/models uv run python -m unittest discover -s tests

LFLABS_MEMORY_MODELS points at a folder holding the models (they are not in git). The suite runs in a temporary data folder as a plain install whose user is called Robin (tests/_env.py); no test touches a real one.

Bugs and changes

Report bugs in Dawnmere's issues, with the output of dawnmere doctor --report. For anything bigger than a small fix, open an issue before a pull request. By contributing you agree that your change is licensed FSL-1.1-MIT.

Contributors

Hao Lin and Dennis Freyman. This repository starts from a single public commit, so earlier authorship is credited here.

Security

Please do not open a public issue. Email hello@dawnmere.app, or use Report a vulnerability on the Dawnmere repo. Say what you found, how to reproduce it, and which version you ran.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • -
      license
      Not graded
      quality
      Not graded
      maintenance
      Provides persistent local memory functionality for AI assistants, enabling them to store, retrieve, and search contextual information across conversations with SQLite-based full-text search. All data stays private on your machine while dramatically improving context retention and personalized assistance.
      3
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides persistent long-term memory for LLMs via local SQLite storage and semantic search, enabling recall across sessions without external APIs.
      15 npm
      5
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Gives AI agents persistent, local-first memory using SQLite and on-device embeddings, enabling semantic search and recall across sessions with no cloud calls.
      8
      9
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to keep durable long-term memory on the user's own machine, writing sessions and messages into a local SQLite database and retrieving them via keyword, exact, or optional semantic search with surrounding context. Runs entirely offline over stdio, so no cloud service or API key is required to give an agent recall across sessions.
      1
      MIT