恢復 session
Sessions 在您工作時會持續儲存到本地文字記錄檔案,因此您可以在退出或執行/clear 後返回到一個。使用這些進入點:
| 命令 | 功能 |
|---|---|
claude --continue | 恢復目前目錄中最近的 session |
claude --resume | 開啟 session 選擇器 |
claude --resume <name> | 直接恢復命名的 session |
claude --from-pr <number> | 恢復連結到該 pull request 的 session |
/resume | 從活躍 session 內切換到不同的對話 |
claude -p 或 Agent SDK 建立的 sessions 不會出現在 session 選擇器中,但您仍然可以透過將其 session ID 傳遞給 claude --resume <session-id> 來恢復它。
session 選擇器查看的位置
Sessions 按專案目錄儲存。預設情況下,session 選擇器顯示來自目前 worktree 的互動式 sessions,以及在其他地方啟動並使用/add-dir 新增目前目錄的 sessions。使用 Ctrl+W 擴展到儲存庫的所有 worktrees,或使用 Ctrl+A 擴展到此機器上的每個專案。
從同一儲存庫的另一個 worktree 選擇 session 會在原地恢復它。從不相關的專案選擇 session 會將 cd 和恢復命令複製到您的剪貼簿。
按名稱恢復會在目前儲存庫及其 worktrees 中解析。兩種形式都會尋找完全相符的項目,並直接恢復它,即使它位於不同的 worktree 中:
| 命令 | 完全相符 | 模糊名稱 |
|---|---|---|
claude --resume <name> | 直接恢復 | 使用名稱預先填入作為搜尋詞開啟 session 選擇器 |
/resume <name> | 直接恢復 | 報告錯誤;執行不帶引數的 /resume 以開啟 session 選擇器 |
命名您的 sessions
為 sessions 提供描述性名稱,以便在 session 選擇器中找到它們並按名稱恢復。當您並行處理多個任務時,這最為重要。| 時間 | 如何設定名稱 |
|---|---|
| 啟動時 | claude -n auth-refactor |
| 在 session 期間 | /rename auth-refactor。名稱也會出現在提示列上 |
| 從 session 選擇器 | 反白 session 並按 Ctrl+R |
| 在計畫接受時 | 在 plan mode 中接受計畫會根據計畫內容命名 session,除非您已經設定了一個 |
claude --resume <name> 或 /resume <name> 返回到它。請參閱恢復 session 以了解名稱解析在 worktrees 中的行為方式。
使用 session 選擇器
在 session 內執行/resume,或不帶引數執行 claude --resume,以開啟互動式 session 選擇器。使用這些快捷鍵來導航、搜尋和擴展清單:
| 快捷鍵 | 動作 |
|---|---|
↑ / ↓ | 在 sessions 之間導航 |
→ / ← | 展開或摺疊分組的 sessions |
Enter | 恢復反白的 session |
Space | 預覽 session 內容。在不將其捕獲為貼上的終端上也可以使用 Ctrl+V |
Ctrl+R | 重新命名反白的 session |
/ 或除 Space 外的任何可列印字元 | 進入搜尋模式並篩選 sessions。貼上 GitHub、GitHub Enterprise、GitLab 或 Bitbucket pull 或 merge request URL 以找到建立它的 session |
Ctrl+A | 顯示此機器上所有專案的 sessions。再次按下以返回目前儲存庫 |
Ctrl+W | 顯示目前儲存庫所有 worktrees 的 sessions。再次按下以返回目前 worktree。僅在多 worktree 儲存庫中顯示 |
Ctrl+B | 篩選為目前 git 分支的 sessions。再次按下以顯示所有分支 |
Esc | 退出 session 選擇器或搜尋模式 |
Ctrl+A 擴展到所有專案後,專案路徑會出現。
使用 /branch、/rewind 或 --fork-session 建立的分支 sessions 會分組在其根 session 下。按 → 展開群組。
分支 session
分支會建立迄今為止對話的副本並將您切換到其中,保持原始對話完整。使用它來嘗試不同的方法,而不會失去您所在的路徑。 從 session 內,執行/branch 並使用可選名稱:
--continue 或 --resume 與 --fork-session 結合:
/branch 確認會列印兩個 session ID:您現在所在的新分支和原始分支。要返回原始分支,將其 ID 傳遞給 /resume、使用 session 選擇器或執行 /resume <original-name>。您使用「允許此 session」核准的權限不會轉移到新分支。如果您在兩個終端中恢復同一 session 而不進行分支,來自兩者的訊息會交錯到一個文字記錄中。
有關單個 session 內基於 checkpoint 的 rewind,請參閱 Checkpointing。
在 session 內管理上下文
這些命令控制上下文視窗中的內容,而無需離開 session:/clear:以空上下文重新開始。先前的對話已儲存並可恢復/compact [instructions]:用摘要替換歷史記錄,可選擇性地專注於您指定的內容/context:顯示目前消耗上下文的內容
匯出和定位 session 資料
執行/export 將目前對話複製到您的剪貼簿或將其儲存為純文字檔案,訊息和工具輸出呈現為可讀文字。傳遞檔案名以直接寫入該檔案。
文字記錄儲存為 JSONL,位置為 ~/.claude/projects/<project>/<session-id>.jsonl,其中 <project> 衍生自您的工作目錄路徑。每一行都是訊息、工具使用或中繼資料項目的 JSON 物件。要將 sessions 儲存在 ~/.claude 以外的位置,請設定 CLAUDE_CONFIG_DIR。這些本地檔案預設在 30 天後被移除;使用 cleanupPeriodDays 變更此設定。
要完全禁止文字記錄寫入,請設定 CLAUDE_CODE_SKIP_PROMPT_HISTORY,或在非互動模式中使用 --no-session-persistence。
另請參閱
這些頁面涵蓋相關的 session 和平行處理機制:- Worktrees:在單獨的分支上執行隔離的平行 sessions
- Checkpointing:將程式碼和對話 rewind 到較早的點
- Context window:什麼填充上下文以及什麼在壓縮中存活
- Non-interactive mode:
claude -p下的 session 行為