教學

操作手冊 · Claude-Mem

Claude Code 跨 session 持久化記憶外掛

Claude-Mem 完整使用說明:Claude Code 的持久化記憶外掛,以 SQLite + ChromaDB 儲存跨 session 的工作脈絡。涵蓋安裝、三層架構、日常查詢、隱私控制、token 注意事項與競品比較。

Claude-Mem 是以單行指令安裝的 Claude Code 外掛,將每次 session 的決策、bug 修復、檔案脈絡存入本機 SQLite + ChromaDB,並在下次啟動時自動注入相關上下文。本手冊涵蓋安裝、架構、查詢方式、隱私控制與常見問題。

thedotmack/claude-mem
星標
79.8K
分支
6.9K
授權
—
資料截至
閱讀時間
11 分
更新日期
開啟原始報告
作者
Alex Newman @thedotmack
授權
AGPL-3.0(開源免費)
GitHub
44,000+ stars
本機儲存位置
~/.claude-mem/

01章節

本書目錄

10 章節 · 約 15 分鐘讀完

02Chapter 01

Claude-Mem 解決的問題

Claude Code 預設沒有跨 session 的記憶。每次重新開啟,它對 codebase 一無所知,架構決策、認證 bug、Docker volume 設定需要重新說明。這個狀況在開發者社群稱為「Goldfish Brain(金魚腦)」。

傳統的解法有兩個,但都不夠用:把 CLAUDE.md 塞滿、或讓 Claude 自動寫 memory。前者每次 session start 就把整份文件灌進 context,不管你今天做的是哪個功能;後者 Anthropic 自己也承認是 unstructured(無結構)、不可搜尋的。當專案規模超過幾千行,這兩種方法都會崩潰。

Claude-Mem 走另一條路:它在 Claude Code 的生命週期 hook(SessionStart、PostToolUse、UserPromptSubmit、Stop)注入觀察者,自動抓取每一次工具呼叫的輸入與輸出,用 Claude 的 agent-sdk 壓縮成結構化的 observation,存進本機 SQLite,並用 ChromaDB 建立向量索引。下次你問「我們上次怎麼修那個 Docker mount 的 bug?」它能秒答。

它解決的三個具體痛點

  1. 架構決策不必重講:「為什麼這個服務用 PostgreSQL 而不是 Redis?」之類的回答只需講一次,以後 session 自動帶入。

  2. **同樣的 bug 不必修兩次:**修過的 Docker volume mount 錯誤,下次出現會直接被認出來。

  3. **token 消耗下降:**原作者宣稱長期任務可降低 95% 的 token 用量(但這個數字有爭議,見第 8 章)。

03Chapter 02

三層檢索架構說明

Claude-Mem 採用漸進式揭露(Progressive Disclosure)三層檢索,避免一次將所有記憶載入 context 消耗大量 token,只在需要完整細節時才往下展開。

三層檢索架構
  1. Tier 1

    Index 層 — 標題與時間戳

    • 列出符合查詢的觀察 ID、標題、類型、時間。Claude 先看這個,判斷哪些可能相關。
    • ~50–100 tokens / 結果
  2. Tier 2

    Timeline 層 — 上下文敘事

    • 提供特定觀察前後的時間軸,讓 Claude 理解事件流但不展開完整內容。
    • 中等 token 消耗
  3. Tier 3

    Full Details 層 — 完整觀察

    • 只在 Claude 認為「這條 ID 真的需要」時才抓完整資料。含 facts、narrative、concepts 等欄位。
    • ~500–1000 tokens / 結果

依官方文件,這套漸進檢索比一次全部載入節省約 10 倍 token。mem-search 執行於 fork 出去的 subagent,搜尋的中間步驟不會影響主對話的 context window。

底層技術元件

  • SQLite(~/.claude-mem/claude-mem.db):結構化 observation 儲存。

  • ChromaDB:向量嵌入,做語意搜尋。

  • Bun + uv:第一次安裝時自動裝上,Bun 跑 worker,uv 是 Chroma 的 Python 套件管理器。

  • Worker Service:Express API,跑在 port 37700 + (uid % 100),預設舊版是固定 37777。

  • 6 個 Hooks:Setup、SessionStart、UserPromptSubmit、PreToolUse(Read)、PostToolUse、Stop。

04Chapter 03

正確的安裝方式與常見錯誤

安裝後沒有出現記憶功能,通常是因為執行了 npm install -g claude-mem。該指令只安裝函式庫,不會向 Claude Code 註冊 hook,也不會啟動背景 worker。

