Context7
Up-to-date docs for AI agents
作者提供的说明(英文原文)
Universal AI coding assistant memory — session handoff, SLM compression, and semantic retrieval.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"engram-cc": {
"command": "npx",
"args": [
"-y",
"@morous-dev/engram-cc"
]
}
}
}在终端中运行这条命令
claude mcp add engram-cc -- npx -y @morous-dev/engram-cc粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"engram-cc": {
"command": "npx",
"args": [
"-y",
"@morous-dev/engram-cc"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"engram-cc": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@morous-dev/engram-cc"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日
注册名称已通过 GitHub 账户 Morous-Dev 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.1.4)于8个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Context7, Codebase Memory, Exa
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Up-to-date docs for AI agents
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
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.
npx engram-cc
Run it from the project root you want ECC to manage, or pass --project-dir .
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:
npx --yes --package=@morous-dev/engram-cc -- engramcc-mcp
Equivalent npm exec form:
npm exec --yes --package=@morous-dev/engram-cc -- engramcc-mcp
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 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.
┌─────────────────────────────────────────────────────────────────┐
│ Your AI Coding Session │ │ │ │ UserPromptSubmit → PostToolUse → PreCompact → Stop │ │ │ │ │ │ │ │ └───────────────┴──────────────┴──────────┘ │ │ │ │ │ SQLite event DB │ │ │ │ │ ┌───────────┴───────────┐ │ │ │ Local SLM Archivist │ │ │ │ (no API calls, 100% │ │ │ │ offline synthesis) │ │ │ └───────────┬───────────┘ │ │ │ │ │ ┌──────────────────┼──────────────────┐ │ │ │ │ │ │ │ YAML handoff Knowledge graph Vector store │ │ (hot resume) (BFS traversal) (semantic search) │ │ │ │ │ │ │ └──────────────────┴──────────────────┘ │ │ │ │ │ MCP server │ │ (recall / search / recent │ │ / graph_query) │ └─────────────────────────────────────────────────────────────────┘ ↑ ↓ SessionStart hook Next session injects context picks up here
| 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 /.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).
<projectDir>/.engram-cc/
├── sessions/ │ └── .db ← SQLite DB per project (all memory tiers) ├── assistant-configs/ ← Local hook/MCP snippets per assistant ├── config.json ← Project config, including shared models path ├── handoff.yaml ← Session handoff (hot resume data) └── working.yaml ← Cross-session working memory
/Engram Context Continuum/models/ └── .gguf ← Shared GGUF models reused across projects
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:
# Force a specific compression tier (default: auto)
compression: tier: "tier3b"
external: provider: "ollama" model: "phi4-mini" base_url: "http://localhost:11434"
The numbers below were verified against the current repo state on March 14, 2026 after the carry-forward compaction fix. They reflect what was actually run, not historical bests.
| Command | What it measures | Current result |
|---|---|---|
npm run build | TypeScript compile integrity | ✅ PASS |
node benchmark/test-session-db.mjs | Session DB, archive, resume-chain, carry-forward regressions | ✅ 53/53 |
npm run test:quality | End-to-end handoff quality across S1/S2/S3 | ✅ 20/20 |
node benchmark/test-hook-portability.mjs | Cross-assistant hook env and startup portability | ✅ 14/14 |
node benchmark/test-codex-adapter.mjs | Codex transcript sync + trigger + stop regressions | ✅ 29/29 |
npm run test:brutal:quick | Real-data extraction calibration (WildChat + SWE-bench) | ✅ PASS |
npm run test:lifecycle:quick | 100-cycle real-data lifecycle / archive retention observation | ✅ PASS |
node benchmark/test-adversarial.mjs --model llama3.2-3b | Hostile SLM inputs A1–A11 | ✅ 11/11 |
node benchmark/test-adversarial.mjs --model qwen | Hostile SLM inputs A1–A11 | ✅ 11/11 |
node benchmark/test-adversarial.mjs --model gemma3-4b | Hostile SLM inputs A1–A11 | ✅ 11/11 |
node benchmark/test-tier-comparison.mjs | Cross-tier compaction retention (4→20 cycles) | ✅ 38/38 on tier3, tier3b, tier3c |
node benchmark/test-scale.mjs | Prompt-length stability | ✅ Llama 16/16 · Qwen 15/16 |
node benchmark/test-compaction-marathon.mjs | Multi-compaction memory retention | ✅ 53/53 |
node benchmark/test-diffmode.mjs | Grammar-constrained JSON output | ✅ PASS for Llama 3.2 3B + Qwen3.5 4B |
npm run test:quality exercises the full path from session events to next-session context injection.
| Scenario | Assertions | Result |
|---|---|---|
| S1 — Initial session | 6/6 | ✅ |
| S2 — Hot resume | 5/5 | ✅ |
|
只显示了开头部分;其余内容请在仓库中阅读