deja-vu 是一款为编程智能体提供记忆能力的本地工具。它利用 Claude Code、Codex、Cursor 等 42 种智能体已经保存在磁盘上的会话历史,建立索引,让智能体不再重复调试已经修复过的问题。
用途
编程智能体在每次会话中都会把历史记录保存到磁盘。deja-vu 将这些历史(可回溯数月)全部索引,并在当前智能体工作时把相关部分交给它。这样,在 Codex 中发现的修复可以在 Claude Code、Cursor 或 opencode 中复用,所有 42 种智能体读取同一个索引。
主要能力
- 本地搜索:在终端运行
deja打开搜索界面,可搜索所有智能体的历史。支持按智能体(如codex:)、时间(today、yesterday、week、month)和项目(in:<project>)过滤。 - 会话启动自动回忆:在会话开始、编辑文件前、运行命令前以及命令失败后自动提供回忆,无需手动询问。
- 索引工作内容:不仅索引对话,还索引每轮打开的文件、带退出状态的命令、编辑替换的确切范围。
- 状态标记:
deja promote <id> --state rejected可标记被回退的决定,后续命中会说明该决定曾被尝试及被放弃的原因;--state accepted可撤销标记。 - 本地与隐私:无模型、无嵌入、无服务器。索引构建时会剥离密钥和令牌,替换为
[redacted:<kind>],周围文本仍可搜索。 - 跨机器同步:
deja sync ssh laptop可在机器间同步,无需云服务;deja handoff --to codex可切换到另一个智能体继续。 - 单一 Go 二进制:支持 macOS、Linux 和 Windows,可通过 Homebrew、Scoop、winget、npm 或 go install 安装。
- 可选语义回忆:通过
DEJA_EMBED_URL指向本地 Ollama、LM Studio 或 OpenAI 兼容端点,改写后的查询也能命中。未设置时,词法搜索和 MCP 回忆照常工作。
使用方式
在 macOS 和 Linux 上,安装脚本将二进制放入 ~/.local/bin。若该目录不在 PATH 中,需运行脚本打印的下一行命令或打开新 shell。安装后运行第二条命令,将 MCP 回忆接入所有检测到的智能体,在支持的智能体上开启会话启动回忆,并构建首个索引。
启动新的智能体会话,询问几个月前做过的工作,例如:
have we dealt with jwt refresh rotation before? check your memory
也可直接运行 deja 自行搜索。其他安装方式包括:
brew install deja-vugo install github.com/vshulcz/deja-vu/cmd/deja@latestnpx @vshulcz/deja-vu "query"(无需安装即可试用)
Windows 上安装脚本会因不支持而退出,可使用 Scoop 或 winget,或从最新发布中下载 deja-vu_<version>_windows_amd64.zip 并将 deja.exe 放入 PATH。
仅使用二进制即可完成搜索:索引、搜索、show、ctx、blame、--json 和脱敏都不需要其他组件。deja install 用于将 MCP 接入智能体并开启会话启动回忆,是可选的。deja warmup 会在 ~/.agents/skills/deja-search/SKILL.md 留下技能文件,教智能体使用 CLI 契约。
适用场景
- 编程智能体需要回忆过去会话中已解决的问题。
- 在多个智能体之间共享修复和决策。
- 需要本地、私密的会话历史搜索,不依赖云服务。
- 需要在不同机器间同步会话记忆。
限制
- 索引和搜索是本地操作;网络仅用于
deja update、deja sync ssh、deja doctor中的版本检查、deja embed以及交互命令中每天一次的最新版本查看。DEJA_OFFLINE=1或DEJA_NO_UPDATE_NOTICE=1可关闭。 - 脱敏无法捕获所有敏感信息,源转录仍保留原始内容;
deja secrets可列出包含密钥的会话而不打印值,deja secrets --scrub可重写能处理的部分。 - 语义回忆需要可访问的嵌入端点;无可用运行时则回退到词法搜索。
- TRAE IDE 的聊天记录在加密数据库中,只能通过 MCP 和技能接入,钩子需在设置中手动开启。
- 部分智能体不支持用户级指令文件或会话启动回忆机制。
- 具体收费、价格、平台支持细节暂未提供。