Quản lý session trong Claude Code: /rewind, /rename, và hơn thế
Một session trong Claude Code là ngữ cảnh làm việc của bạn — cuộc trò chuyện, các
file mà Claude đã đụng vào, việc đang làm. Không quản lý thì session chất đống mà
không có tên, ngữ cảnh đầy ắp lịch sử cũ, và một chỉnh sửa hỏng khiến bạn cuống cuồng
tìm tới git reset. Vài lệnh biến mớ hỗn độn đó thành thứ bạn điều khiển được: hoàn
tác về bất kỳ điểm nào trước đó, đặt tên session để tìm lại, và giữ ngữ cảnh gọn nhẹ.
Bài này đi qua những lệnh tôi hay dùng, kèm một ví dụ thực hành cho mỗi cái.
/rewind — nút undo cho cả một session
Đây là lệnh làm thay đổi cách bạn làm việc. Claude Code tạo một checkpoint mỗi khi
bạn gửi một prompt — tự động, hồi tố, không cần thiết lập. Khi có gì đó hỏng,
/rewind cho bạn nhảy về bất kỳ điểm nào trong số đó.
Mở nó bằng lệnh /rewind, hoặc nhấn Esc hai lần khi ô nhập đang trống. (Nếu
bạn đã gõ gì đó, Esc hai lần sẽ xóa ô nhập thay vì mở menu.) Bạn nhận được một menu
liệt kê mọi prompt trong session, và với mỗi cái, một lựa chọn về việc khôi phục gì:
- Restore code and conversation — cuộn cả file lẫn cuộc trò chuyện về điểm đó.
- Restore conversation — quay lại cuộc trò chuyện, giữ nguyên file hiện tại.
- Restore code — hoàn tác các chỉnh sửa file của Claude, giữ cuộc trò chuyện.
- Summarize from / up to here — nén một phần lịch sử để giải phóng ngữ cảnh (nói thêm ở phần sau).
Hạn chế bạn buộc phải biết: /rewind chỉ hoàn tác các chỉnh sửa mà Claude thực
hiện qua công cụ chỉnh sửa của chính nó. Nó không hoàn tác:
- Tác dụng phụ của Bash. Nếu Claude chạy
rm old.jshaymv a btrong một lệnh shell, cái đó không được theo dõi — rewind sẽ không mang file trở lại. - Chỉnh sửa của subagent và các job chạy nền.
- Bất cứ thứ gì ngoài dự án — database, deployment, lời gọi API.
Với những cái đó, git vẫn là lưới an toàn của bạn. Rewind lo cái thường ngày "Claude
vừa sửa một file và tôi muốn bỏ chỉnh sửa đó", vốn là đa số trường hợp. (Snapshot được
giữ cho 100 checkpoint gần nhất và hết hạn sau khoảng 30 ngày.)
Ví dụ thực hành. Bạn nhờ Claude refactor một module. Nó viết lại ba file, và giờ test hỏng theo kiểu khó lần ra. Thay vì hoàn tác bằng tay:
> /rewind
↑/↓ tới prompt ngay trước cuộc refactor
Chọn "Restore code and conversation"
Bạn trở lại trạng thái xanh (test pass) — cả file lẫn cuộc trò chuyện — như thể cuộc refactor chưa từng xảy ra. Giờ bạn có thể diễn đạt lại yêu cầu và thử lại.
/rename — đặt cho session cái tên bạn nhận ra
Mặc định, một session được đặt một tiêu đề do AI tạo từ prompt đầu tiên của bạn. Ổn
thôi, cho tới khi bạn có năm session đang mở và trình chọn (picker) là một bức tường
những tiêu đề na ná nhau. /rename đặt cho một session một cái tên ngắn, dễ nhớ, hiện
ra ở status line, trong session picker, và trong các danh sách session.
> /rename auth-refactor
Bạn cũng có thể đặt tên session lúc khởi động bằng claude -n auth-refactor, hoặc đổi
tên từ trong session picker bằng cách tô sáng nó và nhấn Ctrl+R. Cái tên trở thành
một resume handle (đầu mối để mở lại) — bạn có thể nhảy thẳng về bằng claude --resume auth-refactor (nói thêm ở dưới).
Ví dụ thực hành. Bạn đang xoay ba việc cùng lúc: một bug fix, một feature, và một code review. Đặt tên mỗi session ngay khi bắt đầu:
> /rename fix-login-race
# ... ở một terminal khác ...
> /rename feat-csv-export
# ... ở một terminal thứ ba ...
> /rename review-pr-482
Giờ picker đọc như một danh sách việc cần làm, và claude --resume fix-login-race thả
bạn thẳng vào đúng cái — không cuộn, không đoán.
/resume và --continue — quay lại làm việc
Session tồn tại lâu dài, nên bạn có thể rời đi rồi quay lại. Có hai đường vào:
claude --continue(hayclaude -c) mở lại cuộc trò chuyện gần nhất trong thư mục hiện tại. Không menu — cứ thế tiếp tục chỗ bạn dừng.claude --resumemở session picker để chọn từ các session cũ. Truyền một cái tên để bỏ qua menu:claude --resume auth-refactor.- Bên trong một session,
/resumemở đúng cái picker đó để đổi cuộc trò chuyện mà không cần rời Claude Code.
Picker đáng để học. Phím mũi tên để di chuyển; Enter để mở lại; / (hoặc cứ gõ) để
lọc theo tên hay tiêu đề; Ctrl+R để đổi tên; Ctrl+A để mở rộng ra các session từ
mọi dự án trên máy. Bạn thậm chí có thể dán một URL của PR vào ô tìm kiếm để tìm
ra session đã tạo ra nó.
Ví dụ thực hành. Hôm qua bạn gập laptop giữa chừng. Hôm nay, từ thư mục dự án:
claude -c # nhảy thẳng về session của hôm qua
Hoặc, nếu bạn có vài cái đang chạy và muốn đúng một cái:
claude --resume # chọn "fix-login-race" từ danh sách
/clear và /compact — giữ ngữ cảnh gọn nhẹ
Một session dài làm đầy cửa sổ ngữ cảnh (context window). Hai lệnh xử lý việc đó, và chúng ngược nhau:
/clearbắt đầu một cuộc trò chuyện mới toanh trong cùng session — ngữ cảnh trống, tờ giấy trắng. Cuộc trò chuyện cũ được lưu và vẫn mở lại được.CLAUDE.mdvà memory của bạn được mang theo; các file bạn đã đọc thì không./compacttóm tắt cuộc trò chuyện tại chỗ, thay lịch sử dài bằng một bản tóm tắt có cấu trúc để bạn tiếp tục trong cùng một mạch. Nó tiêm lạiCLAUDE.md, memory, và vài file bạn sửa gần nhất, nên ngữ cảnh của việc vẫn còn.
Quy tắc chung: /clear khi bạn chuyển sang việc không liên quan (lịch sử debug cũ
giờ chỉ là tiếng ồn và tốn token ở mỗi tin nhắn). /compact khi vẫn cùng một việc
mà ngữ cảnh đầy dần và bạn muốn đi tiếp.
/compact nhận một focus (trọng tâm) tùy chọn:
> /compact focus on the auth changes and the failing test
Cái đó bảo bản tóm tắt cần giữ rõ những gì. Và các lựa chọn /rewind → Summarize
là bản dao mổ — nén đúng một đoạn dài dòng (chẳng hạn một khúc debug lê thê) trong khi
để nguyên hướng dẫn ban đầu và phần việc về sau.
Ví dụ thực hành. Bạn dành một tiếng debug một race condition; ngữ cảnh phình lên với những lần thử cụt đường. Bạn đã sửa xong và muốn chuyển sang viết test:
> /compact focus on the final fix for the login race
# ngữ cảnh co lại thành một bản tóm tắt gọn; bạn giữ nguyên session và bắt đầu viết test
Nếu thay vào đó bạn đã xong hẳn con bug đó và chuyển sang một feature không liên quan,
/clear mới là lựa chọn tốt hơn — một tờ giấy trắng, ngữ cảnh cũ được lưu để dành.
Vài lệnh nữa đáng biết
/branch [name]tách (fork) cuộc trò chuyện hiện tại thành một session mới, để nguyên cái gốc. Rất hợp cho "để tôi thử một cách khác mà không mất cái này". Từ CLI:claude --continue --fork-session./exportsao chép hoặc lưu cuộc trò chuyện hiện tại thành văn bản dễ đọc — tiện để chia sẻ một phiên debug hay lưu lại cách một thứ được dựng nên./contextcho thấy một bản phân tích trực tiếp về thứ gì đang ngốn cửa sổ ngữ cảnh của bạn (CLAUDE.md, memory, file, lịch sử). Chạy nó trước khi/compactđể thấy cái gì thật sự đang chiếm chỗ.
Một cheat sheet để lấy dùng
- Lỡ sửa hỏng?
/rewind(hoặcEsc Esc) → khôi phục code hoặc code+conversation. Nhớ là nó không hoàn tác Bashrm/mv— đó là việc củagit. - Quá nhiều session?
/renametừng cái; mở lại theo tên bằngclaude --resume <name>. - Quay lại?
claude -ccho session gần nhất,claude --resumeđể chọn một cái. - Chuyển việc?
/clear. Cùng một việc, ngữ cảnh đầy?/compact(thêm một focus). - Muốn thử hai hướng?
/branch.
Session thì rẻ để tạo và dễ để lạc mất dấu. Bỏ ra hai phút học mấy lệnh này và Claude Code thôi là một cuộc trò chuyện độc nhất chạy loạn, mà trở thành một tập các không gian làm việc có tên, hoàn tác được, mở lại được, mà bạn thật sự kiểm soát.
Link tham khảo
Bài viết gốc (tiếng Anh): Managing Sessions in Claude Code: /rewind, /rename, and More
All Rights Reserved