Skip to main content
Glama

Dawnmere

One long-term memory on your Mac, shared by your AI apps. Tell Claude Code a project decision on Monday, and Codex and Cursor know it on Tuesday. The memory is one file on your Mac; search runs on your Mac with small local models.

Early beta. This repo holds the installer, the dawnmere command, the Claude Code plugin and the connector your apps run to reach the memory. The memory itself is the engine, which the installer sets up for you.

Install

curl -fsSL https://github.com/Hadeva-Dev/dawnmere/releases/latest/download/install.sh | sh

You need:

  • a Mac with Apple silicon (M1 or later) and macOS 14 or later, with 1 GB of free disk space;

  • Node.js 18 or later, for your apps to use memory's tools (recall, remember, forget);

  • Claude Code 2.1.301 or later, if your Claude plan is to do the background reading (optional).

The installer downloads uv if you do not have it, then the dawnmere command and the engine. It checks every download against the sha256 written into it, and installs nothing if one differs. Then it starts dawnmere setup.

If dawnmere is not found afterwards, add ~/.local/bin to your PATH, as the installer says:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc

Related MCP server: SharedMemory MCP Server

What setup does

dawnmere setup first shows what it does and what it changes, and asks before changing anything. Then it asks:

  1. what your AI apps should call you;

  2. whether to use your Claude plan for background reading (or an Anthropic API key instead, kept in your Keychain);

  3. whether Cursor may see your personal notes (no, unless you say yes);

  4. whether to import the notes Claude Code already keeps in ~/.claude/projects/*/memory.

Then it shows each step as it runs:

step

what happens

Claude Code

checks that claude is there and logged in

Search models

downloads the search models (about 310 MB) and checks each file's sha256

Memory service

starts a background service (a LaunchAgent) that keeps search fast

Your apps

connects Claude Code, Codex and Cursor, if they are installed (below)

Your notes

imports your Claude Code notes

Self-check

saves a test memory, finds it the way Codex and Cursor would, then deletes it

It ends with "Dawnmere is on." and a line to try. Every file setup changes is copied first, next to it (<file>.lflabs-backup-<time>), and recorded so dawnmere uninstall can put it back. You can run setup again, for example to choose a model later. dawnmere setup --dry-run prints every change it would make and makes none.

Without a model (dawnmere setup --backend none), recall and remember still work; automatic saving is off.

Your apps

Setup connects these when it finds them:

  • Claude Code: installs the lflabs-memory plugin from this repo, which gives Claude Code memory's tools and four hooks: recall into each prompt, and saving after a session goes quiet. If the plugin cannot be installed, setup adds the same tools with claude mcp add and the hooks to ~/.claude/settings.json.

  • Codex: adds [mcp_servers.lflabs-memory] to ~/.codex/config.toml and a prompt hook to ~/.codex/hooks.json. Type /hooks once in Codex to trust the hook.

  • Cursor: adds lflabs-memory to ~/.cursor/mcp.json and a session-start hook to ~/.cursor/hooks.json. Restart Cursor. Cursor sees work notes only; dawnmere access cursor everything lets it see your personal notes too, and dawnmere access cursor work takes that back.

  • Claude Desktop and other apps with MCP settings: setup does not connect them. Add the connector by hand, for Claude Desktop in ~/Library/Application Support/Claude/claude_desktop_config.json:

    {
      "mcpServers": {
        "lflabs-memory": {
          "command": "npx",
          "args": ["-y", "dawnmere-connector@0.1.0"]
        }
      }
    }

    The connector's README has the lines for other apps.

Commands

command

what it does

dawnmere setup

connect your apps to one memory on this Mac

dawnmere doctor

check that everything works, one line per check, and say what to do about each problem

dawnmere export

save your memory to ~/Downloads/dawnmere-export-<date>.json (--format md for Markdown)

dawnmere import FILE

add the memories from an export file, skipping any already there

dawnmere access APP [LEVEL]

show or change what an app may see: everything, work or nothing

dawnmere update

install the newest release, checked against its checksums

dawnmere uninstall

remove everything setup added

dawnmere doctor --report prints counts only (no memory text, names or paths), safe to paste into an issue.

Uninstall

dawnmere uninstall

It stops and removes the background service, takes memory out of Claude Code, Codex and Cursor (putting each file back as it was before setup, or removing only our entries if you changed the file since), removes the API key from your Keychain, and removes the dawnmere and engine programs. It always asks before deleting your memory, which cannot be brought back; say no, or use --keep-data, to keep it. The backups setup made stay next to each file, and uninstall lists them.

Where things live

what

where

your memory, settings and models

~/Library/Application Support/LF Labs/Memory/ (only you can read it)

the service's log

~/Library/Logs/LF Labs/memory.log

the background service

~/Library/LaunchAgents/com.lflabs.memory.plist

the programs

~/.local/share/uv/tools/lflabs-memory-cli/, linked as ~/.local/bin/dawnmere and lflabs-memory

an Anthropic API key, if you gave one

your login Keychain, as "LF Labs Memory"

Privacy

Your memory stays on your Mac. It is never uploaded, and nothing is sent to LF Labs. There is no usage data.

What does go over the network:

  • Background reading, if you chose a model: after a Claude Code session goes quiet, that conversation goes to your own model provider (your Claude plan through Claude Code, or the Anthropic API with your key) to pick out what is worth remembering. At most 200 calls a day.

  • Downloads: the installer, uv, Python and the engine's Python packages (from GitHub and PyPI); the search models and the Claude Code plugin (from this repo on GitHub); the connector (from npm, when an app starts it). dawnmere update asks GitHub for the newest release.

  • Setup's check of your model: one short test call to Claude Code or the Anthropic API.

Each app decides for itself what it sends to its own model, including what it recalls from memory.

License

The installer, the dawnmere command, the plugin and the connector: MIT (LICENSE). The engine: FSL-1.1-MIT. The models keep their own licenses (dawnmere doctor --licenses), and the setup screen's wordmark is drawn from the Fredoka font (THIRD_PARTY.md).

Available Tools

4 tools
access_statusWhat this app can seeA
Read-only

Use this when the user asks what this app can see in their memory, or why something is hidden from it.

Inputs: no named parameters.

forgetForget a memoryA
DestructiveIdempotent

Use this when a memory recall showed is wrong, out of date, or the user asks you to forget it. Retires that one memory; it can be restored later.

Inputs: id (required).

recallRecall from memoryA
Read-only

Use this when the answer may depend on something the user told you or another of their AI apps before: their preferences, projects, decisions or people. Searches the user's memory by meaning and keywords.

Inputs: query (required), k, section.

rememberSave to memoryA

Use this when the user tells you something worth knowing in future conversations, in any of their AI apps: who they are, a preference, a decision, a person, a pointer. One self-contained fact per call: a first line that sums it up, then the detail. A near-duplicate updates the older memory.

Inputs: content (required), kind, project.

Tool Schema Changelog

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

    TDQS

    A3.9/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool maps to a clearly distinct operation in a memory lifecycle: search (recall), create/update (remember), retire (forget), and inspect visibility (access_status). There is no meaningful overlap; an agent can select the right tool from the user's intent alone.

    Naming Consistency4/5

    recall, remember, and forget form a consistent single-verb pattern, but access_status breaks it as a verb_noun compound. Still readable and predictable enough that agents will not misroute based on naming.

    Tool Count5/5

    Four tools is well-scoped for a focused memory service, with each tool earning its place in a compact read/write/delete/status surface. Nothing feels padded or missing at the count level.

    Completeness3/5

    Create, search, and delete are covered, and near-duplicate handling in remember effectively provides update. However, forget explicitly says memories can be restored later but no restore tool is exposed, and there is no explicit update operation outside near-duplicate detection—notable gaps for a memory lifecycle.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Gives Claude Desktop, Cursor, Cline, and other MCP-compatible AI tools persistent memory, enabling them to store and recall information seamlessly across sessions.
      9 npm
      1
      Apache 2.0
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI apps such as Claude, ChatGPT, Cursor, VS Code and Codex to share one searchable memory, so a fact told to one app can be recalled in another with the exact line, speaker and date it came from. Users sign in per app and can allow read-only or read-and-write access, saving, correcting or forgetting memories and disconnecting apps at any time.
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Gives every Claude surface (claude.ai, Desktop, mobile, Office add-ins, Claude Code) read and write access to the memories, transcripts and notes produced by Claude Code instances on all of your machines, with hybrid keyword and semantic search. Runs as a self-hosted remote MCP server with GitHub allowlist authentication, secret redaction and audit logging.
      MIT