Local-first AI memory layer that gives LLMs persistent, structured memory
Project description
NexusMemo
Local-first AI memory layer that gives LLMs persistent, structured memory.
"We are building the memory operating system that turns AI from a temporary assistant into a long-term collaborator."
Problem
LLMs are stateless. They forget previous sessions, lose architectural context, repeat mistakes, and require repeated explanations. NexusMemo fixes this by building a persistent knowledge graph from your conversations.
How It Works
conversation → entity extraction → relationship graph → retrieval → prompt injection
When you tell NexusMemo something, it:
- Extracts entities, relationships, and decisions via Claude (Client-side)
- Embeds the text for semantic search
- Builds a knowledge graph with NetworkX
- Stores everything in a local SQLite database
When you query, it:
- Searches semantically similar memories
- Expands through the knowledge graph
- Reranks by importance and relevance
- Compresses into context ready for LLM injection
Quick Start
Install
pip install -e .
Configure
cp .env.example .env
# Optional configuration, but everything works locally by default
Use via CLI
# Add a memory
nexusmemo add "We replaced Airflow with Dagster because DAG maintenance became difficult"
# Search memories
nexusmemo search "What orchestration tool do we use?"
# Check status
nexusmemo status
# Get entity info
nexusmemo entity "Dagster"
Use via API
# Start the server
nexusmemo serve
# Add memory
curl -X POST http://localhost:8765/memory/add \
-H "Content-Type: application/json" \
-d '{"text": "We migrated from MongoDB to PostgreSQL for better ACID compliance"}'
# Query
curl -X POST http://localhost:8765/memory/query \
-H "Content-Type: application/json" \
-d '{"query": "What database do we use?"}'
Use with Claude Code (MCP)
The easiest way to run the MCP server is via uvx directly from PyPI.
# Add as MCP server (will automatically download and run the latest version)
claude mcp add nexusmemo -- uvx nexusmemo@latest mcp
Troubleshooting Path Issues:
If Claude Code fails to find uvx (due to PATH environment issues), provide the absolute path to your uvx executable. You can find it by running which uvx in your terminal.
# Example with absolute path (replace with your actual path)
claude mcp add nexusmemo -- ~/.local/bin/uvx nexusmemo@latest mcp
Available MCP tools:
add_memory— Store project contextsearch_memory— Query past memoriesget_project_context— Get rich context about a topicfind_related— Explore knowledge graph relationshipsget_decisions— Review past decisionsmemory_status— Check system stats
Architecture
┌──────────────┐
│ Interfaces │ CLI / FastAPI / MCP Server
├──────────────┤
│ Core │ NexusMemo orchestration class
├──────────────┤
│ Services │ Extraction, Embedding, Graph, Importance
├──────────────┤
│ Storage │ SQLite + NetworkX (in-memory)
└──────────────┘
Tech Stack
- Python 3.11+ with FastAPI
- SQLite for persistent storage
- NetworkX for in-memory knowledge graph
- FastEmbed (ONNX) for local semantic search (Zero API Keys)
- MCP SDK for native Claude Code integration
Database
Four tables:
memories— Raw text with embeddingsnodes— Knowledge graph entitiesedges— Relationships between entitiesdecisions— Project decisions with reasoning
Development
# Install with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run API server in dev mode
nexusmemo serve
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nexusmemo-0.2.4.tar.gz.
File metadata
- Download URL: nexusmemo-0.2.4.tar.gz
- Upload date:
- Size: 195.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43ed70416375c6d5154b3a42737289e2f019a433a66add3fe5046f33d786204a
|
|
| MD5 |
93b8a899befcae9b391e960d006a29e8
|
|
| BLAKE2b-256 |
343feb969f374dc36747c596e2ec3ed38e8b85c46b732363d368a3db14b834e1
|
File details
Details for the file nexusmemo-0.2.4-py3-none-any.whl.
File metadata
- Download URL: nexusmemo-0.2.4-py3-none-any.whl
- Upload date:
- Size: 23.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5bff7c515ccca9aaa297dc396e3ccaf9d8a15682d137917a72e996d78586a9e
|
|
| MD5 |
4eefcef33a1d2729e2643056910144bd
|
|
| BLAKE2b-256 |
5d34d417e3d92537328dc2433ae1926a8b6fd677c16571daa8ca8534b24f697f
|