Claude Code cất scratchpad ở đâu, và vì sao nó biến mất

Mỗi phiên Claude Code đều thông báo một thư mục scratchpad rồi không bao giờ nhắc lại. Đây là đường dẫn chính xác trên macOS, Linux và Windows, thứ gì nằm cạnh nó, vì sao một lần khởi động lại hay một lần dọn file tạm xóa sạch nó, bạn có thể và không thể cấu hình gì, và quy tắc duy nhất chúng tôi giao cho bảy agent ghi vào đó mỗi đêm.

Mỗi phiên Claude Code bắt đầu bằng một dòng mà bạn có lẽ lướt qua. Dòng của chúng tôi, tối nay, trông thế này:

Scratchpad directory: /private/tmp/claude-501/-Users-jbchauvin-Projets-AgentsRoom/5a506305-…/scratchpad

Rồi CLI không bao giờ nhắc tới nó nữa. Không lệnh nào liệt kê nó, không bảng nào mở nó, và đến ngày bạn đi tìm file CSV mà agent nói đã ghi ở đó, thư mục có thể đã biến mất.

Chúng tôi chạy bảy agent theo lịch trên một chiếc Mac mini mỗi đêm, và mỗi agent đều ghi vào thư mục đó. Nên chúng tôi đã đi xem nó là gì, nó nằm ở đâu trên từng hệ thống, thứ gì xóa nó, và chúng tôi bảo các agent làm gì với nó. Mọi thứ dưới đây được kiểm tra trên Claude Code 2.1.278 ngày 19 tháng 9 năm 2026, và trên các issue GitHub mà mọi người mở khi họ mất việc làm trong đó.

Claude Code nói gì với agent

Dòng đó là một phần của system prompt. Chỉ dẫn theo sau nó, trong phiên bản hiện tại, nói rằng agent phải luôn dùng thư mục đó cho các file tạm, tức là kết quả trung gian, script và đầu ra không thuộc về dự án, thay vì /tmp hay bất kỳ thư mục tạm nào khác của hệ thống, rằng nó gắn với phiên và tách biệt khỏi dự án, rằng nói chung có thể dùng nó mà không cần yêu cầu cấp quyền, và rằng /tmp chỉ nên dùng khi bạn yêu cầu rõ ràng.

Phần cuối đó mới là phần hữu ích cho bạn. File ghi vào trong scratchpad không kích hoạt hộp thoại cấp quyền ghi, đó là lý do agent đặt các script phụ trợ và các bản xuất của nó ở đó thay vì hỏi bạn mỗi lần. Đó cũng là lý do bạn không bao giờ được hỏi, và không bao giờ được cho biết, chúng đã đi đâu.

Nếu bạn muốn có đường dẫn trong một phiên đang chạy, hãy hỏi agent. « In ra thư mục scratchpad của bạn » được trả lời từ system prompt, không cần chạy gì cả.

Đường dẫn, theo từng hệ thống

Thư mục nằm dưới thư mục tạm của hệ điều hành, và tên của nó mã hóa bạn là ai, bạn ở trong dự án nào, và đó là phiên nào.

Trên macOS và Linux:

/tmp/claude-<uid>/<đường dẫn dự án, dấu gạch chéo đổi thành gạch ngang>/<id phiên>/scratchpad

Trên Mac, /tmp là một liên kết tới /private/tmp, nên cùng thư mục đó được hiển thị là /private/tmp/claude-501/…. Con số là id người dùng của bạn, thứ id -u in ra: 501 cho tài khoản đầu tiên trên Mac, 1000 trên hầu hết các bản phân phối Linux, 0 cho root. Báo cáo Linux chúng tôi trích dẫn bên dưới cho thấy /tmp/claude-0/, vì pipeline chạy dưới quyền root trong một container. Các issue mở sớm hơn trong năm 2026 cho thấy /tmp/claude/<slug dự án>/… không có uid nào cả, nên hậu tố đã được thêm vào dọc đường. Nếu bạn đang ở bản build cũ hơn, hãy bỏ nó đi.

Trên Windows, theo báo cáo trên Windows 11 vào tháng 7 năm 2026:

