命令列工具
vshulcz/deja-vu avatar
vshulcz/deja-vu

deja-vu:為你的編碼代理的過去會話提供本地記憶層

你的代理已經解決了這個問題。 deja 找到它,它會索引您的編碼代理程式已寫入磁碟的會話、安裝它之前的幾個月歷史記錄,並在所有 17 個會話開始時自動呼叫它們。 LongMemEval-S 上的命中率為 84.9%,無法學碩士,無嵌入。一個零深度二進位文件,完全本地化。

811 個 Star77 個 ForkGoMIT

秒懂

它是什麼?
一個單一 Go 二進位檔案索引你的編碼代理已寫入磁碟的會話日誌,使數月的歷史可在本機搜尋,無需 LLM 呼叫或嵌入。
適合誰用?
vshulcz-deja-vu 適合需要 README 已列功能、命令或資料格式的使用者,不適合把單一範例當成完整保證。先用 deja、LongMemEval-S、hit@1、sessions、index 核對安裝結果與輸出,再決定是否納入正式流程;對文件未說明的部分保留疑問,不以推測補齊。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 1 天前。
用什麼語言寫的?
主要是 Go(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

vshulcz-deja-vu:編碼代理將歷史寫入磁碟;deja-vu 使其可搜尋

Claude Code、Codex、opencode、aider、Gemini CLI 以及其他十多種代理都將每次對話寫入本機檔案。這些檔案包含數 GB 的已除錯問題和設計決策,但實際上無法搜尋。deja-vu 是一個單一的 Go 二進位檔案,它讀取這些儲存並建立本機倒排索引,因此從你安裝之前數月的歷史立即變為可搜尋。README 列出了十七種 deja-vu 能理解的工具鏈會話格式,從 Claude Code 的 JSONL 專案檔案到 Cursor 的基於 SQLite 的狀態和 aider 的聊天歷史 markdown。

針對 vshulcz-deja-vu,這一節要核對 deja、LongMemEval-S、hit@1、sessions、index 中的具體記號。請在隔離環境執行 README 列出的命令,保留輸入、輸出、版本與錯誤訊息,並觀察這個專案實際產生的結果。README 未說明的效能、安全性與相容範圍,不能由範例延伸推定。

vshulcz-deja-vu:無需 LLM 呼叫的追溯記憶

deja-vu 刻意在沒有嵌入模型或 LLM 的情況下工作。該專案報告在 LongMemEval-S 會話檢索基準上達到 84.9% 的 hit@1,在 LoCoMo 上達到 69.8%,並且零 LLM 呼叫、零嵌入、零 API 金鑰。搜尋是詞彙性的:多詞查詢是 AND 匹配,常見填充詞被忽略,子字串匹配,雙引號短語要求連續文字。時間是一個提示而不是過濾器;詢問五月發生什麼會將那個月的會話推到排名頂部,而不排除其他部分。當你真正想要一個視窗時,存在 `--since` 標誌。

針對 vshulcz-deja-vu,這一節要核對 deja、LongMemEval-S、hit@1、sessions、index 中的具體記號。請在隔離環境執行 README 列出的命令,保留輸入、輸出、版本與錯誤訊息,並觀察這個專案實際產生的結果。README 未說明的效能、安全性與相容範圍,不能由範例延伸推定。(vshulcz-deja-vu-deep-analysis 第2節)

vshulcz-deja-vu:安裝和首次索引建置

你可以透過 curl 安裝程式、`go install`、`npx` 或 Homebrew 安裝 deja-vu。README 還記錄了 Claude Code 外掛市場安裝以及 Codex、Cursor、Qwen、Copilot CLI 和 OpenClaw 的外掛安裝。在安裝期間,`deja install` 寫入 MCP 伺服器接線並從它找到的任何歷史記錄建立索引,因此安裝後的第一次代理會話是即時的,而不是為建置付出代價。執行裸 `deja` 而沒有索引時也會建置它。安裝命令記錄它接線的內容,後來的版本變更只重寫它安裝的目標,無需重新執行任何東西。

針對 vshulcz-deja-vu,這一節要核對 deja、LongMemEval-S、hit@1、sessions、index 中的具體記號。請在隔離環境執行 README 列出的命令,保留輸入、輸出、版本與錯誤訊息,並觀察這個專案實際產生的結果。README 未說明的效能、安全性與相容範圍,不能由範例延伸推定。(vshulcz-deja-vu-deep-analysis 第3節)

vshulcz-deja-vu:命令列及其能做什麼

核心命令是 `deja <query>`,它返回匹配的會話,包含工具鏈、日期和片段。`deja ctx` 生成最佳匹配的緊湊 markdown 摘要,以便管道輸入提示。`deja blame <path>` 列出討論過該檔案的會話,`deja restore <path>` 可以返回代理替換的跨度,`deja files <topic>` 顯示一個主題涉及哪些檔案,按特異性排名。`deja friction` 顯示在三個或更多獨立會話中出現的錯誤,`deja stats` 給出標題計數和月度迷你圖,`deja doctor --json` 為每個檢查報告明確狀態,即使發現問題也以零退出。

針對 vshulcz-deja-vu,這一節要核對 deja、LongMemEval-S、hit@1、sessions、index 中的具體記號。請在隔離環境執行 README 列出的命令,保留輸入、輸出、版本與錯誤訊息,並觀察這個專案實際產生的結果。README 未說明的效能、安全性與相容範圍,不能由範例延伸推定。(vshulcz-deja-vu-deep-analysis 第4節)

vshulcz-deja-vu:透過 MCP 和會話開始召回進行代理整合

deja-vu 暴露了一個 MCP 伺服器,帶有 `recall` 工具、返回 markdown 摘要的 `recall_context` 工具、`blame` 工具和用於儲存持久筆記的 `remember` 工具。使用 `--auto`,SessionStart 鉤子在你詢問之前將相關記憶注入上下文,按你的倉庫正在觸及的檔案排名,上限為 2KB,並且是唯讀的。Claude Code 還獲得一個 PreCompact 鉤子,在壓縮之前將轉錄捕獲到索引中。README 列出了哪些工具鏈支援自動召回、恢復和交接;並非所有都支援,有些如 aider 沒有 MCP 用戶端,而是依賴上下文檔案。

針對 vshulcz-deja-vu,這一節要核對 deja、LongMemEval-S、hit@1、sessions、index 中的具體記號。請在隔離環境執行 README 列出的命令,保留輸入、輸出、版本與錯誤訊息,並觀察這個專案實際產生的結果。README 未說明的效能、安全性與相容範圍,不能由範例延伸推定。(vshulcz-deja-vu-deep-analysis 第5節)

vshulcz-deja-vu:隱私、脫敏和遺忘

索引和搜尋是本地的。憑據在索引時被脫敏:AWS 金鑰、通用的 `api_key=` 賦值、Bearer 令牌、JWT、PEM 私鑰區塊、提供者令牌以及賦值右側的高熵值被替換為 `[redacted:<kind>]`,而周圍的文字保持可搜尋。`deja forget` 從重建的索引中移除匹配的會話,並記錄確切的會話墓碑,以便後續的 `deja index` 無法從源歷史中恢復它們。墓碑儲存在 `~/.config/deja/tombstones` 中,並鏡像在索引旁邊。README 還記錄了 `deja share` 和 `deja sync export` 在輸出時重新應用脫敏。

針對 vshulcz-deja-vu,這一節要核對 deja、LongMemEval-S、hit@1、sessions、index 中的具體記號。請在隔離環境執行 README 列出的命令,保留輸入、輸出、版本與錯誤訊息,並觀察這個專案實際產生的結果。README 未說明的效能、安全性與相容範圍,不能由範例延伸推定。(vshulcz-deja-vu-deep-analysis 第6節)

vshulcz-deja-vu:實測效能和可重現的基準

在 1,250 多個會話、約 3.3GB 跨三個工具鏈的真實語料庫上,熱搜尋的中位數約為 1.5ms,冷索引約需 10 秒,索引大小約為語料庫的 2.3%。索引是增量的,因此會話檔案的增長只會導致重新讀取該檔案。倉庫提供了兩個基準測試工具:`deja bench recall` 執行一個合成集,目前被詞彙搜尋飽和,並作為迴歸底線;`deja bench context` 構建 30 個種子化的多會話任務鏈和五個陰性對照。在上下文實驗中,deja-recall 達到了與原始日誌 grep 相同的事實覆蓋率,但 token 數約為 200 倍更少,同時在陰性對照鏈上不注入任何內容。

針對 vshulcz-deja-vu,這一節要核對 deja、LongMemEval-S、hit@1、sessions、index 中的具體記號。請在隔離環境執行 README 列出的命令,保留輸入、輸出、版本與錯誤訊息,並觀察這個專案實際產生的結果。README 未說明的效能、安全性與相容範圍,不能由範例延伸推定。(vshulcz-deja-vu-deep-analysis 第7節)

編輯結論

vshulcz-deja-vu 適合需要 README 已列功能、命令或資料格式的使用者,不適合把單一範例當成完整保證。先用 deja、LongMemEval-S、hit@1、sessions、index 核對安裝結果與輸出,再決定是否納入正式流程;對文件未說明的部分保留疑問,不以推測補齊。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記