Engram
Gives coding agents a persistent, searchable project memory stored locally in SQLite
Local project memory shared by coding agents, kept per Git repository in SQLite
By Le_Ho (individual) TypeScript Local · stdio, Streamable HTTP Knowledge and memoryDeveloper tools
69 popularity score ★ 915 ↓ 1.1k/wk
Opens the app, which asks before it adds the server.
claude mcp add --transport http memorix http://localhost:3211/mcp{
"mcpServers": {
"memorix": {
"url": "http://localhost:3211/mcp"
}
}
}{
"servers": {
"memorix": {
"type": "http",
"url": "http://localhost:3211/mcp"
}
}
}[mcp_servers.memorix]
url = "http://localhost:3211/mcp"gemini mcp add --scope user --transport http memorix http://localhost:3211/mcpOpens the app, which asks before it adds the server.
claude mcp add memorix -- npx -y memorix serve{
"mcpServers": {
"memorix": {
"command": "npx",
"args": [
"-y",
"memorix",
"serve"
]
}
}
}{
"mcpServers": {
"memorix": {
"command": "npx",
"args": [
"-y",
"memorix",
"serve"
]
}
}
}{
"servers": {
"memorix": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"memorix",
"serve"
]
}
}
}[mcp_servers.memorix]
command = "npx"
args = ["-y", "memorix", "serve"]gemini mcp add --scope user memorix npx -- -y memorix serveMEMORIX_MODE |
Optional: Tool profile: micro (stdio default, 9 tools), lite, team or full. |
|---|---|
MEMORIX_LLM_API_KEY |
Optional: Key for the optional LLM used in memory formation; ATLASCLOUD_API_KEY or REQUESTY_API_KEY also work for those providers. |
MEMORIX_EMBEDDING_API_KEY |
Optional: Key for the optional embedding provider; OPENROUTER_API_KEY is accepted for OpenRouter. |
MINIMAX_API_KEY |
Optional: MiniMax key for billed image and video generation (MINIMAX_CN_API_KEY for the China region). |
MEMORIX_MCP_MEDIA_GENERATION |
Optional: Set to 1 to let MCP clients request MiniMax generation; off by default. |
MEMORIX_SYNC_PROVIDER |
Optional: Turns on opt-in multi-device sync to GitHub JSONL, filesystem, S3 or Postgres. |
Memorix keeps a searchable memory for a software project so that facts, fixes, design decisions and session summaries outlive a single chat. The memory belongs to the Git repository rather than to one agent, so Claude Code, Codex, Cursor and other MCP clients can all read and add to the same pool. Data is stored locally in SQLite; small projects are searched in process and larger ones through a SQLite full-text index, with an optional local semantic index.
The MCP server is started with `memorix serve` and speaks stdio. Beyond plain notes, the package can turn commits into searchable facts, record the reasoning behind decisions, and build a short task brief from current memory and code. The same npm package also ships a CLI, a local dashboard, an HTTP service and a bundled terminal coding agent (memcode).
The tool set is split into profiles. Per `src/server/tool-profile.ts` at v1.9.10, 48 tools are defined in all, but stdio starts in the `micro` profile with 9 of them (store, search, detail, project context, context pack, code-graph status, resolve, session start and media). `lite` has 21, `team` (the HTTP default) 29 with task, message and file-lock coordination, and `full` all 48, including nine knowledge-graph tools that mirror the reference MCP memory server. Pick the profile with `MEMORIX_MODE` or `--mode`.
| Runtime | Node.js 22+ |
|---|
Node.js 22.18.0 or newer and Git: project identity comes from the Git root, so it should be started inside a repository or bound to one with memorix_session_start. An LLM or embedding provider key (OpenAI, OpenRouter, Atlas Cloud, Requesty) is optional and only improves memory formation and retrieval. MiniMax media generation needs MINIMAX_API_KEY, which is billed by MiniMax. The shared HTTP endpoint at http://localhost:3211/mcp needs `memorix background start` (after npm install -g memorix) or the repository's Docker Compose file.
By default the stdio server shows only 9 of its 48 tools. Reasoning, timeline, team coordination and knowledge-graph tools need MEMORIX_MODE set to lite, team or full. Search covers the current project by default. Code memory builds source-backed symbols only for TypeScript and JavaScript; other languages get a lighter structural index. Imported media may be up to 100 MiB by default, and automatic image analysis is capped at 20 MiB. Generating images or video over MCP is off unless MEMORIX_MCP_MEDIA_GENERATION=1. Running `memorix` with no argument opens the memcode terminal agent rather than the server, so clients must pass `serve`.
It suits developers who switch between several coding agents on the same repository and want them to share notes, decisions and commit history without a hosted service: everything sits in local SQLite unless you choose sync. It is a large package that also installs plugins, hooks and rule files into agents through `memorix setup`. If you only need a small key-value or knowledge-graph memory and no Git-scoped project features, a lighter memory server may fit better. Teams who want one shared endpoint can run its HTTP service or Docker image instead of stdio.
memorix_storememorix_searchmemorix_detailmemorix_project_contextmemorix_context_packmemorix_codegraph_statusmemorix_resolvememorix_session_startmemorix_mediamemorix_evidencememorix_feedbackmemorix_continuitymemorix_graph_contextmemorix_timelinememorix_suggest_topic_keymemorix_session_endmemorix_session_contextmemorix_store_reasoningmemorix_search_reasoningmemorix_transfermemorix_retentionmemorix_dashboardmemorix_knowledgememorix_handoffmemorix_pollteam_manageteam_messageteam_taskteam_file_lockmemorix_audit_projectmemorix_deduplicatememorix_consolidatememorix_formation_metricsmemorix_skillsmemorix_promotememorix_rules_syncmemorix_workspace_syncmemorix_ingest_imagememorix_compaction_checkpointcreate_entitiescreate_relationsadd_observationsdelete_entitiesdelete_observationsdelete_relationsread_graphsearch_nodesopen_nodes