%TEMP%\claude\<slug dự án>\<id phiên>\scratchpad

thường mở rộng thành C:\Users\<bạn>\AppData\Local\Temp\claude\…. Đường dẫn được suy ra từ biến TEMP, nên nếu bạn trỏ TEMP sang chỗ khác, scratchpad đi theo.

Slug dự án là thư mục làm việc của bạn với mọi dấu gạch chéo đổi thành gạch ngang. Repo của chúng tôi nằm ở /Users/jbchauvin/Projets/AgentsRoom, nên slug là -Users-jbchauvin-Projets-AgentsRoom. Một thư mục cho mỗi dự án, rồi một thư mục cho mỗi phiên bên trong.

Để liệt kê mọi thư mục phiên bạn còn giữ cho người dùng hiện tại trên một máy Mac hoặc Linux:

ls /tmp/claude-$(id -u)/

Thứ gì nằm cạnh nó

Thư mục phiên không chỉ có scratchpad. Trên máy chạy các agent ban đêm của chúng tôi, bảy trong chín thư mục phiên của ngày hôm đó chứa hai mục: scratchpadtasks. Thư mục tasks là nơi đầu ra của các tác vụ chạy nền rơi xuống, những lệnh agent chạy tách rời rồi đọc lại sau.

Có một nơi thứ ba bạn nên biết, và nó hoàn toàn không nằm dưới thư mục tạm: ~/.claude/projects/<slug dự án>/<id phiên>/tool-results/. Khi một công cụ trả về nhiều hơn mức ngữ cảnh chứa được, Claude Code lưu toàn bộ đầu ra ở đó và đưa đường dẫn cho agent. Tối nay, một bản xuất Search Console 68 KB đã đi vào đó thay vì scratchpad. Vị trí đó là vĩnh viễn, ngay cạnh bản ghi phiên. Vậy cách chia là: bản ghi và đầu ra công cụ quá lớn nằm dưới ~/.claude, thứ ở lại; script, file trung gian và đầu ra tác vụ nền nằm dưới thư mục tạm, thứ không ở lại.

Vì sao nó biến mất

Vì thư mục tạm có nghĩa là « xóa được an toàn » với mọi hệ điều hành, và không có gì trong Claude Code phản đối điều đó.

Trên Linux, systemd-tmpfiles áp dụng bất cứ điều gì /usr/lib/tmpfiles.d/tmp.conf nói. Một người báo cáo đã mất toàn bộ đầu ra của một pipeline sinh dữ liệu chạy 24 giờ, gồm cả các phán quyết review, script và một virtualenv Python, khi máy chủ khởi động lại: quy tắc trên container Debian đó là D /tmp 1777 root root 30d, tạo lại /tmp trống rỗng ở mỗi lần khởi động. Đó là Claude Code 2.1.260, và system prompt đã không nói gì về tính dễ bay hơi. Kiểm tra quy tắc của chính bạn với cat /usr/lib/tmpfiles.d/tmp.conf: một dòng D xóa sạch khi khởi động, một tuổi như 10d dọn theo bộ hẹn giờ.

Trên Windows, thư mục nằm dưới %TEMP%, thứ mà Storage Sense và Disk Cleanup quét. Vào tháng 7 năm 2026 có người chạy dọn dẹp ổ đĩa trong lúc hai phiên đang hoạt động và mất các worktree git mà cả hai agent đang làm việc trong đó, gồm cả các chỉnh sửa chưa commit. Các chỉnh sửa chỉ được khôi phục vì chúng vẫn còn tồn tại trong ngữ cảnh cuộc trò chuyện.

Trên macOS, /private/tmp được làm trống khi khởi động lại và các file cũ bị hệ thống dọn đi. Trên Mac mini của chúng tôi tối nay, /private/tmp/claude-501 giữ chín thư mục phiên cho dự án này, 452 file và 25 MB, và không có gì cũ hơn ngày hôm nay. Bất cứ thứ gì các agent của những đêm trước để lại ở đó đã mất.

