【免费下载链接】deja-vu
Memory for Claude Code, Codex, Cursor and 38 more coding agents, built from the session history already on your disk. Local search, MCP and hooks, no LLM, one Go binary.
deja-vu 是一款本地运行的 AI Agent 记忆层:它把 Claude Code、Codex、Cursor 等 41 款编程智能体已经写在磁盘上的会话历史建成索引,再通过 MCP 服务器和 Hooks 把记忆自动召回给正在干活的 Agent——不需要 LLM、不需要向量库,只装一个 Go 二进制。下面是完整的配置教程。
为什么 Agent 每次都"失忆"
用过 Claude Code 或 Codex 的同学大概都有这个体验:
- 上个月修好的
connection pool exhausted,这次又从头调试一遍; - 上次定下的架构决策,换个 Agent 接手就全盘重议;
- 会话被压缩(compaction)后,任务目标、失败的命令全丢了。
好消息是:这些历史并没有丢。每个 Agent 都会把每次会话写到本地文件(如~/.claude/projects、~/.codex/sessions),只是没人把它们变成可检索的记忆。
如上图所示,没有人手动搜索——是 Agent 自己调用了 deja-vu 的 MCP 工具完成召回。
三步装出记忆:deja-vu 一键安装步骤
deja-vu 的核心设计是"安装即满血":装完当天,几个月前的历史就已全部可搜索(官方实测 17.6 秒索引 19,195 个会话)。macOS / Linux 上只需两条命令:
curl -fsSL https://raw.githubusercontent.com/vshulcz/deja-vu/main/install.sh | sh deja install --auto第二条deja install --auto是关键,它一次完成三件事:
- 把 MCP 召回接进它找到的每一个 Agent(写入各 Agent 的 MCP 配置);
- 在支持的地方打开会话启动召回(即 Hooks 自动召回);
- 建好第一份索引,让下一次会话不必等待。
其他安装方式:brew install deja-vu、npm i -g @vshulcz/deja-vu、go install .../cmd/deja@latest;Windows 用scoop install deja-vu或winget install vshulcz.deja-vu。仓库入口 install.sh,中文安装说明见 README.zh.md。
装完后打开一个新会话,问一句几个月前做过的事,比如"我们以前处理过 jwt refresh rotation 吗?"——开启自动召回后,Agent 打开会话就已经知道答案,你甚至不用特意去问。
MCP 服务器配置:一个工具,八种模式
deja-vu 的 MCP 服务器只暴露一个工具deja(通过deja mcp以 stdio 方式启动),用mode参数区分用途。官方配置文件 mcp.json 长这样:
{ "mcpServers": { "deja": { "type": "stdio", "command": "deja", "args": ["mcp"] } } }少而精的设计带来了实打实的 token 收益:一个工具每轮只占 477 token 的定义开销,而同类服务器最大的是它的 17 倍。各mode的作用:
| 模式 | Agent 问什么 | 返回什么 |
|---|---|---|
recall | 问题、报错原文 | 高相关历史片段(≤4KB) |
context | 同 recall | 最佳匹配会话的 Markdown 摘要,含改过的代码 |
blame | 文件路径 | 哪些会话讨论过这个文件、定了什么结论 |
fix | 失败的输出 | 这台机器上次遇到同样报错后做了什么 |
how | 工具名,如go test | 本机真实跑通过的调用方式(含完整参数) |
orient | 无需参数 | 本项目历史上跑过的命令和文件,帮新会话"定向" |
remember | 一条持久决策 | 存下来供以后召回 |
handoff | 会话 id | 目标、结论、进度交接,方便换 Agent 继续 |
想不装 MCP 也能用:deja warmup会写一个技能文件到~/.agents/skills/deja-search/SKILL.md,教会 Agent 直接走 CLI(deja search --json等),仓库副本见 skills/deja-search/SKILL.md。
Hooks 自动召回:记忆在五个时刻自己出现
这是 deja-vu 最出彩的部分。deja install --auto会在 Agent 支持的地方挂上 hooks,让记忆在五个时刻自动送达——Agent 不需要"想起来问":
| 触发时刻 | Hook | 作用 |
|---|---|---|
| ① 会话启动 | hook-context | 送达本项目相关的历史决策、未关闭的待办 |
| ② 每次提问 | hook-prompt | 若这个问题已解决过,直接提示deja-vu: you have been here |
| ③ 编辑/执行前 | hook-tool(PreToolUse) | 给出该文件/命令此前的结论和有效的调用方式 |
| ④ 命令失败时 | hook-tool-after(PostToolUse) | 报出本机上次从同样报错中恢复的修复手段 |
| ⑤ 上下文压缩前 | hook-precompact | 保住任务目标、结论、命令成败,压缩后原样交还 |
以 Claude Code 插件为例,失败回调的声明在 claude-plugin/hooks/hooks.json 里一目了然:
{ "hooks": { "PostToolUseFailure": [{ "matcher": "Bash|PowerShell", "hooks": [{ "type": "command", "command": "\"${CLAUDE_PLUGIN_ROOT}/hooks/deja.sh\" hook-tool-after" }] }] } }各 Agent 的挂载脚本统一是deja.sh分发到上述子命令(源码入口 cmd/deja/main.go,Claude Code 钩子脚本见 claude-plugin/hooks/deja.sh)。每个 hook 都是本地词法检索:端到端约 0.2 秒,不会拖慢 Agent,更不等待任何模型。
终端里直接敲
deja(无参数)就打开图中的搜索界面:↑↓选会话、↵打开、r恢复、o换 Agent 继续,支持codex:、today、in:<项目>等筛选。
常用命令速查与自检:装完怎么验证
装完建议跑一遍deja doctor——它会逐项报告 MCP 是否接好、hook 是否生效、索引是否健康。平时最常用的几个命令:
deja "jwt refresh token"—— 全量历史搜索(多词为 AND,支持模糊词形);deja brief—— 今日会话 + deja 已送达过什么 + 最近工作概览;deja wip—— 当前目录上一个会话在干什么、卡在哪条命令;deja fix <报错>—— 本机历史上从同样报错中恢复的修复;deja friction—— 在 3 个以上会话里反复出现的错误(附 Agent 名);deja log --last—— 回放 Agent 上一次实际收到的召回内容,排查"它看到了什么"。
隐私方面可以放心:索引、搜索全部本地(~/.cache/deja),建索引时密钥、token、PEM 等会自动替换为[redacted:<kind>];不想索引的项目逐行写进~/.config/deja/exclude即可。完整数据流见 docs/SECURITY-MODEL.md。
总结:十分钟,给 41 个 Agent 装上共享记忆
回到本文开头的场景:接好 MCP + Hooks 之后,你在 Codex 里修好的坑,Claude Code 接手时自动记得;会话被压缩后,任务和命令的成败记录原样交还;新会话一打开,项目过去的决策就已经在上下文里。这就是 deja-vu 的完整价值闭环:
install.sh+deja install --auto两条命令完成全部接线;- MCP 单工具
deja覆盖 recall / context / fix / how 等 8 种查询模式; - Hooks 在会话启动、每次提问、编辑前、命令失败、压缩前五个时刻自动召回,全程本地、毫秒级。
相关文档:ARCHITECTURE.md(索引与数据流)、compaction.md(压缩时保住了什么)、docs/readme/README.zh.md(完整中文说明)。
【免费下载链接】deja-vu
Memory for Claude Code, Codex, Cursor and 38 more coding agents, built from the session history already on your disk. Local search, MCP and hooks, no LLM, one Go binary.
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考