← 返回目录
D

deja-vu

社区
二十五个编程 agent 共享的一份本地记忆,来自磁盘上已有的会话历史。
GitHub 源仓库 ↗
★ 796 Stars 分类 · 开发工具 非常热门
72FMRS · B

deja-vu 是由 vshulcz(Vladislav Shulcz)维护的本地优先 agent 记忆工具,MIT 许可,不属于任何 agent 供应商的官方项目。它的核心差异在于记忆来源:直接索引本机已有会话历史,因此安装后即可回溯安装之前的工作,而不是从空开始向前记录。官方 README 给出的指标包括 LongMemEval-S 85.3% hit@1、LoCoMo 69.6%,以及 1,551 个会话、143k 消息、5.2GB 语料上约 0.4ms 的进程内查询中位耗时;这些数字另有第三方来源可验证。MCP 侧只暴露一个 deja 工具,用 mode 区分六种行为,并通过 PreToolUse/PostToolUse 等 hook 在动作点自动召回。适合同时使用多个编程 agent、重视本地化与免 LLM 检索的开发者;不适合需要托管式共享记忆或不愿承担模式匹配脱敏局限的用户。

可靠性
11/20
安全与权限
14/20
维护活跃度
15/20
文档质量
18/20
安装易用性
14/20
查看 FMRS 评分方法 →

deja-vu 是一个本地优先的记忆层,用来索引本机编程 agent 已经写到磁盘上的会话历史(Claude Code、Codex、Cursor、Copilot CLI、OpenClaw 等共二十五个 harness),并在任意 agent 提问时把相关记忆还给它。它不依赖云端:索引与搜索都在本地完成,凭据在建立索引时被脱敏。官方说明称它不需要 LLM 或 embedding 即可进行词法检索;可选的语义检索需要自行配置本地 Ollama/LM Studio 或 OpenAI 兼容端点。它通过 stdio 提供 MCP 服务,暴露一个名为 deja 的工具,用 mode 参数区分 recall、context、blame、fix、how、remember 等用法,另外六个旧工具名(recall、recall_context、blame、fix、how、remember)仍然可用。安装方式包括安装脚本、Homebrew、go install、Scoop 以及 npx @vshulcz/deja-vu,其中 deja install 会把 MCP 接入检测到的各个 agent。

工具能力

deja
唯一的 MCP 工具,通过 mode 参数选择行为:recall 返回匹配片段;context 返回最佳匹配会话的 Markdown 摘要;blame 返回讨论过某个文件的会话;fix 返回本机此前遇到同一错误后实际做了什么;how 返回本机实际使用的命令调用方式;remember 存储一条持久决策。可读参数包括 query、path、error、what、text、tags、harness、project、since、limit、offset、all。

安装接入

1) 安装:macOS/Linux 运行 curl -fsSL https://raw.githubusercontent.com/vshulcz/deja-vu/main/install.sh | sh;也可用 brew install deja-vugo install github.com/vshulcz/deja-vu/cmd/deja@latest;Windows 用 scoop install deja-vu(安装脚本在 Windows 上会退出并提示 unsupported OS)。2) 运行 deja install --auto 自动把 MCP 接入检测到的 agent、开启支持的 session-start recall 并建立首个索引;只想要 MCP 接入可加 --all,不想写入各 agent 指引文件可加 --no-guidance。3) 手动配置 MCP 时,使用 stdio 命令:npx @vshulcz/deja-vu mcp,或直接使用 deja mcp。4) 用 deja doctor [--deep] 自检接入状态与索引。

claude_desktop_config.json
{"mcpServers":{"deja-vu":{"command":"npx","args":["@vshulcz/deja-vu","mcp"]}}}

选型与风险

适合谁

  • 同时使用多个编程 agent(Claude Code、Codex、Cursor、Copilot CLI、OpenClaw、opencode、Gemini CLI、Qwen Code、Kimi Code、Zed 等)并希望它们共享历史的开发者
  • 希望记忆完全本地化、不发送到云端、不需要 LLM 或 embedding key 的用户
  • 需要回溯数月前会话以复用既有修复方案与决策的工程团队