Không có gì trong số này là bug theo nghĩa có thứ gì đó hoạt động sai. Thư mục nằm chính xác nơi CLI nói, và hệ điều hành làm chính xác điều nó vẫn làm với các thư mục tạm. Khoảng trống là ở chỗ prompt gọi nó là scratchpad, và scratchpad nghe như thứ bạn giữ lại.

Bạn có thể cấu hình gì, và không thể cấu hình gì

Tính đến 2.1.278 không có cài đặt nào cho vị trí scratchpad. Thư mục đi theo thư mục tạm, nên TEMP trên Windows và TMPDIR trên Unix dời nó. CLAUDE_CODE_TMPDIR, tồn tại cho các file tạm khác, được báo cáo là không dời scratchpad, và yêu cầu đó đã bị đóng với lý do không có kế hoạch. Các yêu cầu về một biến CLAUDE_CODE_SCRATCHPAD_DIR và một mặc định dưới ~/.claude/scratchpad/ cũng vậy. Một thư mục scratchpad nhìn thấy được trong ứng dụng desktop là một yêu cầu tính năng còn mở.

Hai thứ có tác dụng hôm nay. Một phiên được mở lại (claude --resume) giữ nguyên id phiên, nên nó tìm cùng thư mục đó, và tìm thấy nếu không có gì xóa nó trong lúc đó. Và bạn có thể bảo agent, bằng lời thường, ghi một file nhất định vào chỗ nào đó vĩnh viễn. Đó là toàn bộ cách sửa của chúng tôi.

Quy tắc chúng tôi giao cho các agent ban đêm

Bảy agent khởi động lúc 20:00 trên cùng một máy: SEO, sản phẩm, mạng xã hội, một fixer, một documentalist, một báo cáo CEO và một rapporteur gửi email tóm tắt của đêm lúc 22:00. Mỗi agent tạo ra rất nhiều vật liệu trung gian: bản xuất Search Console, JSON đã lọc, script đếm chuỗi qua hai mươi ngôn ngữ. Tất cả đi vào scratchpad, có chủ đích, vì không thứ nào trong đó thuộc về repo và không thứ nào nên kích hoạt một yêu cầu cấp quyền lúc hai giờ sáng.

Quy tắc trong mọi prompt là một câu: scratchpad giữ thứ lệnh tiếp theo cần, repo giữ thứ đêm tiếp theo cần. Bất cứ thứ gì một agent sẽ muốn đọc ngày mai, báo cáo của nó, dấu mốc lần chạy của nó, file nó đang sửa, đều được ghi dưới reports/nuit/<ngày>/ và commit ngay khi xong, không phải ở cuối lần chạy. Một agent bị cắt giữa chừng để lại một báo cáo dở dang trong git và 25 MB file nháp mà không ai tiếc.

Hình ảnh phản chiếu của quy tắc đó là điều người báo cáo Linux đã học được một cách đau đớn: không bao giờ để một công việc dài tích lũy bản sao duy nhất của nó trong scratchpad. Nếu một pipeline chạy cả ngày, đầu ra của nó đi vào một đường dẫn bạn chọn, và scratchpad giữ các thứ phụ trợ.

Mở thư mục mà không rời ứng dụng

Nếu bạn chạy Claude Code bên trong AgentsRoom, File > Open File (Cmd/Ctrl+O) mở bất kỳ file nào của thư mục đó trong bản xem trước, được đánh dấu là ngoài dự án để bạn không nhầm nó với thứ gì đó được theo dõi. Đó là cách nhanh nhất chúng tôi tìm được để đọc một bản xuất agent vừa tạo, mà không cần dán một đường dẫn /private/tmp vào terminal.

Và để khép lại chuyện cái tên: Scratchpad của AgentsRoom là thứ khác. Đó là trình soạn thảo prompt tích hợp trong ô soạn của agent, nơi một prompt dài được viết và giữ như một bản nháp cho mỗi agent giữa các phiên. Cùng một từ, được chọn trước khi Claude Code dùng nó cho một thư mục. Một bên là nơi bạn viết cho agent; bên kia là nơi agent viết cho chính nó.

Các câu hỏi thường gặp

