projectmem
Integrates with Git repositories as the memory compilation and expiry source: automatically records commit hashes and file paths as evidence receipts for each memory, and drives staleness detection by watching registered files so memories are marked stale when the underlying commits/files change or are deleted, and revived when changes are reverted. Memory storage (.pmem/) is designed to be committed and diffed in git.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@projectmemremember our decision to keep the project zero-dependency"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
projectmem(pmem)
零依赖的项目记忆编译器——让 AI 编程 agent 跨会话记住你的项目:做过什么、定了什么、踩过什么坑,代码一变记忆自动变旧。
Zero-dependency project memory compiler for AI coding agents. Memory that expires by git, carries receipts, runs assertions, and shows its own ROI.
一个 js 文件 · 0 依赖 · Node ≥ 20 · Windows/macOS/Linux · 中文友好
为什么
每个 AI 编程 agent 都有同一个病:新会话失忆。你要重新粘贴项目背景;agent 自带的 CLAUDE.md / MEMORY.md 像便利贴——只增不减、搜不了、过期了也不知道。
现有方案(agentmemory、claude-mem 等)验证了需求,但它们依赖重(固定版本二进制引擎 / Bun+uv+Chroma)、原生 Windows 是二等公民、数据进 SQLite 黑盒。
Related MCP server: Projectmem
核心理念:记忆是编译产物,不是笔记仓库
笔记仓库(现有方案) | 记忆编译器(projectmem) | |
记忆从哪来 | LLM 压缩会话 / 手写 | 从项目源确定性编译:git + 会话 + 文档,LLM 只是可选润色 |
何时过期 | 按时间衰减(猜) | git 依赖驱动(算):登记的文件一变,记忆精确标旧 |
可信度 | 无出处 | 每条带证据收据:commit hash / 文件路径 |
对错自证 | 不能 | 断言式记忆:决策挂上可执行的检查,像测试一样会"挂" |
效果度量 | 拍脑袋 | 命中率遥测 + ROI 账本:省了多少 token,账上见 |
五个机制在 GitHub 上逐条查新(2026-09,详见 docs/feasibility-zh.md 附录 B):依赖驱动失效仅 1 个 0★ 实验仓库撞过方向,其余为 0 结果。
快速开始
Windows:下载/克隆仓库 → 双击 install.cmd → 完事。(没有 Node 也没关系,脚本会指路)
任何系统:node pmem.js setup——自动装好全局 pmem 命令并配置 PATH,然后打印三份"即贴即用"配置:MCP 接入、SessionStart 自动注入钩子、agent 自动记忆约定。
极简党:不装也行,就地用——
node pmem.js init
node pmem.js add decision "本项目零依赖,不许引入 npm 运行时依赖" --assert no-deps --file package.json
node pmem.js query 零依赖第一条记忆就带上了完整范式:证据(自动记录 commit + 依赖文件)、失效源(package.json 一变它就变旧)、断言(谁真装了依赖,pmem check 当场红牌)。
想要"全自动"?两步做完上面的事
把
pmem agent-instructions输出的约定块贴进 CLAUDE.md / AGENTS.md——从此 agent 每次会话开始自动读记忆、过程中自动记决策/进度/坑、结束前自动查失效;把
pmem setup打印的 SessionStart 钩子粘进 agent 的 settings.json——即使 agent 偷懒,会话启动也会强制注入记忆(静默跑失效扫描 + 断言 + 按预算注入)。
命令总览
命令 | 作用 |
| 写入记忆(decision/progress/pitfall/preference/fact/note) |
| 快捷便签 |
| 中文友好相关度检索(CJK bigram + BM25-lite) |
| 失效扫描:登记文件删除/变更 → 记忆标旧,改动撤销自动复活 |
| 人工复核后刷新失效基线 |
| 跑所有断言;有失败退出码 1,可直接挂 CI |
| 按 token 预算装箱高价值记忆(给 hooks 用) |
| ROI 账本:每条记忆省/耗/净收益(粗估) |
| 日常管理 |
| 启动 MCP stdio server |
接进你的 agent
MCP(Claude Code / ZCode / Cursor 等通用,server 以启动时的工作目录为项目根):
# Claude Code
claude mcp add projectmem -- node /path/to/pmem.js mcp// 其他客户端的 mcpServers 配置
{ "projectmem": { "command": "node", "args": ["/path/to/pmem.js", "mcp"] } }工具集:pmem_add(带证据写入)、pmem_query(检索)、pmem_inject(预算注入)、pmem_stale(失效扫描)、pmem_check(断言)、pmem_show、pmem_roi。
会话启动自动注入(以 Claude Code hooks 为例,加进 settings.json;或直接跑 pmem setup 让它帮你生成):
{
"hooks": {
"SessionStart": [{ "hooks": [{ "type": "command", "command": "node /path/to/pmem.js hook session-start" }] }]
}
}pmem hook session-start 一段输出做完三件事:静默失效扫描(git 驱动)→ 静默断言检查 → 按 1500 token 预算注入记忆,末尾附提醒行。
CI 卡口:pmem check 退出码非 0 即失败——决策被违反或记忆过期,构建直接红。
安全
记忆要进 git、可能推上 GitHub——所以安全不是可选项,是默认行为:
密钥防泄漏(写入即脱敏,默认开启):GitHub/OpenAI/AWS/Slack/Google 的 token、JWT、私钥块、
password=…类赋值,写入前自动替换为[REDACTED:<类型>],原值不落盘。宁可漏存,不可泄密。完整性哈希链:事件日志每条带 SHA-256 链式哈希,
pmem security verify可检测历史记录被篡改(谁改过、第几行)。注入检测:
pmem security scan会标记疑似提示注入的记忆("ignore previous instructions" 类),报告不阻断。路径围栏:登记文件依赖越出项目根(
../、绝对路径外逃)直接拒绝。CI 卡口:
pmem security scan(有发现退出码 1)与pmem check、pmem security verify都可挂 CI。
存储布局(全部可提交进 git)
.pmem/
├── events.jsonl 事件日志(append-only 审计流:add/fresh/archive/stale/inject/check)
├── index.json 机器态(原子写)
└── MEMORY.md 人读投影(自动重绘,勿手改)记忆数据在你手里:纯文本、可 diff、可备份、可跨机器同步。
设计取舍:刻意不用 SQLite / 向量库。目标规模是单项目 ≤ 2000 条,纯 JSON + BM25-lite 完全够,换来零依赖、零编译、零黑盒。超了再升级(见路线图)。
与现成项目对比
维度 | agentmemory (28.4k★) | claude-mem (46k+★) | projectmem |
依赖 | 固定版本 iii 引擎二进制 | Bun + uv + Chroma | 0 |
原生 Windows | 需手动装引擎,推荐 WSL2 | 安装链长 | 一等公民 |
记忆过期 | 时间衰减 | — | git 依赖驱动 + 断言验证 |
记忆出处 | 无 | 无 | commit/文件收据 |
效果度量 | 无 | 无 | 命中率 + ROI 账本 |
抓取成本 | LLM 压缩 | LLM 压缩 | 0 token(规则抽取) |
路线图
✅ P0:单文件 CLI + JSONL 事件日志 + 证据链 + 中文检索
✅ P1:git 依赖失效扫描 + 断言 + 预算注入 + MCP stdio server
🔶 P2(大半完成):命中率遥测、ROI 账本、SessionStart 自动注入钩子(
hook session-start)、agent 自动记忆约定、一键安装(setup/install.cmd)已上线;会话转录自动摘要抓取进行中⬜ P3:本地向量检索(openvino/MiniLM)、LLM 记忆润色(可选层)、4 层记忆分层
开发
npm test # node --test test/(含 MCP stdio 往返测试)调研、查新与可行性论证全文:docs/feasibility-zh.md。
反馈与共建
报 bug / 提需求:Issues(模板会引导你贴诊断信息;先跑
pmem security scan确认不带密钥)用法讨论 / 晒你的玩法:Discussions
觉得省下了重新交代背景的时间,就点个 ⭐——这是独立开发者的全部推广预算
版本变更见 CHANGELOG.md
License
MIT © liv114514
This server cannot be deployed
Maintenance
Related MCP Connectors
Shared memory for coding agents. Stop re-explaining your codebase every session.
- EngramOAuthtools.engram
Memory for AI agent teams across tools, sessions, repositories, and teammates.
Project memory for coding agents: requirements, decisions, code graph and delivery telemetry.
Shared project memory that keeps teammates and AI agents aligned across sessions.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides AI coding assistants with persistent project memory to retain architectural decisions, code patterns, and domain knowledge across sessions. It stores data locally in a SQLite database, allowing agents to remember, recall, and manage project-specific context using full-text search.7 npmApache 2.0
- AlicenseAqualityAmaintenanceLocal-first memory layer for AI coding agents — captures issues, attempts, fixes, and decisions, and warns at git commit before you repeat a mistake.17330 PyPI846MIT
- AlicenseAqualityCmaintenanceLocal-first project memory for AI coding agents. Records failed attempts, fragile files, and decisions per repo, and warns the agent via hooks before it repeats a recorded mistake.647 npmMIT
- AlicenseNot gradedqualityAmaintenanceProvides persistent project memory for AI coding agents, enabling context retention across sessions via event logging, briefing generation, and querying.MIT