跳到主要內容
maxstudioNews
AI 自動化DEV Community (Claude Code)約 3 分鐘

Claude Code 會話紀錄 30 天後自動刪除,如何避免?

Claude Code 的會話紀錄預設會在 30 天後自動刪除,且不會有任何警告或回收桶。若要避免資料遺失,使用者可以修改設定檔中的 cleanupPeriodDays 參數來延長保存期限。此外,文章也提供了在會話選取器中尋找舊會話的技巧,以及透過指令行工具搜尋會話內容的方法。

Claude Code 會話紀錄 30 天後自動刪除,如何避免?
圖片來源:DEV Community (Claude Code)

如果舊的 Claude Code 會話在 /resume 中遺失,可能有兩種原因:它被刪除了,或者它仍然存在但選取器找不到它。

Claude Code 會在 30 天後刪除舊會話。Claude Code 將每個會話儲存為 ~/.claude/projects/ 下的 .jsonl 檔案,每個專案一個資料夾。

其中有一個名為 cleanupPeriodDays 的設定,預設值為 30。Claude Code 會定期刪除在該天數內未曾使用的會話檔案,且不會發出任何訊息,沒有警告,也沒有回收桶。(自 v2.1.248 起,在 Claude 桌面應用程式中啟動的會話不受此限制,但 CLI 會話則不然。)這指的是您機器上的檔案,而非 claude.ai 的聊天紀錄。

我檢查了自己的機器,我的提示詞歷史可以追溯到三月,但所有超過 30 天的會話都消失了,總共有 86 個。要阻止這種情況發生,請開啟 ~/.claude/settings.json 並設定一個較大的數字,例如:{ "cleanupPeriodDays" : 3650 },這大約是 10 年。

請注意,0 並不代表「永遠保留」,它會導致驗證失敗(舊版本曾會因為 0 而完全停止儲存會話)。因此,請使用一個較大的數字。已經被刪除的會話就真的消失了,您的機器上不再有它們的任何紀錄。

如果會話在 30 天內(或者您已經提高了設定值),它可能仍然存在於磁碟上。/resume 遺漏它的原因有兩個:它只顯示您目前所在專案的會話。在選取器中按下 Ctrl+A 可以查看所有專案的會話。

在選取器中輸入文字只會匹配會話標題,而不是您實際說過的內容。標題通常是您的第一條訊息,例如「修復這個」或「查看錯誤」。因此,如果您記得主題但忘記了資料夾或第一條訊息,選取器將無法提供太多幫助。

第三種方法是手動搜尋會話內容。您可以透過 grep 指令搜尋檔案:grep -ril "payload size" ~/.claude/projects/。這種方法有效,但您會得到原始的 JSON 內容,需要自行判斷是哪個會話檔案,然後 cd 到正確的資料夾並自行執行 claude --resume <id>。

我個人使用的是 ccback,這是一個免費的開源 CLI 工具,因為我厭倦了手動搜尋。您可以透過 npm install -g ccback 安裝它,然後執行 ccback payload size。

ccback 會搜尋您和 Claude 在所有專案中所有會話中寫過的所有內容(按詞語和意義),顯示匹配的訊息,按下 Enter 即可在原始資料夾中重新開啟該會話。一個誠實的提醒:ccback 讀取的是相同的檔案,所以它無法恢復 Claude Code 已經刪除的會話。請務必先提高 cleanupPeriodDays 的設定值。

總結來說,超過 30 天的會話會在啟動時被刪除。請在 ~/.claude/settings.json 中設定 "cleanupPeriodDays": 3650。/resume 只顯示一個專案並僅匹配標題。按下 Ctrl+A 可以顯示所有專案。要搜尋實際說過的內容,請在 ~/.claude/projects/ 中使用 grep -r,或者使用 ccback 工具。

Share

覺得值得一看?分享給朋友。

以上為 AI 自動翻譯導讀。原文版權歸 DEV Community (Claude Code) 所有, 建議透過「閱讀原文」前往原始網站,以取得最完整資訊並支持原作者。

Newsletter

不用每天追,AI 重點每週寄給你

43 個來源、每 2 小時更新,太多看不完。電子報每週挑最值得看的幾則,附上 Max 的看法。

每週一封。Email 只用來寄電子報,每封信都能一鍵退訂。