每次啟動新的 Claude Code 會話時,所有資料都會被清除。你的程式設計風格偏好、專案架構決策、昨天的除錯會話——全部都會消失。
你最終會重複自己的話:“我們使用的是 Supabase,而不是 Firebase。邊緣函數位於supabase/functions/下。請勿使用虛擬資料。”
claude-mem透過跨會話加入持久性記憶體解決了這個問題。它在發布後 48 小時內就獲得了 4.6 萬個 GitHub star。我安裝了它,並首先建造了一個輕量級的 DIY 替代方案,以下是我的發現。
GitHub:https://github.com/thedotmack/claude-mem
這款插件賦予 Claude Code 長期記憶功能。它會自動記錄您在會話期間的操作,並將相關的上下文資訊融入未來的對話中。
5 個生命週期鉤子:會話開始 / 使用者提示提交 / 工具使用後 / 停止 / 會話結束
SQLite + Chroma :混合搜尋(關鍵字 + 向量相似度)
Bun HTTP Worker :localhost:37777 上的後台服務
MCP 工具:三層漸進式揭露(搜尋 → 時間軸 → 取得觀察結果)
Web UI :視覺化記憶體瀏覽器
npx claude-mem install
npx claude-mem start # Requires Bun
在發現 claude-mem 之前,我只使用兩個 PowerShell 腳本和 Claude Code 的原生 hooks API 建立了一個最小的記憶體系統。
每次使用Bash或Write工具後觸發。將 git 提交和新檔案建立記錄到每日 markdown 檔案:
memory/auto-capture/2026-04-13.md
- 09:15 [abc1234] feat: Add user authentication
- 09:32 [Write] auth_middleware.dart
- 10:01 [def5678] fix: Token refresh logic
讀取最近三天的錄製內容,並在新會話開始時將其作為上下文資訊匯入。人工智慧可以立即了解你一直在做什麼。
{
"hooks": {
"PostToolUse": [{
"matcher": "Bash|Write",
"hooks": [{
"type": "command",
"command": "powershell -File auto-capture.ps1"
}]
}],
"SessionStart": [{
"hooks": [{
"type": "command",
"command": "powershell -File session-resume.ps1"
}]
}]
}
}
| 特色 | claude-mem | DIY掛鉤 |
|---------|-----------|-----------|
| 安裝 | npx install (1 個指令) | 2 個腳本,手動安裝 |
| 自動擷取 | 所有工具使用情況 | Git 提交 + 僅寫入 |
| 搜尋 | 向量相似度 + 關鍵字 | grep(文字搜尋) |
| Web 使用者介面 | localhost:37777 | 無 |
| 依賴項 | Bun + SQLite + (Chroma) | 無 |
| 代幣成本 | LLM 壓縮(Gemini = 免費) | 零 |
| 支援 Git | 資料庫檔案(已在 .gitignore 中忽略) | Markdown 文件(可共享) |
| 多實例 | 會話範圍隔離 | 用於協調的文件共用 |
好訊息是:它們可以完美共存。 claude-mem 註冊為插件,而 DIY hooks 則直接在 settings.json 中註冊。兩者在相同的事件上觸發,不會發生衝突。
智慧壓縮:使用 LLM(Gemini/Claude)將工具輸出匯總成緊湊的觀測資料。
語義搜尋:「我上週對授權系統做了什麼?」 真的有效。
網路儀表板:已擷取內容的直覺概覽
零依賴:無需伺服器、資料庫或執行環境。
團隊共享:Markdown 檔案可以提交到 Git 並在不同實例之間共用。
完全掌控:您可以完全決定要拍攝哪些內容以及如何拍攝。
真正免費:完全無需任何 API 呼叫。
claude-mem 預設使用 Claude API 進行壓縮,這會消耗您的令牌。切換到 Gemini(免費)即可避免此問題:
// ~/.claude-mem/settings.json
{
"CLAUDE_MEM_PROVIDER": "gemini",
"CLAUDE_MEM_GEMINI_API_KEY": "your-free-key-from-aistudio.google.com"
}
在我們的專案(Flutter Web + Supabase,3 個並行的 Claude Code 實例)中,我們採用了分層方法:
| 圖層 | 工具 | 用途 |
|-------|------|---------|
| L1:會話內 | claude-mem(SQLite) | 自動記錄所有工具使用情況,語意搜尋 |
| L2:會話間 | DIY鉤子(Markdown) | Git提交歷史,跨實例共享 |
| L3:跨專案 | NotebookLM 主腦 | 深度研究,長期架構知識 |
claude-mem 兌現了其承諾,將 Claude Code 從「一次性工具」轉變為「不斷發展的合作夥伴」。向量搜尋和 Web 使用者介面是真正實用的功能,很難用簡單的腳本來實現。
然而,對於想要零依賴、零代幣成本和 git 友善記憶體共享的團隊來說,DIY hook 方法是一個不錯的起點。
我的建議:先使用 DIY hooks 來最大限度地減少記憶體佔用,然後在需要語義搜尋和自動壓縮時再加入 claude-mem。
使用Claude Code建置 | 專案:https://my-web-app-b67f4.web.app/