Local-first MCP memory server with hybrid search, knowledge graph, and RAG context assembly.
SQLite + sqlite-vec + FTS5 backend. Works with any MCP client.
- Hybrid search — BM25 full-text + vector KNN + temporal scoring, fused with RRF
- Knowledge graph — entities, observations, relations with fuzzy search
- RAG context — token-budgeted context assembly with expansion + snippets
- Auto-chunking — long text split with sliding window overlap
- Multiple providers — Ollama, OpenAI, OpenRouter, Cohere (any OpenAI-compatible API)
- Auto-dimension detection — probes provider at startup, migrates DB automatically on change
- Automatic memory capture — Claude Code hooks for session recall, contextual injection, and transcript summarization
- Setup wizard — auto-detects and configures Claude Code, Claude Desktop, Cursor, Windsurf, OpenCode, Codex
uv tool install remembleUpgrade:
uv tool upgrade rememblerememble setupThe setup wizard will:
- Configure embeddings — pick a provider (Ollama, OpenAI, OpenRouter, Cohere) and model
- Configure agents — auto-detect installed AI agents and register rememble as an MCP server
- Install hooks — (Claude Code only) register session-start, prompt-submit, and session-end hooks
Non-interactive:
rememble setup --provider cohere --api-key YOUR_KEY --model embed-english-v3.0 --agents claude-code --yesProvider slugs: ollama, openai, openrouter, cohere
Agent slugs: claude-code, claude-desktop, opencode, codex, cursor, windsurf
Once configured, your AI agent gets these tools:
| Tool | Description |
|---|---|
remember |
Store a memory (auto-chunks, embeds, indexes) |
recall |
Semantic search with RAG context assembly |
forget |
Soft-delete a memory |
list_memories |
Browse memories with filters |
memory_stats |
DB statistics and provider info |
create_entities |
Create knowledge graph entities with observations |
create_relations |
Link entities in the knowledge graph |
add_observations |
Add facts to existing entities |
search_graph |
Search entities and observations |
delete_entities |
Remove entities (cascades to relations) |
Rememble also has a CLI that talks to the HTTP API server:
rememble serve -d # start HTTP server as daemon
rememble remember "project uses uv" --source manual --tags tools
rememble recall "what tools does the project use"
rememble list --source manual
rememble stats
rememble forget 42
rememble entity create --name Python --type language
rememble graph search "Python"
rememble stop # stop daemon
rememble hook session-start # (used by hooks, not direct use)
rememble hook prompt-submit
rememble hook session-endWhen set up with Claude Code, rememble installs three hooks for automatic memory capture:
| Hook | Event | What it does |
|---|---|---|
session-start |
Startup / resume | Recalls recent project context and injects it into the session |
prompt-submit |
Each user prompt | Searches memories relevant to the prompt and injects as context (5s timeout, skips trivial inputs) |
session-end |
Session close | Summarizes the transcript via LLM (Haiku), stores global + project-scoped memories |
Hooks are installed automatically by rememble setup into ~/.claude/settings.json. All hooks gracefully degrade — if the rememble server is unreachable, they return empty and Claude Code continues normally.
Config: ~/.rememble/config.json (created by rememble setup or on first run).
rememble config list # show all config
rememble config get embedding.api_url # get a value
rememble config set embedding.dimensions 512 # set a valueAll fields support env var overrides with REMEMBLE_ prefix:
| Key | Env var | Default | Description |
|---|---|---|---|
embedding.api_url |
REMEMBLE_EMBEDDING_API_URL |
http://localhost:11434/v1 |
Embedding API endpoint |
embedding.api_key |
REMEMBLE_EMBEDDING_API_KEY |
— | API key |
embedding.model |
REMEMBLE_EMBEDDING_MODEL |
nomic-embed-text |
Model name |
embedding.dimensions |
REMEMBLE_EMBEDDING_DIMENSIONS |
768 |
Fallback dimensions (auto-detected at startup) |
port |
REMEMBLE_PORT |
9909 |
HTTP server port |
Sub-configs (search.*, rag.*, chunking.*, embedding.*) are available via rememble config list.
rememble setup --provider ollama --model nomic-embed-textModels: nomic-embed-text (768d), mxbai-embed-large (1024d), all-minilm (384d), bge-large (1024d), snowflake-arctic-embed (1024d)
rememble setup --provider openai --api-key sk-... --model text-embedding-3-smallrememble setup --provider openrouter --api-key sk-or-... --model openai/text-embedding-3-smallrememble setup --provider cohere --api-key ... --model embed-english-v3.0Dimensions are auto-detected from the provider at startup. If you switch providers, the DB migrates automatically (re-embeds all existing memories).
docker compose upMounts ~/.rememble as /data. Runs the HTTP API server on port 9909.
make dev # install deps (all extras)
make test # run tests
make lint # ruff + basedpyright
make fmt # format + fix imports
make check # fmt + lint + testrememble uninstallRemoves MCP entries and instructions from all configured agents. Optionally deletes ~/.rememble/ (database + config).
MIT