Deja-vu:给 AI 编码助手装上「过目不忘」的记忆层——跨工具、跨会话、全本地

你有没有遇到过这种情况:三周前你让 AI 帮你修好了一个诡异的 bug,今天又碰到了同样的问题,但 AI 完全忘了当时的解决方案。你翻遍了聊天记录,就是找不到那个关键的修复思路。

这不仅是你的烦恼——每个重度使用 AI 编码助手(Claude Code、Codex、Cursor、Gemini CLI 等)的开发者都在重复踩同样的坑。你的 AI 助手每天都在帮你解决问题,但它不记事儿。

今天介绍的这个开源项目 Deja-vu(法语”似曾相识”),就是专门解决这个痛点的。它是一个零依赖的二进制文件,把 AI 编码工具的会话历史变成了一个可搜索、可召回的记忆层。

Deja-vu 是什么?

简单说:你的 AI 助手已经解决过这个问题了,Deja-vu 帮你把它找出来。

Claude Code、Codex、OpenCode、aider、Gemini CLI、Cursor、Antigravity、Grok Build、Qwen Code……这些主流的 AI 编码工具都会把每次对话写入本地文件。几个月下来,你硬盘上可能积累了 GB 级别的对话记录——里面藏着大量调试过的 bug、做出的技术决策、精心设计的解决方案。但你根本没法搜索它们。

Deja-vu 所做的就是:索引所有这些对话记录,让你在 ~12ms 内搜索 3.3GB 的历史数据。而且它是完全本地运行的,一个二进制文件搞定,不需要下载模型,不需要后台服务,什么都不离开你的机器——除非你主动同步或分享。

装上去 10 分钟,AI 开始「记事儿」

安装极其简单,一行命令:

curl -fsSL https://raw.githubusercontent.com/vshulcz/deja-vu/main/install.sh | sh

或者通过 Go、npm、Homebrew 安装:

go install github.com/vshulcz/deja-vu/cmd/deja@latest   # Go
npx @vshulcz/deja-vu "query"                            # npm,无需安装
brew install vshulcz/tap/deja-vu                        # Homebrew

然后把它接入你的 AI 工具:

deja install --all     # 为机器上所有 AI 工具添加 MCP 召回能力
deja install --auto    # 同上 + 每次会话开始时自动加载相关记忆

安装时会自动检测你机器上的 AI 工具(Claude Code、Codex、Gemini CLI、Qwen、Copilot、OpenCode),写入对应的引导文件。如果已有历史记录,会立即构建第一个索引。

下次打开 AI 工具,直接问:

「我们之前处理过 JWT refresh token 轮换的问题吗?查一下你的记忆」

如果用了 --auto 模式,连问都不用问——AI 会在每个会话开始时自动知道你在这个项目里解决过什么问题。

核心功能一览

Deja-vu 的能力远不止”搜索”这么简单,它是一整套记忆层:

功能 效果
🔍 超快搜索 deja "connection pool exhausted"——在 GB 级数据中 ~12ms 出结果,而且能搜到你安装 之前 几个月的日志
🧠 Agent 召回 MCP recall 工具——AI 回答「我们三周前修过这个」而不是重新调试一遍,跨工具通用
⚡ 自动召回 install --auto 添加 SessionStart 钩子——相关记忆在你开口前就加载到上下文里
🔒 敏感信息脱敏 API 密钥、JWT、私钥在索引阶段自动剥离——缓存文件安全可保留
📊 统计面板 deja stats——看看你用 AI 写了多少、用了哪些工具、活跃度趋势
📤 分享会话 deja share <id>——把某个会话的精简摘要分享给同事,敏感信息已经自动脱敏
🔄 跨机同步 deja sync export/import——在多台机器间迁移记忆,增量追加、幂等安全
📝 主动记忆 deja remember "文本" 或 MCP remember——手动保存重要的决策和结论
📁 文件追溯 deja blame <路径>——哪些会话修改过这个文件?当时做了什么决定?
🧩 语义搜索 可选:接入本地 Ollama/LM Studio,即使换个说法也能命中相关结果

隐私优先:你完全掌控数据

Deja-vu 对隐私的考虑相当周到:

  • 提供 deja forget 命令移除指定会话,并生成 tombstone 记录防止后续重新索引时恢复
  • deja stats --redaction 可以查看各类敏感信息的脱敏统计
  • 支持通过 ~/.config/deja/exclude 配置文件排除特定项目
  • 支持环境变量 DEJA_EXCLUDE_PROJECTS 灵活控制

一个二进制文件搞定一切。不需要模型下载,不需要额外服务,什么都留在你的机器上。

技术架构亮点

作为一个零依赖的 Go 二进制文件,Deja-vu 的设计有几个亮点:

  • 纯 Go 实现:零依赖,单文件分发,跨平台运行
  • MCP 协议集成:通过 MCP(Model Context Protocol)让 AI 工具直接调用 recall 和 remember 能力
  • 多工具兼容:覆盖了主流 AI 编码工具的会话格式,Claude Code、Codex、OpenCode、Cursor、Gemini CLI、aider、Grok Build、Qwen Code 等
  • 倒排索引:毫秒级的全文本搜索性能
  • 可选的语义搜索:接入本地 Embedding 模型实现近似匹配

适用场景

适合你,如果你:

  • 每天重度使用 AI 编码助手,积累了大量的对话记录
  • 经常需要回头看之前修过的 bug 是怎么解决的
  • 在多个 AI 工具之间切换(Claude Code + Cursor + Codex),希望统一管理记忆
  • 注重数据隐私,不希望把对话记录上传到云端
  • 团队协作,想把调试经验在同事间共享

总结

AI 编码助手越来越强,但它们共同的短板就是——没有记忆。每次新会话都是从零开始,之前踩过的坑、想出的妙招、花了一个下午才调通的配置,全都不见了。

Deja-vu 用极简的方式解决了这个问题。一个零依赖的 Go 二进制文件,装上去 10 分钟,从此你的 AI 助手就有了”过目不忘”的能力。

项目上线不到一周,已经收获了 365+ Star。如果你每天都在用 AI 写代码,这个工具值得一试。

项目地址:https://github.com/vshulcz/deja-vu

官方文档:https://vshulcz.github.io/deja-vu/

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享