darwin-memo

Official registry AI and agents

Self-curating agent memory kept honest by survival-based selection over measured outcomes.

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

PYPI package darwin-memo
Claude Code
claude mcp add darwin-memo -e 'DARWIN_MEMO_PATH=<DARWIN_MEMO_PATH>' -- uvx darwin-memo==0.7.1 mcp
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "darwin-memo": {
            "command": "uvx",
            "args": [
                "darwin-memo==0.7.1",
                "mcp"
            ],
            "env": {
                "DARWIN_MEMO_PATH": "<DARWIN_MEMO_PATH>"
            }
        }
    }
}

Environment variables

  • DARWIN_MEMO_PATH Path to the persistent memory file (default ~/.darwin-memo/memory.json)

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. darwin-memo
  2. See the mechanism in 60 seconds
  3. Install the development workflow
  4. Connect one repository
  5. Understand retention
  6. Inspect the evidence
  7. Limitations and participation

darwin-memo

Measured memory for coding agents. Keep repository lessons, connect them to reported task outcomes, and inspect why each lesson stays or is removed.

Start with Python projects using pytest, GitHub Actions, and an MCP client. The core uses only the Python standard library. MCP support is an optional extra.

The product goal is lower total operating cost while preserving task success. That benefit is not established by the committed experiments. A smaller memory store or a larger energy balance is not a savings measurement.

See the mechanism in 60 seconds

From this reviewed checkout:

python -m pip install -e .
darwin-memo demo --out /tmp/darwin-demo.json
darwin-memo ui /tmp/darwin-demo.json

The demo uses a filesystem-backed simulation: file deletion uses file size, and protected-file recreation incurs a modeled penalty of three times that size. It does not measure restoration scratch space, I/O cost, or money. Open a lesson in the dashboard to inspect its settlements and removal reason.

To try the coding workflow with a real failing evaluation, use the fixed pytest example. Its authentication-retry defect changes one fixed case from failure to success. The example demonstrates settlement; it does not establish that memory caused the fix.

Install the development workflow

The init and task commands in this checkout are unreleased. Install them from the reviewed checkout on Python 3.10 or later:

python -m pip install -e '.[mcp]'

Build the dashboard from this checkout before packaging it:

npm ci --prefix ui
npm run build --prefix ui

Persistence requires POSIX advisory locks on a local filesystem. Windows and shared network stores are unsupported; the package refuses lockless persistence.

Connect one repository

  1. Run darwin-memo init --profile github-pytest at your repository root.
  2. Configure your MCP client using .darwin-memo/mcp.example.json.
  3. Add a repository lesson and query memory before a task.
  4. Bind the returned ticket to the repository, task, base commit, and fixed evaluation.
  5. Complete the task and commit the bound store with your changes.
  6. Run the generated GitHub Actions workflow against that task commit.
  7. Download its outcome artifact and carry the accepted store forward.
  8. Open the dashboard to inspect the reported outcome and retained lesson.

The GitHub pytest guide includes setup requirements and the generated operating instructions. init refuses overwrites and changes no global agent settings. The recommended MCP configuration exposes query, add, and inspection while reserving settlement and retention mutations for the host. It reduces accidental self-awarded credit; it does not protect against a malicious actor with write access to the store, evaluation, or workflow.

The workflow compares the same base evaluation at both commits. Added passing tests earn no credit. Green-to-green results earn zero. Missing observations or infrastructure failures abstain and leave the ticket pending. Bound settlements record repository, task, commit, run, evaluation fingerprint, and report hashes. Process one task at a time: independent Git snapshots do not merge.

Understand retention

A query retrieves lessons and opens a ticket. A later outcome moves the consulted lessons' bounded energy balances. Ticks charge upkeep; entries that reach the floor are removed, and similar entries can merge. Pinning exempts a lesson from removal and consolidation. The glossary explains the terms.

Settlement associates outcomes with consulted lessons. It does not establish causation. Passing tests are observable outcomes, not physically conserved resources. ci, operator, and agent identify reporting paths. Historical measured labels are caller claims; absent provenance is unknown. None of these labels authenticates a report by itself.

CLI, dashboard, and MCP mutations lock the full load–modify–save operation. MCP reloads on each call, cached embeddings survive unrelated writes, and stale Python writers are rejected. Retry the whole operation after contention. See the store format and API reference.

Inspect the evidence

QuestionEvidenceWhat it supports
What happens under corrupted feedback?Central attack-table reconstruction, committed observationsA controlled simulated comparison with a modeled restoration penalty, including failure boundaries
Does a tuned counter compete?Counter sweep, paperNegative findings for universal superiority; tuned forgiveness can retain useful memory under small attack budgets
Does memory reduce total coding cost while preserving success?Prospective protocolAn unanswered question; historical results lack the required complete cost comparison and noninferiority evidence
Can users complete and retain the workflow?Pilot and release recordPending external observation; no fabricated adoption counts

Reconstruct the paper's central table without an installation or network:

python tools/reconstruct_paper.py

The paper, Attacking the Curator, focuses on the feedback-corruption threat model, curator comparisons, and a reusable reproduction artifact. Historical replays remain replays. Read the claim audit, reproduction paths, and submission status.

Limitations and participation

Memory can be harmful, useful lessons can starve, and an attacker who controls enough outcome reports can control retention. A fixed evaluation can still be incomplete or gameable. The threat model defines the boundary. If no memory performs best in the cost study, the release will report that result.

Other integrations remain available; the GitHub pytest profile is the supported first-release path. Report setup failures with the diagnostic issue template, or choose a bounded contributor task. Release promotion, participant contact, paid experiments, and submission remain separate authorized actions.

Frequently asked questions

What is darwin-memo?

Self-curating agent memory kept honest by survival-based selection over measured outcomes.

How do I install darwin-memo?

It runs on your machine. In Claude Code: claude mcp add darwin-memo -e 'DARWIN_MEMO_PATH=<DARWIN_MEMO_PATH>' -- uvx darwin-memo==0.7.1 mcp. For other clients, paste the JSON configuration from this page into their MCP settings.

Does darwin-memo need an API key?

Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.

Is darwin-memo open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains darwin-memo?

It is published by rogermsc. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.