ANAMNE
Local-first, brain-inspired memory for Claude, Cursor, ChatGPT, and any MCP-compatible AI tool. Your AI tools remember what you told them — across sessions, models, and machines.
About this project: Personal open-source project, released under the MIT license. Not a commercial product, not for sale, not seeking compensation. Bug reports and PRs are welcome; support is best-effort and provided on the maintainer's own time. No service-level agreement is implied.
What this is
AI tools forget you between sessions. Every new chat starts from zero — re-explaining what you're building, what you've decided, what your preferences are.
ANAMNE is a local memory layer that any MCP-compatible AI can read from and write to. You tell it things once. Every Claude / Cursor / ChatGPT session after that has access through the MCP protocol.
pip install anamne
anamne init
# Tell it something once
anamne remember "we use Postgres because we need concurrent writes"
anamne journal "Fixed Stripe webhook double-fire: idempotency key was wrong"
# Ask it later (or have your AI do it via MCP)
anamne ask "why did we pick our database?"
That's the loop. Everything else is variations on capture and recall.
Why "brain-inspired"
ANAMNE is built around three memory layers from the LIGHT framework and the Agent Cognitive Compressor:
| Layer | What it stores | Decay |
|---|---|---|
| Episodic | Git commits, ADRs, architectural decisions | Bi-temporal (valid_until) |
| Scratchpad | Durable facts you wrote down | ACT-R activation (recency × frequency) |
| Working | Active session context, reminders | TTL (auto-expires) |
When you ask a question, all three layers are searched in parallel. Top results are combined and cited back. Lower-ranked results are compressed into a single summary before being sent to the LLM — the ACC paper's idea of bounded compressed state.
The framing is a useful metaphor grounded in real research, not a neuroscience claim.
Setup
pip install anamne
anamne init
The wizard picks a model based on which API key it finds:
| Model | How to enable | Cost | Quality |
|---|---|---|---|
| Gemini 2.5 Flash Lite | GEMINI_API_KEY=... in .env |
Free tier | Good |
| Claude Sonnet 4.6 | ANTHROPIC_API_KEY=... in .env |
~$0.003/commit | Best |
Data lives in ~/.anamne/ (SQLite + ChromaDB). Nothing leaves your machine.
From source:
git clone https://github.com/venumittapalli576/anamne && pip install -e .
The MCP integration (why this matters)
Once anamne init runs, the same memory is available to every AI tool
that speaks MCP. Add ANAMNE to your client config and Claude / Cursor /
Cline can call remember, ask_why, search_facts, and 18 other tools
directly — no copy-paste, no context windows to refill.
anamne mcp-config # print Claude Code config snippet
anamne mcp-config --apply # write it into ~/.claude.json directly
anamne mcp-config --client cursor
The result: when you open Claude on Monday, it already knows what you
decided on Friday. Across machines if you sync ~/.anamne/.
MCP troubleshooting
"My MCP client connected but no anamne tools appear." The MCP server boots as a subprocess of the host (Claude/Cursor/Cline). Use
anamne --versionto confirm at least v1.0.2 is on yourPATH; earlier versions refused to start without an API key. Then runanamne tools— if it lists 21 tools, the surface is healthy and the issue is on the client side (restart it).
"
anamneresolves to an old version." Runpip install --upgrade anamne(orpip install -e .from a clone). The path that ends up in~/.claude.jsonis whateveranamne.exeresolves to at the time you ranmcp-config --apply— it doesn't update automatically when you upgrade.
"Episodic recall doesn't return anything." Run
anamne statusand checkEpisodic decisions. Zero means you haven't indexed a repo yet — runanamne index <path-to-your-repo>.
"How do I verify the integration end-to-end without restarting Claude?" Run
pytest tests/test_mcp_integration.py -vagainst a clone of the repo. It spawnsanamne mcp-serveras a subprocess and does a real MCPinitialize+tools/listhandshake. Same code path Claude uses.
The five commands you actually need
anamne remember "..." # capture a durable fact
anamne journal "..." # timestamped capture (auto-tagged)
anamne ask "..." # cross-layer recall with citations (uses LLM)
anamne search "..." # fast no-LLM search of scratchpad
anamne mcp-server # hand the memory to Claude / Cursor / Cline
Everything else is convenience on top of these.
Full command surface
The v1.0 stable surface is documented in STABLE.md.
Run anamne --help for the menu, or anamne <command> --help for any
specific one. Highlights:
Capture: remember, journal, import-web, import-chat,
capture-clipboard, working
Recall: ask, search, search-working
Manage: facts, info, edit, tag, pin/unpin, forget,
prune, consolidate, dedupe, clear, forget-tag, tag-rename
Episodic: index <repo>, sync <repo>, watch
Inspect: tags, status, stats, history, doctor
Backup: export, import-memory, backup
Interfaces: mcp-server, mcp-config, tools, shell, ui
A 60-second tour
# Capture
anamne remember "I always use pytest, not unittest" --tag python --tag testing
anamne remember "we deploy on Fridays only" --auto-tag
# Bulk import
anamne import-web https://12factor.net
anamne import-chat ~/Downloads/claude-conversation.json
# Index a repo to capture WHY decisions from git history
anamne index ./my-project
# Recall
anamne ask "what's our deploy policy?"
anamne search postgres
anamne facts --tag python
# Browse everything in your browser
anamne ui
Honest limitations
- Output quality depends on what you capture. Vague memories give vague answers.
- Indexing a large repo costs a few dollars on paid APIs (free on Gemini within rate limits).
- MCP integration only works in MCP-aware editors (Claude Code, Cursor, Cline, a few others).
- This is a personal project. Bug reports may sit for a while. Not production infrastructure.
- The "brain-inspired" framing is a metaphor. It's grounded in real cognitive-architecture research (ACT-R, LIGHT, ACC) but it isn't a neuroscience claim.
Why not Mem0 / Supermemory / MemGPT?
Those tools are SDKs for app developers — they require their backend and target SaaS builders. ANAMNE is for individuals who use AI tools daily.
| ANAMNE | Mem0 / Supermemory | |
|---|---|---|
| Where the data lives | Your machine | Their backend |
| Hosting required | None (SQLite + ChromaDB) | Yes |
| MCP-native | Yes (21 tools) | No |
| Target user | Individual humans | SaaS builders |
| Open source | MIT | Various |
If you want a memory layer for your end-product, use Mem0 or Supermemory. If you want a memory layer for yourself, use ANAMNE.
Research grounding
- LIGHT (arXiv 2510.27246) — three-layer memory framework with layer-priority conflict resolution
- ACT-R (Anderson & Lebiere 1998) —
A_i = ln(Σ t_j^-d)decay formula; every retrieval is timestamped inretrieval_log - Agent Cognitive Compressor (arXiv 2601.11653) — bounded compressed state: top-K verbatim, tail compressed
- Hippocampal indexing theory — long-term storage as compressed patterns
- Lore protocol (arXiv 2603.15566) — git as a knowledge graph
License
MIT. Open source. Bring your own key. Zero telemetry.
Maintainer notes
Pushing a vX.Y.Z tag triggers PyPI publish via Trusted Publishing:
git tag v1.0.0 && git push origin v1.0.0
One-time setup: add a Trusted Publisher at
https://pypi.org/manage/account/publishing/ — repo venumittapalli576/anamne,
workflow publish.yml, environment pypi.
Metadata
Release files for anamne 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| anamne-1.1.0.tar.gz | 154.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| anamne-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 263.4 kB
Release files / anamne-1.1.0.tar.gz
| Download URL | anamne-1.1.0.tar.gz |
|---|---|
| Size | 154.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f4305ebc4180b7ad19ecb823c24f5a87773c3b0a56193ffcacab3a5bfb9ff22d
|
|
BLAKE2b-256 checksum How to use checksums |
17e5af24efe1ae62bd5e867e771ddaa296e05e236fea2aac1cd399683896980b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 21, 2026.
Transparency logRelease files / anamne-1.1.0-py3-none-any.whl
| Download URL | anamne-1.1.0-py3-none-any.whl |
|---|---|
| Size | 109.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f04b8512efca2f0bcad2a354cf8a1c7ca4ae78e1d5b6ca615bd6ee843b141b3a
|
|
BLAKE2b-256 checksum How to use checksums |
665ed679df8fd6920f24ff0a821cb209aeab55812f4e615d61253b4e67d79c38
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 21, 2026.
Transparency log