不适合谁

  • 希望记忆工具自动抓取网页、云端知识库或团队共享服务的用户(本项目聚焦本地会话历史)
  • 不接受在任何情况下把(已脱敏的)索引文本发送到远端 embedding 端点的用户,除非改用 Ollama/LM Studio 等本地运行时
  • 需要托管式、多租户或企业集中管理方案的组织
  • 期望零配置即获得语义检索的用户(语义检索需显式配置 DEJA_EMBED_URL 等环境变量)

所需权限

  • 读取本机各 agent 的会话历史目录(例如 Claude Code 的 `~/.claude/projects`、Codex 的 `~/.codex/sessions`、Cursor 的 state.vscdb)
  • 在 `~/.cache/deja` 写入本地倒排索引与向量 sidecar(.vectors.bin)
  • 运行 `deja install` 时写入各 harness 的用户级指引文件或其中的标记块(可用 --no-guidance 跳过)
  • 部分 harness 解析需要本机工具:Cursor、Grok Build、Hermes、opencode、Crush、Zed 需要 sqlite3,DeepSeek Harness 与 Zed 需要 zstd
  • 网络仅在 `deja update`、`deja sync ssh` 和 `deja doctor` 的版本检查时使用;配置 DEJA_EMBED_URL 后才会把脱敏后的索引文本发往 embedding 端点

风险与副作用

  • 脱敏基于模式匹配,并非秘密检测:未知形态的密钥可能通过并进入摘要、分享或同步导出
  • 原始会话文件中的秘密仍保留在各个 harness 自己的文件里,deja-vu 不会修改这些源文件
  • 配置远端 embedding 端点后,脱敏后的索引文本(截断约 2k 字符)会离开本机;使用 Ollama 或 LM Studio 则保持本地
  • `deja forget` 通过重建索引并写入 tombstone 删除会话,但不会删除源 harness 文件
  • 不同 harness 的会话格式可能随版本变化而影响解析完整性

常见排障

  1. MCP 未被接入:运行 `deja doctor`,模块中说明在仅安装二进制的场景下所有 MCP 目标都会显示 `not-wired`,这是预期状态;可重跑 `deja install --auto`
  2. Windows 上安装脚本报 `unsupported OS`:改用 Scoop 或从 latest release 取 zip 并把 deja.exe 放入 PATH(如 `%USERPROFILE%\.local\bin`)
  3. 某些 harness 没有结果:确认是否安装了对应依赖(sqlite3、zstd),并使用 DEJA_*_ROOT 环境变量指向自定义存储位置
  4. 语义检索不生效:确认已设置 DEJA_EMBED_URL(未设置时会探测 localhost:11434 和 localhost:1234),并运行 `deja embed`;DEJA_EMBED_OFF=1 会关闭探测
  5. 索引陈旧或结果不全:运行 `deja index` 重新增量建立索引,`deja doctor --deep` 可将索引与源文件对照校验
  6. 想彻底清除:`deja uninstall --all` 后删除 `~/.cache/deja`

使用场景

在 Codex 里解决过的问题,在 Claude Code 里提问时也能被召回
检索安装 deja-vu 之前的历史会话(Claude Code transcript 超过 30 天被清理后,已索引内容仍可搜索)
在 agent 编辑文件或执行命令前召回该文件/命令的既有决策与可用调用方式
在命令失败后查询本机此前遇到同一错误时的后续处理
把本机 agent 工作历史导出为本地 HTML 页面(deja view),或在 `~/.agents/skills` 下以 skill 方式让不支持 MCP 的 agent 使用搜索能力
在多台机器之间同步记忆(deja sync ssh)或在 agent 之间交接上下文(deja handoff)

支持客户端

Claude Code完整支持
Codex CLI完整支持
Cursor完整支持
Copilot CLI完整支持
VS Code Copilot Chat完整支持
Gemini CLI完整支持
Qwen Code完整支持
opencode完整支持
Zed完整支持
Cline完整支持
Goose完整支持
Kimi Code完整支持
OpenClaw完整支持
Roo Code完整支持
Continue完整支持
Crush完整支持
aider部分支持