← 返回目录
D

deja-vu

社区
二十五个编程 agent 共享的一份本地记忆,来自磁盘上已有的会话历史。
分类
开发工具 第 12 / 438
Stars
★ 1.2k 非常热门
传输方式
stdio(本地进程)
运行环境
Node.js · 预编译二进制 · Go
凭据
无需凭据
许可证
MIT
最近提交
工具数
1
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 检索的开发者;不适合需要托管式共享记忆或不愿承担模式匹配脱敏局限的用户。

最强项 · 文档质量 18/20 最弱项 · 可靠性 11/20

可靠性
11/20
安全与权限
14/20
维护活跃度
15/20
文档质量
18/20
安装易用性
14/20
查看各项评分依据
可靠性 11/20
静态证据显示较强的可验证承诺:README 声称仓库内含两套基准脚本(LongMemEval-S、LoCoMo)与 deja bench recall/context/block,CI 徽章与 'CI fails if recall drops' 表明有回归门;安装为单一本地 Go 二进制,MCP 传输为 stdio,server.json 与 README 的 `deja mcp` 入口一致,工具表(deja 单工具 + 6 个兼容旧名)内部自洽。但按静态校准,本次未执行任何命令,评测只读到 README/manifest 节选,未看到实际 workflow YAML、测试文件或错误处理代码,因此不可超过 12 分上限。扣分点:无法确认 CI 覆盖 MCP 初始化与工具列表握手;五大 harness 矩阵中存在 ⚠(上游 bug 阻塞)与 sqlite3/zstd 外部依赖,失败路径与降级行为的可诊断性未在材料中给出证据。
安全与权限 14/20
无红线迹象:索引与搜索本地进行,网络仅在 update、sync ssh、doctor 版本检查时使用;授权点明确(stdio 本地进程、无隐式远程命令执行)。凭据治理是亮点且有边界说明:索引期脱敏 AWS key、api_key=/token=、bearer/JWT、PEM 块、高熵值,share/sync export 出站再脱敏,forget 写 tombstone 防止重建恢复;安全模型文档单列,且明确承认 'pattern matching is not secret detection',属诚实披露而非过度承诺。扣分/保留:默认可选语义检索在未显式设置 DEJA_EMBED_URL 时会自动探测 localhost:11434/1234,若用户本机已有 Ollama/LM Studio 则发生隐式出网/本地调用,虽有 DEJA_EMBED_OFF 但默认开启属权限范围未完全收敛;远程 embedding 会把截断约 2k 字符的脱敏文本发送到第三方端点,需用户自担;install.sh 走 curl | sh 管道执行,无校验步骤展示。整体无红线,故不落入 0-4 区间。
维护活跃度 15/20
证据支持持续活跃:版本号 0.13.0 起、GitHub Releases、CI workflow、CONTRIBUTING.md、ROADMAP.md、.mcpb 打包、多生态分发(npm opencode-deja/dsh-deja、Zed 扩展、Kimi/Grok/Codex 插件市场、Homebrew、Scoop、go install),另有 25 个 harness 的解析器注册表与合成 fixture 校验,说明迭代节奏密集且所有权清晰(MIT © Vladislav Shulcz,单一作者)。扣分点:796 stars / 31 open issues 但材料未提供任何 issue 响应时延、安全响应通道(SECURITY 联系方式)或依赖更新策略的证据,治理为单维护者模式、无治理文件;Windows 支持仍自称 battle-tested 不足并指向 issue #9。故给 15 而非更高。
文档质量 18/20
文档质量属于明显高于平均的水平:安装(install.sh/brew/go/npx/mcpb/Scoop)、手动 MCP 配置与工具参数表(deja 工具 + mode 的 query/path/error/what/text/tags/harness/project/since/limit/offset/all)、返回形状、6 个旧工具名兼容说明、支持的 25 个 harness 逐项能力矩阵(含 ✅/⚠/✕/— 图例)、每个 harness 的额外依赖(sqlite3/zstd/roo CLI)、隐私与脱敏范围、性能与索引体积实测数字、三套基准的命令与结果表、边界与局限('pattern matching is not secret detection'、语义检索不可用时 lexical 回退、Windows CI 覆盖但路径未成熟、Claude Code 30 天清理策略)、卸载与清空路径,均给出可复核链接(ARCHITECTURE/SECURITY-MODEL/registry/json-output)。扣分:本次仅有 README 节选,SECURITY-MODEL.md、ARCHITECTURE.md、benchmark 复现细节未在材料中直接可见,部分数字(85.3% hit@1、5.2GB/1551 sessions)依赖外部页面自证,故不判满分。
安装易用性 14/20
安装路径清晰且步骤少:`curl -fsSL .../install.sh | sh` 加 `deja install --auto` 两步即完成索引与多 agent 接线;亦提供 brew、go install、npx 免安装试用、Scoop、Windows zip、Releases 的 .mcpb bundle,另有六大 harness 的自家生态包可按单一路径安装且与 CLI 路径不冲突(共享 server id / 只补缺失)。manifest 中 npm 包带 runtimeHint npx 与 positional 'mcp' 参数,手工配置示例明确。扣分:静态校准上限 15,且实际安装依赖 shell 脚本执行(Windows 明确 'unsupported OS',需改走 Scoop/zip)、Cursar/opencode/Crush/Zed 等需要 sqlite3/zstd 等系统依赖、自动接线会写入约 22 个 harness 的 guidance 文件与 ~/.agents/skills(有 --no-guidance 可退出但默认写盘面较广),这些使易用性依赖环境而不能判定为无摩擦。