方法 A:從 Claude Code 內部安裝(官方推薦)

打開 Claude Code,進到任何一個 session,輸入這兩行:

claude code

text
/plugin marketplace add thedotmack/claude-mem
/plugin install claude-mem

然後完全離開 Claude Code、再開一次。注意是「完全退出」,不是 /clear。重啟之後 hook 會註冊、worker 會啟動。

方法 B:用 npx(不要用 npm install -g)

terminal

bash
npx claude-mem install

這條指令會:檢查 Node 是否 ≥ 18、自動裝 Bun 與 uv、註冊 hooks 到 ~/.claude/plugins/、建立 ~/.claude-mem/ 目錄與預設 settings.json、啟動 worker。

驗證安裝成功

重啟 Claude Code 後,新開一個 session,看頂部是不是多了一塊「previous observations relevant to what you're working on」的區段。如果有,就成功了。沒有的話,瀏覽器打開 http://localhost:37777(或你的自訂 port)看 Web Viewer。

05Chapter 04

第一次使用完整走一遍

安裝完不代表立刻有記憶。Claude-Mem 是在 session 結束時才會壓縮儲存。所以你需要先做一個「示範 session」讓它記東西,下一個 session 才看得到效果。

  1. 進入你的專案資料夾

    用你平常的方式進入 codebase 根目錄,啟動 Claude Code:claude。Claude-Mem 是「以資料夾為單位」記憶的,所以路徑很重要。

  2. 跑一個完整的工作流程

    讓 Claude 幫你做一件事,例如「幫我看一下 auth 模組的結構,然後修這個登入 bug」。期間它會 read 檔案、跑 bash、改檔案,每一步都會被 PostToolUse hook 抓下來成為 observation。

  3. 結束 session

    用 /exit 正常離開,或直接關掉 terminal。Stop hook 會觸發壓縮,把這次 session 的觀察整理成結構化記憶。壓縮大約需要幾十秒,在背景跑,不會擋你。

  4. 下一次開啟 Claude Code

    同一個資料夾再開 Claude Code,SessionStart hook 會比對你正在做的事跟過去的記憶,把相關的 observation 注入 context。你會在最上方看到一個摘要區塊。

  5. 直接用自然語言問它

    「我們上一次怎麼處理 auth 那個 bug?」這類問題會自動觸發 mem-search skill,Claude 會在 subagent 裡搜尋本機記憶,只回傳相關片段。

06Chapter 05

日常查詢:記憶搜尋操作

查詢記憶以自然語言輸入即可。Claude 會判斷是否需要搜尋本機記憶,決定查詢時 UI 會顯示 mem-search skill 被觸發。

5.1萬用查詢句型

下面這些句子任何一句都會觸發 mem-search:

natural language queries

text
# 回顧
"我們上次做了什麼?"
"What did we do last session?"

# 找特定 bug 或決策
"這個 bug 我們以前修過嗎?"
"我們是怎麼實作 authentication 的?"
"What changes were made to worker-service.ts?"

# 近期活動
"Show me recent work on this project"
"What was happening when we added the viewer UI?"

5.2mem-search skill 的 10 種搜尋模式

操作說明
Search Observations全文搜尋所有 observation
Search Sessions全文搜尋 session 摘要
Semantic Search透過 ChromaDB 向量做語意搜尋
Timeline Query抓某時段或某 ID 周邊的時間軸
Get Observation by ID用 ID 取單筆完整資料
File History查特定檔案的修改歷史
Concept Search用概念標籤(如 "auth"、"caching")搜
Filter by Type只看 decision / bug-fix / refactor 等類型
Recent Activity列出最近的觀察(預設最後 N 筆)
Cross-Session Search跨多個 session 找一致模式

07Chapter 06

Web Viewer:看見你的記憶

Claude-Mem 內建一個 React 寫的 Web Viewer,跑在本機 http://localhost:37777(或你 user 對應的 port)。打開瀏覽器就能即時看到記憶串流、搜尋整個歷史、管理設定。

Viewer UI 能做什麼

  • **即時觀察串流:**每次 Claude 跑工具,你能在 viewer 看到新的 observation 跑進來。

  • **全文 + 語意搜尋:**不必開 Claude Code,直接在瀏覽器搜過去的工作。

  • **切換版本通道:**在 Settings 可以打開 beta features。

  • **Smart Trash:**誤刪的記憶可以從垃圾桶救回來。

  • **引用觀察 ID:**直接連到 /api/observation/{id} 取完整內容,方便給其他工具引用。

08Chapter 07

隱私控制:<private> 標籤

