📌 项目地址thedotmack/claude-mem | ⭐ 78,555 颗星 | 🔧 TypeScript | 📜 未标注

一条命令装好,但另一条是坑

安装 claude-mem 只有一条正确命令:

npx claude-mem install

README 特别标注了陷阱:别用 npm install -g claude-mem。那条命令只装 SDK 库,不注册插件钩子,也不会启动 worker 服务。装完等于白装,真正的核心功能全在 npx claude-mem install 里。

如果你用 OpenCode:

npx claude-mem install --ide opencode

Antigravity CLI 用户:

npx claude-mem install --ide antigravity

也可以在 Claude Code 插件市场里直接装:

/plugin marketplace add thedotmack/claude-mem
/plugin install claude-mem

装完重启 Claude Code。之后每次新会话,历史摘要会自动进来。

团队场景可以部署到 OpenClaw 网关:

curl -fsSL https://install.cmem.ai/openclaw.sh | bash

这个脚本会处理依赖、插件配置、AI 提供商设置、worker 启动,并可选地把观察结果实时推送到 Telegram、Discord、Slack 等。看文档说支持实时推送,我没亲自试过网关部署,但个人用户单机跑一条命令就够了。

它记住了什么?只记工具调用的事实

claude-mem 记录的是 Claude Code 执行工具调用的观察结果。比如你让 AI 读 config/database.ts,它记录文件内容和关键信息;让 AI 执行 grep -r "error" src/,它记录搜索结果摘要。这些原始数据会被压缩成语义摘要存储,原始内容丢弃。

聊天内容一概不记录。你和 AI 的自然语言对话不会出现在记忆里。只记录 AI 与文件系统、命令行的交互事实。这点很重要:它记的是“做过什么”,不是“说过什么”。

记忆检索采用“渐进式披露”:worker 进程提供摘要,每条摘要标注 Token 消耗量。AI 根据当前上下文长度决定是否加载哪些摘要。不会一次性塞满上下文窗口。这是解决“记忆无限但上下文有限”问题的做法。

我试了三个半小时,第二天表现

我在一个 Express 项目上装了 claude-mem。连续开发约三个半小时,包括修改路由、调试数据库连接、重构中间件。第二天新会话启动后,AI 自动说“项目用 Express,配置在 config/,上次你改过 auth 中间件的逻辑”。我只说了一句“继续优化那个中间件”,它就接着干了。重新描述项目结构、现有代码、上次改动的动机,这些时间全省了。

记忆搜索支持 mem-search 技能。我试过问“之前有没有对商品页做过性能测试”,系统定位到“SSR 渲染优化实验”的记录,我并没在历史中使用“性能测试”这个词。这说明搜索不是关键词匹配,而是语义相似度。实际工作效果取决于 AI 对摘要的解析能力,我遇到的情况还好。

安装后会启动一个 worker 进程,worker 会在终端打印出 Web Viewer UI 的地址。访问那个地址能看到实时的记忆流——当前存储的摘要、每条 token 数、时间戳。这个界面对调试记忆很有用,比如检查 AI 是否记录了预期内容。

必须知道的几项限制

只支持 MCP 协议的 AI 编程工具。 Claude Code、Gemini CLI、OpenCode 能用。普通 ChatGPT 或 Claude 网页版不行,因为它们不暴露工具接口。如果你主要用网页版对话的话,这个项目不适合你。

它不是会话回放。 想看之前和 AI 的完整对话过程?做不到。只能看到 AI 执行了哪些操作,看不到你说了什么。如果你需要完整聊天记录,得另外找方案。

记忆依赖 worker 进程。 worker 由安装脚本启动。机器重启后 worker 不会自动恢复。个人用户如果机器经常重启,需要用 systemd 或类似工具保持 worker 运行。目前只有通过 OpenClaw 网关才能跨机器同步记忆。单机直跑的话,worker 挂了记忆就丢了。

Token 成本透明,但 AI 不一定全加载。 每条摘要标注了 Token 数,AI 根据上下文长度决定是否引入。我遇到过上下文紧张时,AI 跳过了一些摘要,导致部分历史缺失。但关键操作记录通常优先加载,整体影响不大。如果你的项目上下文窗口经常接近满,注意调整记忆摘要数量。

隐私控制用 <exclude> 标签。 数据库密码、API 密钥不想被存储,用此标签包裹 AI 要处理的内容:

<exclude>数据库连接字符串</exclude>

系统只根据标签排除,不会自动识别敏感信息。另外,如果 AI 没有调用工具读取某个文件,文件内容天然不会被记录。所以隐私风险主要来自你主动让 AI 访问敏感数据。如果你把密码写在对话里(自然语言),也不会被存储,因为对话内容不记录。

总结

claude-mem 解决了一个真实痛点:Claude Code 每次新会话都要从头交代项目背景。安装很简单(一条命令),但要注意避开那个 npm install 陷阱。它有明确的适用范围和限制:只面向 MCP 工具、不保存聊天内容、依赖 worker、token 透明但可能漏摘要。对我这种每天用 Claude Code 开发的人来说,装完之后回不去了。它不完美,但比重复手动描述上下文强太多了。

建议先在一个小项目上试一下,装完用一晚上,第二天新会话看看效果。如果符合预期,就值得一直开着。

这篇文章对你有帮助吗?

发表回复