
Engram
io.github.TushaeBXN由 GitHub 帳號 TushaeBXN 發布v1.10.5更新於 Oct 25, 2026
面向AI的本機私密長期記憶:逐字儲存、可搜尋、可更正。無需LLM或API金鑰。
AI 翻譯由 AI 模型根據下方的原文描述翻譯,可能有誤。
原文描述
Local, private long-term memory for AI: verbatim, searchable, correctable. No LLM or API key.
發布方自己的服務:Engram
概覽
Engram 的本機 MCP 服務;無需登入;STDIO。
暫無 AI 概覽:以下資訊來自註冊中心條目和服務本身。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Engram,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Engram
[engram update image]Your AI forgets everything when the chat ends. Engram helps it remember. Free, private, runs on your own computer, and keeps every word exactly as you wrote it.
[MIT License] [Python 3.9+] [PyPI] [CI]
The problem
On Monday you spend an hour with Claude working out why the login system leaks memory, and you decide to switch libraries. On Friday you open a new chat and ask "why did we drop Passport again?"
It has no idea. The conversation is gone, and so is the reasoning.
The same thing happens with everything you tell an AI: your sister's birthday, the bug you already fixed, the reason a setting is the way it is. Every new chat starts from zero.
Engram is a memory that outlasts the chat. It saves your notes, files and conversations, and when you ask a question later, it finds the right one, even if you phrase it completely differently.
See it work
Two ordinary notes go in:
Days later, ask in your own words. None of these questions share a sentence with the notes:
Hook it up to Claude and it does this by itself: Claude looks things up in Engram when it needs them, and Engram saves your Claude Code sessions automatically.
Try it in 2 minutes
You need Python 3.9 or newer (3.11 to 3.14 is best). Check with python3 --version.
1. Install
On PyPI the package is called
engram-chateau, but the command you type is justengram. (A different, unrelated package already owns the nameengram.)
2. Give it something to remember
The first run downloads a small language model (about 80 MB) that lets Engram understand meaning. After that, everything works offline.
3. Ask it something
That's all you need to try it.
Connect it to your AI app
Engram works with any app that speaks MCP, the standard way AI apps plug in tools. One command adds it:
It adds Engram to that app's settings (keeping everything else, with a .bak backup) and tells you how to restart the app. Run it again any time; it changes nothing the second time.
Every app then has 31 engram_* tools: recall, search, remember, correct an outdated memory, link a conclusion to its evidence, explain why a memory says what it says, a topic's history, a knowledge graph of people and facts, and more. On connect, Engram also tells the AI how to use them: check memory before answering anything that depends on past work, save decisions, and correct rather than contradict. (Apps decide whether to pass that guidance to the model; most current ones do.) Ask "remember that we use tabs in this repo", "what did we decide about auth?" or "we moved to PostgreSQL, update that".
Claude Code gets the most: memory that works without being asked.
install-hooks adds three Claude Code hooks to ~/.claude/settings.json (your existing settings are kept, with a backup):
- Auto-recall. Each time you send Claude a message, Engram searches your memory first. If something clearly relevant turns up, Claude gets a short note with up to 3 memories before it answers, current versions first (with what they replaced and why) and outdated ones labelled. You ask "why did we drop Passport?" in a brand-new chat, and Claude already knows. Nothing is added when nothing is relevant, a memory isn't repeated within a session, and it takes about a second once warm (the first message after your computer starts it can take several seconds while it loads).
- Project-aware. Memories are filed under the project you're working in (the git repo or folder name), and recall shows that project's memories first; other projects' notes only appear when they match very closely.
- Auto-save. Every file Claude edits is saved.
- Save before compacting. The conversation is saved before Claude Code compacts it.
Preview what auto-recall would hand Claude with engram recall "your message". Run engram install-hooks without --apply to see the settings instead of applying them, or add --no-recall to skip auto-recall.
Any other MCP app: point it at the command engram-mcp (or python -m engram.mcp_server). Engram is also listed in the official MCP registry as io.github.TushaeBXN/engram.
Apps that don't speak MCP (Open WebUI, n8n, your own scripts) can use Engram over a small local web API:
Point the app at http://127.0.0.1:7742/openapi.json; every tool is described there. Or call it directly:
Memories are private, so it is strict by default. It listens on localhost only, and refuses requests that look like they come from a web page or through a proxy. To reach it from another machine, use engram serve --host 0.0.0.0: that always requires a token (created on first use in ~/.engram/server/token, never printed), sent as Authorization: Bearer <token>. engram serve --token requires one even on localhost. No CORS headers are ever sent, so a web page can't talk to it.
Teach any coding agent to use it. skills/engram/SKILL.md is a ready-made agent skill: when to recall, save and correct, and how to explain a conclusion. Install it with npx skills add TushaeBXN/engram (or copy the file).
Prefer uv, pipx or a guided setup?
Both put engram and engram-mcp on your PATH without touching your system Python.
Who it's for
🧑💻 Developers using Claude Code. Engram quietly saves the files Claude touches and the conversations behind them. Months later, "why is the retry limit 7?" brings back the actual discussion, not a guess.
🤖 People building an AI companion or agent. Give your bot a memory of its own: what it has learned about you, a diary, and a knowledge graph of people and facts ("Kai works on Orion, since June"). It all runs offline in a few lines of Python. Engram started life as exactly this, the memory of a personal companion app.
📚 Writers, researchers and note-takers. Point it at a folder of notes, an Obsidian vault, or Notion or Linear exports, and search across all of it by meaning: "that idea I had about pricing tiers".
Why Engram is different
- 🔒 It's yours. Everything lives in one folder on your computer (
~/.engram/). No account, no cloud, no API key, no tracking. - 📝 It keeps your words. Most AI memory tools have an LLM rewrite your conversations into short "facts" and throw the original away. Engram stores the original text and finds it again. Nothing gets lost in a summary.
- 🧠 It understands what you mean. It finds "we switched from Passport to Lucia" when you ask about "changing the auth library". It also matches exact names and numbers (
INV-20931), and understands time: "two weeks ago", "in June", "on May 8". - 💸 It's free to run. It needs no LLM to save or search, so there are no per-message costs and nothing to rate-limit.
- 🎯 It's accurate. On the two standard tests of AI memory, it beats the best published no-LLM results (numbers below).
- 📖 You can read all of it. About 10,000 lines of plain Python, MIT licensed. If you want to know exactly what happens to your data, you can.
- 🔄 It knows when it's out of date. When a decision changes, the new memory is marked as replacing the old one. Search gives you the current answer first, and the old one stays below it as history, with when and why it changed.
- 🔑 It can hide secrets for you. Turn on
redact_secretsand API keys, tokens and passwords are blanked out before anything is written to disk.
How it works
Engram files memories the way you'd organise a big house: one wing per person or project, a room per topic, a hall per kind of memory, and inside, drawers holding the original text.
You don't have to manage any of this; Engram sorts things as it saves them. When you search, it weighs several clues together:
At the start of a session, Engram can also hand the AI a small "wake-up" note (who it is plus key facts: pinned ones first, then the newest, about 120 tokens by default), so it never starts completely cold.
When things change
In March you note that the app stores everything in SQLite. In April you move to PostgreSQL. Most memory tools now hold two contradicting notes and return whichever matches the question best.
In Engram, you (or Claude, or your agent) record the change once:
From then on, search puts the current answer first and keeps the old one, clearly labelled, right below it:
engram history file-05aa607a shows the whole story: what it said, what replaced it, when, and why. Nothing is ever silently deleted. Old evidence stays searchable, and a mistaken correction can be undone with engram supersede <id> --undo.
Engram never decides by itself that one note contradicts another. Deciding what is true is the job of whoever is using it. When Claude saves a memory, Engram points out existing memories it might update, and Claude decides.
Why does it say that?
A memory can say what it rests on and where it came from, so a conclusion never floats free of its evidence:
Sources are user (you said it), primary (an original document, law, ruling or dataset), secondary (reporting or analysis), tool (a search or program result) and inference (an AI's own conclusion). Inferences stay labelled as inferences.
engram why <id> explains any memory: its source and date, whether it is a record or an inference, the evidence behind it, whether that evidence has since been corrected or disputed, earlier versions and their evidence, and, with --query, why search ranked it:
engram check lists everything like that across your memory: conclusions whose evidence was corrected or disputed, inferences with no evidence, conflicts nobody has settled, links to deleted memories. It changes nothing. When a position is revised, the old one keeps the evidence it had, so you can always see what the earlier view rested on and what supports the new one.
Backups. engram export backup.json.gz puts every memory, correction, knowledge-graph fact and diary into one file. engram import backup.json.gz restores it on another computer, after checking the whole file first: if anything is wrong, nothing is changed. The format is documented in docs/backup-format.md.
How good is it?
Researchers test AI memory with two public benchmarks. Each gives the system long chat histories and asks questions whose answers are buried somewhere inside. The score is how often the system finds the right conversation.
In plain terms: ask Engram 500 questions about months of chat history, and for 494 of them the right conversation is in its top 5 results. It gets there with a small model that runs on a laptop, no LLM and no API. These tests measure finding the right conversation. They don't measure whether corrections, evidence links or recall notes make an AI more accurate; benchmarks/trust_eval.py checks those, and the results are listed below.
Does it keep memory trustworthy? Those tests don't cover corrections, the notes handed to a model, or crashes, so benchmarks/trust_eval.py checks them. On its own (author-written, deliberately small) scenarios, in the current version:
Auto-recall trades some answers for silence and small notes; the full table, what it doesn't show, and how to run it yourself are there. Nothing here shows that it makes an AI more accurate end to end; that hasn't been tested.
The fine print
- It uses a small local embedding model (all-MiniLM-L6-v2). Engram indexes the assistant's replies as well as yours.
- These numbers are not held-out. Engram's boosts are fixed general rules, not tuned per question, but we chose which ones to ship by watching LongMemEval and LoCoMo scores from version to version (each step is in BENCHMARKS.md), so some of the score is fitted to these two tests.
- Raw meaning search alone, with none of those boosts, scores 96.8% R@5 on LongMemEval. The boosts add about two points.
- One LongMemEval question is worth 0.2 points, so small differences are a question or two.
- An LLM reranker (which needs an API key) can raise scores further. Engram doesn't offer one, by design.
- Everything is reproducible from this repo. Full per-question-type results, earlier versions and the exact commands are in benchmarks/BENCHMARKS.md.
Should you use Engram?
There are several good memory tools. Here's an honest guide.
Use it in your own app
These calls are pinned by tests/test_public_api.py, so apps built on them keep working across releases. For the full default search (exact-word index included), build the backend with engram.backends.backend_from_config(engram.config.load_config()).
Everyday commands
The ID is the short code in the first column of engram search results.
Full command reference
Setup
Saving
Searching
Context, history and graph
Corrections
Deleting
Forgetting is for things that should never have been saved. A memory it replaced becomes current again, memories that rested on it lose that evidence (engram check lists any left with nothing behind them), and earlier exports still contain it. To change a memory without losing its history, use engram correct instead.
Evidence and explanations
Backups
Maintenance
Settings
Everything works out of the box. If you want to tweak things, settings live in ~/.engram/config.json. Every key is optional, and the defaults are the benchmarked setup.
ENGRAM_VECTOR_BACKEND=sqlitevec engram … switches the backend for one run. An embedding server works with the default chromadb backend; each server and model keeps its own index, so switching back needs no reindex and your memories are never changed. ~/.engram/identity.txt holds the short identity that starts each wake-up note.
Troubleshooting
engram: command not foundafter installing. pip put it somewhere not on your PATH. Usepython3 -m pip install --user engram-chateau, or install withuv tool install engram-chateau/pipx install engram-chateau, which handle PATH for you.pip: command not found. Trypip3orpython3 -m pip. Inside auvvirtual environment, useuv pip install ….- Moving to a new computer. Run
engram export backup.json.gzon the old one, install Engram on the new one, thenengram import backup.json.gz. Search indexes are rebuilt during the import. - Claude doesn't show the engram tools. Restart Claude Code or Claude Desktop after adding the server. If the app can't find
engram-mcp, give it the full path fromwhich engram-mcp. - "ChromaDB failed to load". ChromaDB's compiled parts don't match your Python. Try
pip install --force-reinstall --no-cache-dir chromadb, or set"vector_backend": "sqlitevec", which needs no compiled parts. Then runengram mineagain, because each backend keeps its own index. - Python 3.15 or newer. ChromaDB can't install there yet, so Engram falls back to
sqlitevec, which matches words rather than meaning. For meaning-based search, use Python 3.11 to 3.14. - "No such command" after updating from GitHub. Run
git pull origin main, thenpip install -e .(oruv pip install -e .) in your Engram folder. - The search Relevance column shows
<0.001. The reranker found nothing that really answers that question; try a more specific one.
Under the hood: shorthand, memory layers, web UI, code map
Engram Shorthand (ES)
A compact text form any LLM can read without a decoder. It's used only for the short context Engram loads into a model; your drawers always keep the original text. ES drops filler words, saving about 1.6× on prose and 1.1× on code.
Memory layers
Web UI
engram ui opens a local notes app at http://127.0.0.1:7741, with a graph of linked notes, tags, pinned notes, a daily journal and Markdown editing. It keeps its notes in your browser for now, and doesn't yet show the memories in ~/.engram/; use engram search or the MCP tools for those.
Code map
Requirements
- Python 3.9 or newer. 3.11 to 3.14 is recommended for meaning-based search.
- Installed automatically: ChromaDB, typer, rich, watchdog, questionary, pyyaml and requests.
- Optional extras:
engram-chateau[faiss],[sqlitevec],[viz](graph pictures) or[all]. - Optional: Ollama for
engram answer.
Internet use: none, apart from two one-time downloads. The embedding model (about 80 MB) downloads the first time you save or search. The optional reranker (90 MB) downloads only if you run engram setup-reranker. Your memories never leave your machine.
Contributing
Bug reports, ideas and pull requests are welcome.
Releasing (maintainers)
Engram is published to PyPI as engram-chateau from .github/workflows/publish.yml, using PyPI trusted publishing (no stored token; owner TushaeBXN, repository engram, workflow publish.yml, environment pypi).
- Bump
versioninpyproject.tomland__version__inengram/__init__.py, and add aCHANGELOG.mdentry. - Merge to
main. - Create a new GitHub release after the merge, tagged
v<version>with the dots kept (for examplev1.5.1, notv1.51), targetingmain. The workflow checks the tag matches the version, runs the tests, builds and uploads.
Credits and license
Engram's design (wings, rooms, halls, drawers and a temporal knowledge graph) is inspired by other open-source memory systems. Some retrieval ideas (the exact-word index and date understanding) are adapted from Hindsight.
MIT © 2026 Tushae Thomas
If Engram helps you remember something that mattered, a ⭐ helps other people find it.
來源:README.md,提交 1d030a6
工具
0版本歷史
2- v1.10.5最新Oct 20, 2026
- v1.10.0Oct 20, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
其他 Engram 整合

Engram
tools.engram官方發布者
Engram 為 AI 助理提供跨工具、工作階段、程式碼儲存庫與團隊成員共享的持久記憶層。

Engram: AI memory you can edit in Obsidian
由 GitHub 帳號 engram-app 發布
託管式 MCP 記憶伺服器,讓 Claude、ChatGPT 等 MCP 用戶端共用可讀寫的筆記,並可在 Obsidian 或網頁應用程式中編輯。

Engram
由 GitHub 帳號 devinmlowe 發布
Engram 是面向編碼代理的本地優先認知記憶伺服器:擷取對話、提取結構化知識,並提供混合檢索、知識圖譜與記憶管理。

Engram
由 GitHub 帳號 tstockham96 發布
Engram 為 AI 助理提供本機 SQLite 記憶庫,支援語意檢索、知識圖譜與由 LLM 驅動的記憶整併。

Engram
由 GitHub 帳號 tomcat65 發布
自架設的協調匯流排與共用知識圖譜,讓多個 AI 編碼代理共用狀態、互相傳訊,並在跨工作階段時保留上下文。