静态评测 · 未实际运行收录于 2026-09-10

查看 FMRS 评分方法 →

选型与风险

能访问什么读取本地文件写入 / 删除本地文件执行命令或代码

适合谁

  • 同时使用多个编程 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 的会话格式可能随版本变化而影响解析完整性

安装接入

准备工作

运行环境:Node.js · 预编译二进制 · Go

DEJA_EMBED_KEY 可选密钥 可选,访问需要鉴权的第三方 embeddings 端点时显式设置的密钥;优先级高于 OPENAI_API_KEY。
OPENAI_API_KEY 可选密钥 可选,仅在 HTTPS api.openai.com 端点时自动使用,不会隐式发送到本地或第三方端点。
其他可选配置项(3 个)
DEJA_EMBED_URL 可选 可选,指向本地 Ollama/LM Studio 或 OpenAI 兼容的 embeddings 端点,用于语义召回;不设置则默认探测 localhost:11434 和 localhost:1234。
DEJA_EMBED_MODEL 可选 可选,指定 embeddings 使用的模型名,例如 text-embedding-3-small。
DEJA_EMBED_OFF 可选 可选,设为 1 可关闭对本地 embeddings 运行时的自动探测。

1) 安装:macOS/Linux 运行 curl -fsSL https://raw.githubusercontent.com/vshulcz/deja-vu/main/install.sh | sh;也可用 brew install deja-vu、go 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] 自检接入状态与索引。

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

以 Claude Code 为例。其他客户端的配置文件位置或字段可能不同(如 VS Code 使用 servers 字段),可用下方配置生成器转换。

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

写入项目的 .vscode/mcp.json(VS Code 使用 servers 字段)。

Terminal
claude mcp add deja-vu -- npx @vshulcz/deja-vu mcp

在终端运行;先把 <…> 占位符换成你自己的值。

验证是否装好

运行 `deja install --auto` 后,新开一个 agent 会话,确认客户端工具列表中出现 `deja` 这个 MCP 工具;然后问一个几个月前解决过的问题,如果它能引用以前会话的内容作答,说明召回已生效。

常见排障

  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`

试试这样问

连接成功后,可以直接对 AI 助手这样说:

  • 我们之前处理过 jwt 刷新令牌轮换吗?查一下你的记忆
  • 这个问题三周前修过——不管当时是哪个 agent 修的,帮我回忆一下怎么修的
  • 这台机器上实际是怎么跑测试套件的?带上真实的命令行参数
  • 上次出现同样的连接池耗尽错误之后,我们执行了什么才解决的?

工具能力 1

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

使用场景

在 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
Cursor
GitHub Copilot CLI
VS Code Copilot Chat
Gemini CLI
Qwen Code
OpenCode
Zed
Cline
Goose
Kimi Code
OpenClaw
Roo Code
Continue
Crush
aider部分支持

依据项目文档列出,未经本站实测。

详细介绍

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。

同类可选方案

Context7 80 · B

Upstash 官方维护,为 AI 编码助手提供实时更新的第三方库文档

★ 63.3k · 工具数 2 与当前对比 →

源版本 e89e3d9df4bd 数据同步于 2026-10-19 查看 FMRS 评分方法