Skip to main content

Adaptive Memory

Private, local memory for your coding agents. Free and open source. No cloud, no API key.

Adaptive Memory is an MCP server that gives Claude Code, Cursor, Windsurf, Cline and other local agents a long-term memory. Memories live in one SQLite file on your machine. Search is semantic (by meaning) plus keyword, using a small embedding model that runs locally. No API key, no account, no server, no Docker.

Install

Requires Python 3.10+.

pip install git+https://github.com/rakesh1308/AdaptiveMemoryEngine.git
adaptive-memory warmup   # optional: downloads the ~130 MB embedding model now, once

Check it works: adaptive-memory stats should print a JSON summary.

Claude Code

claude mcp add adaptive-memory -- adaptive-memory

Cursor / Windsurf / Cline / Claude Desktop

Add to your MCP config:

{
  "mcpServers": {
    "adaptive-memory": { "command": "adaptive-memory" }
  }
}

If your agent can't find the adaptive-memory command, use the full Python path instead: "command": "python", "args": ["-m", "adaptive_memory"].

Copy skill/adaptive-memory/SKILL.md into your agent's skills folder, for example ~/.claude/skills/adaptive-memory/SKILL.md for Claude Code. It tells the agent when to search, what to store, and what never to store.

Try it

Restart your agent, then say: "Remember that we use PostgreSQL for the main database." In a later session ask: "Which database do we use?"

Tools

Tool What it does
store_memory(key, content, tags?) Save or overwrite one fact
get_memory(key) Read one memory
search(query, limit?) Find memories by meaning and keywords
list_memories(tag?, limit?) Recent memories
delete_memory(key) Remove a memory
get_stats() Count, model, database path
export_memories() Full JSON backup

Where your data lives

Default Override
Database ~/.adaptive-memory/memory.db ADAPTIVE_MEMORY_DB
Model cache ~/.adaptive-memory/models/ ADAPTIVE_MEMORY_HOME
Embedding model BAAI/bge-small-en-v1.5 ADAPTIVE_MEMORY_MODEL

Use a different ADAPTIVE_MEMORY_DB per project if you want separate memories. To back up, copy the database file or run adaptive-memory export > backup.json.

How it works

  • One SQLite file with an FTS5 keyword index and stored vectors.
  • Search merges keyword and semantic rankings. If the embedding model can't load, it falls back to keyword search and says so.
  • Changing the embedding model re-embeds your memories automatically. Nothing is lost.
  • Brute-force vector search is fast up to tens of thousands of memories, which is far more than a coding agent will write.

study/eval_embeddings.py scores retrieval on 20 memories, 20 paraphrased questions (no shared wording, e.g. "who signs off schema changes?" for "Priya approves all database migrations") and 10 exact-term queries. Top-1 accuracy:

Embedding model (all run locally) Paraphrase Exact terms
BAAI/bge-small-en-v1.5 (default, 130 MB) 85-90% 100%
sentence-transformers/all-MiniLM-L6-v2 90% 100%
BAAI/bge-base-en-v1.5 90% 100%
Keyword search only 45% n/a

Set OPENAI_API_KEY and rerun the script to add OpenAI text-embedding-3-small to the table. The set is small, so treat the numbers as a sanity check, not a benchmark. Switch models with ADAPTIVE_MEMORY_MODEL; memories are re-embedded automatically.

Is SQLite enough? (Do I need Postgres?)

Yes for this use. Search keeps all vectors in memory and compares them with one matrix multiply. Measured median search time (384-dim vectors, 8-word memories):

Memories Search time Database size
1,000 2 ms < 1 MB
10,000 20 ms 22 MB
50,000 130 ms 111 MB
100,000 260 ms 221 MB

A coding agent writes hundreds or low thousands of memories. Postgres + pgvector only pays off with millions of memories or many users sharing one server.

Works where

Agents that run on your machine and can start a local process: Claude Code, Cursor, Windsurf, Cline, VS Code Copilot, Zed, Claude Desktop. It does not work in the claude.ai website or phone apps, which can't reach a process on your computer.

Privacy

Memories never leave your device. The only network call is the one-time model download from Hugging Face. Do not store passwords or API keys in memory.

License

Apache License 2.0. See LICENSE.

Metadata

Release files for adaptive-memory 4.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for adaptive-memory 4.0.0
File Size Uploaded Provenance
adaptive_memory-4.0.0.tar.gz 18.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for adaptive-memory 4.0.0
File Interpreter ABI Platform
adaptive_memory-4.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 34.7 kB

Release files / adaptive_memory-4.0.0.tar.gz

Download URL adaptive_memory-4.0.0.tar.gz
Size 18.6 kB
Tags Source
SHA-256 checksum
How to use checksums
86e3475b6d2ea9865714a1656e20d7a4af040d5cc78698cde9f496a5642fc2dd
BLAKE2b-256 checksum
How to use checksums
f8a87df909f0bc144cddcb13367cb62b52bbf3e93c97e223421fdfbc46e4f5da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / adaptive_memory-4.0.0-py3-none-any.whl

Download URL adaptive_memory-4.0.0-py3-none-any.whl
Size 16.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3a85611e606b6bc84c1d26ea9c01d1ad8cad6be2ab1d24e9665ed7af33337734
BLAKE2b-256 checksum
How to use checksums
4f16c3eb33d3d78e41bb68cbbd1f22c21e21e3161690ca6550cbe377bf42b6ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Security for adaptive-memory 4.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

4.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page