Universal AI coding assistant memory β session handoff, SLM compression, and semantic retrieval.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Engram Cc.
recallFull session context: handoff + working memory
searchFTS5 full-text search over all session events
recentMost recent N events, filterable by category
graph_queryBFS traversal of the knowledge graph
Universal AI session memory substrate. One install. Every AI coding assistant. Persistent context across sessions, folder renames, and tool switches.
In neuroscience, an engram is the physical trace a memory leaves in the brain. EngramCC does the same for AI β a local memory substrate that persists what your AI assistant learned, decided, and did, so the next session picks up exactly where the last one left off.
Every AI coding session starts from zero. The assistant re-reads files it read yesterday, re-learns conventions it already knows, re-asks questions you already answered. Context compaction silently erases the session mid-work. Switch tools and all memory is gone.
EngramCC solves this at the infrastructure level β not by prompting harder, but by building a persistent memory layer that runs underneath any AI assistant.
Run it from the project root you want ECC to manage, or pass --project-dir <path>.
The setup CLI detects your hardware, prepares a project-local .engram-cc/ workspace, asks for a shared models directory, and generates assistant hook/MCP snippets under .engram-cc/assistant-configs/. No user-home config is modified.
For assistants that self-install MCP servers from npm, the canonical EngramCC command is:
Equivalent npm exec form:
Assistants should not guess npx @morous-dev/engram-cc mcp. Use the explicit package/bin form above.
For project-local ECC setup, the generated snippets under .engram-cc/assistant-configs/
intentionally use node <project-local build/mcp/server.js> instead. The npx --package ...
form above is for assistants that install EngramCC directly from npm without running project-local setup first.
| Assistant | Hook support | MCP support |
|---|---|---|
| Claude Code | Full lifecycle hooks | recall / search / recent / graph_query |
| Gemini CLI | Full lifecycle hooks | recall / search / recent / graph_query |
| VS Code Copilot | β | recall / search / recent / graph_query |
| Codex CLI | Native hooks (session_start, pre_tool_use, stop) + transcript-exact user_prompt_submit / post_tool_use + synthesized pre_compact | recall / search / recent / graph_query |
| Kilo CLI | Wrapper-assisted only; native hooks not verified | recall / search / recent / graph_query |
| OpenCode | Full lifecycle hooks | recall / search / recent / graph_query |
| Cursor | β | recall / search / recent / graph_query |
On Windows, generated hook snippets call src/hooks/hook-runner.mjs so assistant and
project env vars are injected without brittle cmd /C quoting.
Codex-specific note: the exact prompt/tool bridge reads Codex's own session JSONL under
CODEX_HOME / ~/.codex/sessions/, but ECC still writes its state only into the project-local
.engram-cc/ directory. Because Codex does not expose a true prompt-submit injection hook,
startup context also includes a Codex turn policy that steers the assistant toward EngramCC
MCP memory on user turns when earlier context may have compacted out.
Kilo-specific note: current verified support is MCP plus the ekilo wrapper flow for
session-start / session-stop continuity. Kilo has an open request for native lifecycle hooks,
so ECC does not claim native Kilo hook parity yet.
EngramCC runs as session middleware β lifecycle hooks capture what happens during a session, a local SLM synthesizes memory offline at session end, and an MCP server serves pre-digested context to any connected assistant.
| Hook | When | What it does |
|---|---|---|
UserPromptSubmit | User sends a message | Captures intent and decision signals |
PostToolUse | Any tool completes | Captures file ops, errors, tool results |
PreCompact | Context nears limit | Snapshots session state before erasure |
SessionStart | Session opens | Injects hot handoff or cold summary + MCP pointer |
Stop | Session closes | SLM synthesis β handoff YAML + graph + vector store |
EngramCC injects context surgically, not blindly:
recall tool β zero token waste on stale context| Layer | Storage | Contents | Lifespan |
|---|---|---|---|
| Working | YAML | Preferences, conventions, persistent decisions | Cross-session |
| Episodic | SQLite + FTS5 | All session events, full-text searchable | Per-project |
| Semantic | SQLite graph | File/decision knowledge graph, BFS traversal | Per-project |
| Procedural | sqlite-vec | Embedding-indexed high-value events | Per-project |
EngramCC synthesizes session memory using local models first β zero external API calls for its own compaction, handoff, and retrieval support.
The setup CLI detects your hardware and selects the best available tier:
| Tier | Model | RAM needed | What it does |
|---|---|---|---|
| 1 | Rule-based | 0 | Always-on heuristic extraction |
| 2 | MiniLM-L6-v2 ONNX | ~400 MB | Embeddings via @huggingface/transformers |
| 3 | Llama 3.2 3B Q5_K_M | ~4 GB | Primary local synthesis tier |
| 3b | Qwen3.5 4B Q4_K_M | ~3.5 GB | Alternate synthesis tier, strong multilingual/coding performance |
| 3c | Gemma 3 4B QAT Q4_0 | ~3 GB | Alternate synthesis tier, strong structured reasoning |
| 4 | Ollama / LM Studio / Groq | user-provided | External HTTP provider |
Models are stored in a shared directory chosen during engramcc setup and saved in <projectDir>/.engram-cc/config.json. Tiers auto-cascade: if no Tier 3 model is available, Tier 2 runs; if Tier 2 is unavailable, Tier 1 runs. Core memory capture is never blocked.
EngramCC tracks projects by a stable UUID stored in .ecc-id β not by folder path. This means:
Resolution order: .ecc-id file β git root commit hash β fresh UUIDv4 (written once, never regenerated).
All data is local. No network calls for core operation. No credentials, tokens, or API keys required.
When connected via MCP, any assistant can query EngramCC directly:
| Tool | Purpose |
|---|---|
recall | Full session context: handoff + working memory |
search | FTS5 full-text search over all session events |
recent | Most recent N events, filterable by category |
graph_query | BFS traversal of the knowledge graph |
Override compression tier or external provider in plugin-config.yaml:
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/engram-cc)<a href="https://allmcps.com/mcp/engram-cc"><img src="https://allmcps.com/api/badge/engram-cc?style=directory" alt="Engram Cc on AllMCPs" /></a>