Claude-Mem 記錄 session 中所有工具呼叫的輸入與輸出,包含檔案內容、bash 輸出、使用者 prompt。資料主要儲存於本機,但壓縮階段會將摘要送至 Anthropic API。在 terminal 處理 secret 時須留意此行為。

解決方法是用 <private> 標籤把不想被記下來的內容包起來:

prompt

text
這是我的 API key 設定流程,請幫我看一下格式對不對:

<private>
AWS_ACCESS_KEY=AKIA...
DATABASE_URL=postgres://user:pass@host/db
</private>

格式應該是 .env 還是 JSON 比較適合?

標籤剝除是發生在 hook 邊緣 處理,代表 private 內容根本進不到 worker 與 database。但這要你「記得用」,Claude-Mem 不會幫你自動偵測 secret。

把記憶分隔開:多 Profile 模式

同一台機器想跑工作專用、私人專用兩套記憶?Claude-Mem 支援多 profile,用環境變數切換即可。Port 也會自動分開不衝突。

09Chapter 08

社群整理的實用技巧 10 則

下列內容整理自 Reddit、GitHub Issues 及社群評測,涵蓋實際使用回饋與已知限制。

Found an open-source tool that gives Claude Persistent Memory via SQLite and reduces token usage by 95% on long-running tasks

r/ClaudeAI·2025-12-15

**實戰價值:**這是引爆 claude-mem 的原帖。95% 是長期任務的數字,日常使用不會那麼誇張。

Hit 5-hour usage limit in a SINGLE session with ~140k tokens

r/ClaudeAI·使用者警告

**反面教訓:**有報告指出 PostToolUse hook 每次都呼叫 agent-sdk 做摘要,Pro 方案的 5 小時 rolling limit 會被吃光。GitHub issue #618 還在追蹤。

Anytime it uses observation instead of relearning something… that's basically 8× more efficient to run off of Claude-mem observations

作者本人·慶祝 45K stars

**關鍵指標:**不要看 95%,看 8×。每命中一次記憶,就是 8 倍效率。代表「記憶命中率」比「壓縮率」更重要。

CLAUDE.md is a blunt instrument: it loads the entire file into context at session start, regardless of relevance.

DataCamp·2026 教學

**選型建議:**專案小用 CLAUDE.md 足夠;專案大、檔案多就用 claude-mem。兩個可以並存。

On a managed machine (corporate laptop, shared dev box) this is a real amount of "stuff" — port 37777, Bun, uv, SQLite all auto-install

andrew.ooo 評測·2026-04

**企業限制:**如果你在公司限制嚴格的 laptop 上,先確認 port 37777(或新版 37700+)沒被擋,uv 跟 Bun 能裝。

Once you've built up a few weeks of memory, switching away from Claude Code feels worse. Memory is a soft form of stickiness.

Medium @markchen69·2026-04

**長期考量:**累積幾週後,離開 Claude Code 的成本會升高。記憶資料是 SQLite,理論上可以匯出但目前沒有官方匯出工具。

10 個社群整理的實用招數

01

裝完先做「示範 session」

不要安裝完就期待立刻有效。先跑一個完整工作流(read 檔案、改 code、跑測試)讓它有東西記,下一個 session 才會看到效果。

02

定期看 Web Viewer 確認記憶品質

每週開一次 localhost:37777 看記憶有沒有亂掉。如果發現很多無意義的 observation(例如重複的 ls 結果),代表你的工作流可能讓它抓了太多噪音。

03

不要在同一個資料夾混做太多專案

claude-mem 以資料夾路徑為單位區分記憶。如果你在 home 目錄做了五個不同專案,記憶會混在一起。每個專案用獨立 git repo 資料夾。

04

用 <private> 包 secrets,但別依賴它

標籤是手動的,人會忘。比較安全的做法是把 .env 載入跟 secret 操作放到 Claude Code 沒接觸過的 shell session。

05

注意 token 消耗,先在便宜的任務上試

因為 issue #618,在重度使用前先用一個小專案測一週,看 token 消耗的差異。如果暴增就先暫停。

06

Windows 一律走 WSL2

原生 Windows 安裝會踩 npm 路徑問題。WSL2 + Ubuntu 是官方文件唯一明確支援的 Windows 路徑。

07

結合 Claude Desktop MCP 一起用

把 mcp-search server 設到 Claude Desktop 的 claude_desktop_config.json,可以在桌面版聊天裡直接搜尋你 terminal 的工作記憶。

08

備份 ~/.claude-mem/ 資料夾