Scratchpad của Claude Code nằm ở đâu trên macOS và Linux?

Dưới thư mục tạm của hệ thống: /tmp/claude-<uid của bạn>/<đường dẫn dự án với dấu gạch chéo đổi thành gạch ngang>/<id phiên>/scratchpad. Trên macOS cùng thư mục đó hiện ra dưới dạng /private/tmp/claude-501/…/tmp là một liên kết tới /private/tmp. Uid của bạn là thứ id -u in ra: 501 cho người dùng đầu tiên trên Mac, 1000 trên hầu hết các bản phân phối Linux, 0 cho root. Các phiên bản cũ hơn dùng /tmp/claude/ không có hậu tố uid.

Scratchpad của Claude Code nằm ở đâu trên Windows?

Dưới thư mục TEMP: %TEMP%\claude\<slug dự án>\<id phiên>\scratchpad, thường mở rộng thành C:\Users\<bạn>\AppData\Local\Temp\claude\…. Đổi biến môi trường TEMP sẽ dời nó đi, vì đường dẫn được suy ra từ TEMP chứ không phải từ một cài đặt của Claude Code.

Vì sao scratchpad Claude Code của tôi biến mất?

Vì nó nằm dưới thư mục tạm, và mọi hệ điều hành đều coi thư mục tạm là thứ xóa được an toàn. Trên Linux, systemd-tmpfiles áp dụng quy tắc ghi trong /usr/lib/tmpfiles.d/tmp.conf, thường là xóa sạch khi khởi động hoặc sau một số ngày. macOS làm trống /private/tmp khi khởi động lại và dọn các file cũ. Trên Windows, Storage Sense và Disk Cleanup quét %TEMP%. Không có gì trong Claude Code bảo vệ thư mục đó trước những thứ này.

Tôi có thể đổi nơi Claude Code đặt scratchpad không?

Không có cài đặt riêng, tính đến Claude Code 2.1.278. Thư mục đi theo thư mục tạm của hệ điều hành, nên dời TEMP trên Windows hoặc TMPDIR trên Unix sẽ dời nó. Các yêu cầu về một biến riêng hoặc một vị trí bền dưới ~/.claude đã bị đóng với lý do không có kế hoạch. Cách đáng tin cậy là bảo agent ghi mọi thứ quan trọng vào dự án thay vì vào đó.

Scratchpad có giống ~/.claude/projects không?

Không. ~/.claude/projects/<slug dự án>/ chứa bản ghi các phiên và, cho mỗi phiên, một thư mục tool-results nơi các kết quả công cụ quá lớn được lưu. Vị trí đó là vĩnh viễn. Scratchpad dưới thư mục tạm là không gian làm việc agent dùng cho script và file trung gian, và thứ đó dễ bay hơi.

Đây có phải Scratchpad của AgentsRoom không?

Cùng một từ, hai thứ khác nhau. Scratchpad của AgentsRoom là trình soạn thảo prompt tích hợp trong ô soạn của agent, nơi bạn viết và giữ một bản nháp cho mỗi agent. Scratchpad của Claude Code là một thư mục CLI tạo cho mỗi phiên. AgentsRoom có thể mở bất kỳ file nào trong thư mục đó bằng File > Open File, được đánh dấu « Ngoài dự án ».

Tải AgentsRoom

Chạy tất cả agent AI của bạn, trên mọi dự án, trong một cửa sổ duy nhất.

Miễn phíTải AgentsRoom

Ứng dụng đồng hành: theo dõi agent khi đi đường

Sử dụng Claude, Codex, Antigravity CLI hoặc nhà cung cấp AI khác.

Tải tiện ích mở rộng
Chrome Web Store

Gửi lỗi và yêu cầu thẳng vào backlog công khai của bạn.

Nhiều dự án
Đa nhà cung cấp
Nhiều agent
Trạng thái trực tiếp
File diff & commit
Ứng dụng đồng hành mobile
Xem trước trực tiếp
Đội agent
Tự động hóa trình duyệt
Dev theo backlog
Thư viện prompt
Thư viện skill
Xem tất cả tính năng

Đọc thêm