Local, persistent memory for AI development workflows
Project description
Engram
Local, persistent memory for AI development workflows.
Your AI assistant finally remembers your entire codebase.
The Problem
- Cursor forgets your codebase after 5 minutes
- Claude loses context mid-conversation
- Copilot suggests code that conflicts with your architecture
- You keep re-explaining the same things
The Solution
Engram creates a persistent memory layer that any AI can access via MCP.
# Index your project
engram init ~/my-project
# Configure Claude/Cursor
engram setup
# Done. Your AI now remembers everything.
Features
- Local-first — Your code never leaves your machine
- GPU accelerated — Fast indexing with MPS (Mac) or CUDA
- MCP native — Works with Claude Desktop, Cursor, and any MCP client
- Incremental updates — Only re-indexes what changed
- Crash-proof — Saves progress, resumes if interrupted
- Portable — Copy your "memory cartridge" anywhere
Supported Files
| Type | Extensions |
|---|---|
| Code | .py .js .ts .tsx .go .rs .java .rb .php .swift .c .cpp |
| Docs | .pdf .txt .md .rst |
| Config | .json .yaml .yml .toml |
| Images | .png .jpg .jpeg (OCR) |
Quick Start
Install
pip install engram-dev
Or from source:
git clone https://github.com/Tobbiloba/engram.git
cd engram
pip install -e .
Index Your Project
# Index current folder
engram init
# Index specific folder
engram init ~/projects/my-app
# Custom output name
engram init ~/projects/my-app -o my_brain
Configure MCP
engram setup
This auto-detects Claude Desktop and Cursor, and configures them.
Query From Terminal
engram query "how does authentication work"
Watch for Changes
engram watch ~/projects/my-app
Runs in background, auto-updates index when files change.
How It Works
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Files │────▶│ Chunks │────▶│ Vectors │────▶│ FAISS │
│ Code/Docs │ │ 1000 chars │ │ 384 dims │ │ Index │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
│
▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ AI │◀────│ Results │◀────│ Semantic │◀────│ MCP Server │
│ Claude │ │ Top 5 │ │ Search │ │ │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
- Index — Engram scans your files and creates chunks
- Embed — Each chunk becomes a 384-dimension vector (local model, no API)
- Store — Vectors saved to FAISS index (fast similarity search)
- Query — MCP server exposes
query_memorytool to AI assistants - Search — AI asks questions, gets relevant code/docs back
CLI Commands
| Command | Description |
|---|---|
engram init [folder] |
Index a folder |
engram query "..." |
Search from terminal |
engram watch [folder] |
Start background watcher |
engram status |
Show index stats |
engram setup |
Auto-configure MCP |
Manual MCP Configuration
If engram setup doesn't work, add manually:
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"engram": {
"command": "/path/to/engram/venv/bin/python",
"args": ["/path/to/engram/server.py", "/path/to/your_engram"]
}
}
}
Cursor
Edit ~/.cursor/mcp.json:
{
"mcpServers": {
"engram": {
"command": "/path/to/engram/venv/bin/python",
"args": ["/path/to/engram/server.py", "/path/to/your_engram"]
}
}
}
Requirements
- Python 3.9+
- ~2GB disk space (for model + index)
- For OCR:
brew install tesseract poppler
Tech Stack
- Embeddings: sentence-transformers/all-MiniLM-L6-v2 (runs locally)
- Vector Store: FAISS
- GPU: MPS (Apple Silicon) / CUDA (NVIDIA) / CPU fallback
- Protocol: MCP (Model Context Protocol)
Roadmap
- Local vector indexing
- MCP server
- GPU acceleration
- Incremental updates
- Background watcher
- Temporal memory (what changed recently?)
- Git-aware context
- Architecture insights
- Desktop app
See ROADMAP.md for details.
Contributing
PRs welcome! See CONTRIBUTING.md for guidelines.
License
MIT — Use freely, modify freely, share freely.
Built for developers who are tired of re-explaining their codebase.
Project details
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 engram_dev-0.1.2.tar.gz.
File metadata
- Download URL: engram_dev-0.1.2.tar.gz
- Upload date:
- Size: 26.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
461941d4e06458c69baece32e560bcaa40e79fcb6c34e95c54d60e068ed67df0
|
|
| MD5 |
5947e3dd0d51ff170f3dd7c8373df74e
|
|
| BLAKE2b-256 |
d2d11a108e6de77933cb1978bd865d23c4133572cc2139086c4cd405cce0776f
|
File details
Details for the file engram_dev-0.1.2-py3-none-any.whl.
File metadata
- Download URL: engram_dev-0.1.2-py3-none-any.whl
- Upload date:
- Size: 28.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
774498bd15898b2296e6b1d6fc3556372d50cd51b4a6d7624e0ed98f37cb0ccc
|
|
| MD5 |
f212368adf45cd15e52f40d5d7595786
|
|
| BLAKE2b-256 |
88f29368f2f8e976a19f520e716e84a8377302e117a133f14d7a8bd50c00b7e3
|