Claude Code

Quản lý session Claude Code: resume, đặt tên, rẽ nhánh, xuất transcript

Tóm tắt

Mọi hội thoại Claude Code là một session quay lại được: --continue cho phiên gần nhất, --resume để chọn, /rename để đặt tên, /branch để rẽ nhánh thử hướng khác. Transcript giữ 30 ngày mặc định; resume phiên dài sau khi nghỉ lâu sẽ tốn hơn bạn nghĩ.

Hôm qua bạn làm dở một refactor với Claude Code, hôm nay mở terminal mới thì mọi thứ trống trơn. Hay bạn muốn thử một hướng khác mà không mất hướng đang làm. Claude Code lưu mọi hội thoại thành session gắn với thư mục dự án, và có đủ công cụ để quay lại, đặt tên, rẽ nhánh hay xuất transcript. Nắm vững chúng giúp bạn không phải giải thích lại bối cảnh từ đầu, tức là đỡ tốn token.

Quay lại phiên cũ

LệnhTác dụng
claude --continueMở lại phiên gần nhất trong thư mục hiện tại
claude --resumeMở danh sách chọn phiên
claude --resume <tên>Mở thẳng phiên theo tên
claude --from-pr <số>Lọc các phiên gắn với pull request đó
/resumeChuyển sang phiên khác ngay trong phiên đang chạy

Phiên được khôi phục gồm lịch sử hội thoại, model, permission mode (với đa số cách resume từ terminal) và cả goal đang chạy. Nhưng một số cờ lúc khởi động như --mcp-config, --settings, --add-dir phải truyền lại.

Đặt tên để tìm lại dễ

claude -n auth-refactor      # đặt tên lúc mở
/rename auth-refactor        # đổi tên giữa phiên
claude --resume auth-refactor

Phiên không đặt tên vẫn có tiêu đề tự sinh từ prompt đầu, dùng để resume được; nhưng tên tự đặt dễ nhớ hơn nhiều khi chạy nhiều việc song song.

Danh sách chọn phiên

  • Space: xem trước nội dung; Ctrl+R: đổi tên.
  • Ctrl+W: mở rộng ra mọi worktree của repo; Ctrl+A: mọi dự án trên máy; Ctrl+B: chỉ nhánh git hiện tại.
  • Dán URL pull request vào ô tìm kiếm để tìm phiên đã tạo PR đó.

Rẽ nhánh để thử hướng khác

/branch thu-cach-streaming          # trong phiên
claude --continue --fork-session    # từ dòng lệnh

Rẽ nhánh sao chép hội thoại tới thời điểm đó rồi chuyển bạn sang bản sao; phiên gốc nguyên vẹn. Nếu resume cùng một phiên ở hai terminal mà không fork, tin nhắn hai bên sẽ trộn vào một transcript.

Lưu ở đâu, giữ bao lâu?

  • Transcript lưu dạng JSONL tại ~/.claude/projects/<project>/<session-id>.jsonl.
  • Mặc định giữ 30 ngày, đổi bằng cleanupPeriodDays.
  • /export xuất hội thoại dạng văn bản đọc được; định dạng JSONL là nội bộ, có thể đổi giữa các phiên bản nên đừng viết script đọc trực tiếp.

Rủi ro và lưu ý

  • Resume phiên dài sau thời gian nghỉ tốn kém: cache đã hết hạn nên lượt đầu đọc lại toàn bộ; Claude Code có thể hỏi "Resume this conversation?" kèm ước lượng phần hạn mức sẽ dùng.
  • Transcript chứa mọi thứ: code, output lệnh, có thể cả bí mật in ra terminal. Bảo vệ thư mục ~/.claude.
  • Phiên -p và SDK không hiện trong danh sách: resume bằng session ID.

Áp dụng thế nào?

  • Dev: Đặt tên phiên theo ticket hoặc nhánh; cuối ngày dùng /clear thay vì để phiên phình mãi, mai --resume nếu cần.
  • Tech Lead: Dùng /branch trước các quyết định thiết kế lớn để có đường lui.
  • PM: /export phiên điều tra sự cố làm tài liệu postmortem.

Nguồn & tham khảo

  1. Manage sessions — Claude Code Docs