幾週後這資料夾就是你的工作智慧財產。設個 rsync 或 Time Machine 排除路徑,但要備份。換機器時直接拷過去就接得回來。

09

觀察 GitHub issue #618 的進度

「Uses too much tokens」這個 issue 是 claude-mem 目前最大的開放問題。在投入生產用之前先去 GitHub 看當前狀態。

10

把 troubleshoot skill 當第一線客服

claude-mem 內建 troubleshoot skill,描述你遇到的問題就會自動診斷。不必先去 GitHub 翻 issue。

10Chapter 09

vs CLAUDE.md / Auto Memory / 競品

Claude Code 記憶方案不只 claude-mem 一種。可選項包括官方的 CLAUDE.md、Anthropic 內建的 Memory feature、Cole Medin 的 claude-memory-compiler、memsearch、Omega 等。以下比較各方案的差異與適用情境。

方案搜尋能力自動捕捉儲存適合
CLAUDE.md無手動靜態檔小專案、團隊共享規則
Auto Memory(官方)弱自動無結構個人偏好、輕量記憶
claude-mem三層 + 語意每個工具呼叫SQLite + Chroma長期專案、需要回顧決策
memsearch語意 + 結構自動Markdown + Milvus需要可讀、可 git 追蹤的記憶
claude-memory-compiler中自動知識文章愛 Karpathy 風格的學習筆記

判斷流程

  1. 專案 < 1000 行 + 規則簡單 → CLAUDE.md 就夠。

  2. 個人偏好(語氣、coding style) → Anthropic 內建 Memory 就好。

  3. 長期專案(數週以上)+ 你常常忘記昨天做了什麼 → claude-mem。

  4. 記憶要能 git diff 追蹤、團隊共享 → memsearch。

  5. token 預算很緊 → 先做小規模測試,評估 issue #618 是否影響你。

11Chapter 10

疑難排解 & FAQ

常見問題與解法整理如下,涵蓋安裝失敗、port 衝突、token 消耗異常及隱私控制等議題。

Q.裝完沒有任何記憶,新 session 上方也沒有任何摘要,怎麼辦?

99% 是因為你跑了 npm install -g claude-mem。改用 npx claude-mem install 或在 Claude Code 裡用 /plugin install claude-mem。然後完全退出 Claude Code 再開。

Q.localhost:37777 打不開?

新版預設 port 是 37700 + (uid % 100),不一定是 37777。看 ~/.claude-mem/settings.json 裡的 workerPort。或直接設環境變數 CLAUDE_MEM_WORKER_PORT。

Q.Token 用量爆增,5 小時 limit 一下就到?

這是已知 issue #618。臨時解法:(1) 在 settings 把 PostToolUse 的摘要頻率降低;(2) 改成只在 session 結束才摘要;(3) 大型 session 時暫時 disable plugin。長期看官方 patch。

Q.Windows 原生不能用嗎?

README 寫有 Windows Setup Notes 但官方推薦 WSL2。原生 PowerShell 路徑會碰到 npm: The term 'npm' is not recognized 之類的問題。

Q.怎麼確認某個敏感檔案沒被記下來?

用 Web Viewer 搜該檔名,看 observation 列表。如果有,從 viewer 的 Smart Trash 把它移到垃圾桶。長期應該用 <private> 標籤或避免讓 Claude 讀那個檔。

Q.記憶可以匯出 / 跨機器搬嗎?

可以,直接拷貝 ~/.claude-mem/ 整個資料夾到新機器,SQLite + Chroma 索引都在裡面。沒有官方 export 指令,但因為是 SQLite,你可以用任何 sqlite3 工具讀。

Q.跟 Cursor、Gemini CLI 等其他 AI tool 相容嗎?

官方 README 提到也支援 Gemini CLI(restart 即生效)。Cursor 目前不在官方支援列表,但 SQLite 資料庫是開放結構,理論上可寫 adapter。

Q.OpenClaw gateway 是什麼?需要嗎?

OpenClaw 是個 self-hosted gateway。可以一行指令把 claude-mem 裝成持久外掛、加上 Telegram/Discord/Slack 的觀察通知。一般本機用戶不需要,團隊或自架伺服器才會用到。

Useful Links

About This Guide

內容彙整自 Claude-Mem 官方文件、GitHub README、andrew.ooo 深度評測、DataCamp 教學、Medium 開發者實測、以及 r/ClaudeAI 社群討論。

授權注意:Claude-Mem 是 AGPL-3.0,部分元件(Ragtime)為 PolyForm Noncommercial。商用前請確認。

Editorial & design — Tenten

Updated · May 2026

參考資料