Claude Code เก็บ scratchpad ไว้ที่ไหน และทำไมมันถึงหายไป
ทุกเซสชันของ Claude Code ประกาศไดเรกทอรี scratchpad แล้วไม่พูดถึงมันอีกเลย นี่คือพาธที่แน่นอนบน macOS, Linux และ Windows สิ่งที่อยู่ข้าง ๆ มัน ทำไมการรีบูตหรือการล้างไฟล์ชั่วคราวถึงลบมันทิ้ง อะไรที่ตั้งค่าได้และตั้งค่าไม่ได้ และกฎข้อเดียวที่เราให้กับเอเจนต์เจ็ดตัวที่เขียนลงไปในนั้นทุกคืน
ทุกเซสชันของ Claude Code เริ่มด้วยบรรทัดหนึ่งที่คุณคงอ่านผ่าน ๆ ของเราคืนนี้เขียนแบบนี้:
Scratchpad directory: /private/tmp/claude-501/-Users-jbchauvin-Projets-AgentsRoom/5a506305-…/scratchpad
จากนั้น CLI ก็ไม่พูดถึงมันอีกเลย ไม่มีคำสั่งไหนลิสต์มัน ไม่มีแผงไหนเปิดมัน และวันที่คุณไปหาไฟล์ CSV ที่เอเจนต์บอกว่าเขียนไว้ตรงนั้น โฟลเดอร์อาจหายไปแล้ว
เรารันเอเจนต์ตามกำหนดเวลาเจ็ดตัวบน Mac mini ทุกคืน และแต่ละตัวเขียนลงในโฟลเดอร์นั้น เราเลยไปดูว่ามันคืออะไร อยู่ที่ไหนบนแต่ละระบบ อะไรลบมัน และเราบอกเอเจนต์ให้ทำอย่างไรกับมัน ทุกอย่างด้านล่างนี้ตรวจสอบบน Claude Code 2.1.278 เมื่อวันที่ 19 กันยายน 2026 และจาก issue บน GitHub ที่คนเปิดไว้ตอนที่พวกเขาเสียงานในนั้น
สิ่งที่ Claude Code บอกเอเจนต์
บรรทัดนั้นเป็นส่วนหนึ่งของพรอมต์ระบบ คำสั่งที่ตามมาในเวอร์ชันปัจจุบันบอกว่าเอเจนต์ควรใช้ไดเรกทอรีนั้นเสมอสำหรับไฟล์ชั่วคราว หมายถึงผลลัพธ์ระหว่างทาง สคริปต์ และเอาต์พุตที่ไม่ควรอยู่ในโปรเจกต์ แทนที่จะใช้ /tmp หรือไดเรกทอรีชั่วคราวอื่นของระบบ ว่ามันเป็นของเซสชันนั้นโดยเฉพาะและแยกจากโปรเจกต์ ว่าโดยทั่วไปใช้ได้โดยไม่มีการขออนุญาต และว่า /tmp ควรใช้ต่อเมื่อคุณขออย่างชัดเจนเท่านั้น
ส่วนสุดท้ายนั่นแหละที่มีประโยชน์กับคุณ ไฟล์ที่เขียนใน scratchpad ไม่ทำให้กล่องโต้ตอบขออนุญาตเขียนเด้งขึ้นมา นั่นคือเหตุผลที่เอเจนต์วางสคริปต์ช่วยงานและไฟล์ส่งออกไว้ตรงนั้นแทนที่จะถามคุณทุกครั้ง และก็เป็นเหตุผลเดียวกันที่คุณไม่เคยถูกถาม และไม่เคยถูกบอกว่ามันไปอยู่ที่ไหน
ถ้าอยากได้พาธในเซสชันที่กำลังรันอยู่ ให้ถามเอเจนต์ « พิมพ์ไดเรกทอรี scratchpad ของคุณออกมา » จะได้คำตอบจากพรอมต์ระบบโดยไม่ต้องรันอะไรเลย
พาธ ระบบต่อระบบ
โฟลเดอร์นี้อยู่ใต้ไดเรกทอรีชั่วคราวของระบบปฏิบัติการ และชื่อของมันเข้ารหัสว่าคุณเป็นใคร คุณอยู่ในโปรเจกต์ไหน และเป็นเซสชันไหน
บน macOS และ Linux:
/tmp/claude-<uid>/<พาธโปรเจกต์ที่เปลี่ยนสแลชเป็นขีด>/<id เซสชัน>/scratchpad
บน Mac /tmp เป็นลิงก์ไปยัง /private/tmp ดังนั้นโฟลเดอร์เดียวกันจึงแสดงเป็น /private/tmp/claude-501/… ตัวเลขคือ id ผู้ใช้ของคุณ สิ่งที่ id -u พิมพ์ออกมา: 501 สำหรับบัญชีแรกบน Mac, 1000 บน Linux ส่วนใหญ่, 0 สำหรับ root รายงานจาก Linux ที่เราอ้างถึงด้านล่างแสดง /tmp/claude-0/ เพราะไปป์ไลน์รันเป็น root ในคอนเทนเนอร์ issue ที่เปิดไว้ก่อนหน้านี้ในปี 2026 แสดง /tmp/claude/<slug โปรเจกต์>/… โดยไม่มี uid เลย แสดงว่าส่วนต่อท้ายถูกเพิ่มเข้ามาระหว่างทาง ถ้าคุณใช้บิลด์เก่ากว่า ให้ตัดมันออก
บน Windows ตามที่รายงานบน Windows 11 ในเดือนกรกฎาคม 2026:
%TEMP%\claude\<slug โปรเจกต์>\<id เซสชัน>\scratchpad
ซึ่งโดยปกติจะขยายเป็น C:\Users\<คุณ>\AppData\Local\Temp\claude\… พาธนี้มาจากตัวแปร TEMP ดังนั้นถ้าคุณชี้ TEMP ไปที่อื่น scratchpad ก็ตามไปด้วย
slug ของโปรเจกต์คือไดเรกทอรีทำงานของคุณที่เปลี่ยนสแลชทุกตัวเป็นขีด รีโปของเราอยู่ที่ /Users/jbchauvin/Projets/AgentsRoom ดังนั้น slug คือ -Users-jbchauvin-Projets-AgentsRoom หนึ่งโฟลเดอร์ต่อโปรเจกต์ แล้วข้างในมีหนึ่งโฟลเดอร์ต่อเซสชัน
เพื่อลิสต์โฟลเดอร์เซสชันทั้งหมดที่คุณยังมีอยู่สำหรับผู้ใช้ปัจจุบันบนเครื่อง Mac หรือ Linux:
ls /tmp/claude-$(id -u)/
สิ่งที่อยู่ข้าง ๆ มัน
โฟลเดอร์เซสชันไม่ได้มีแค่ scratchpad บนเครื่องที่รันเอเจนต์กลางคืนของเรา เจ็ดจากเก้าโฟลเดอร์เซสชันของวันนั้นมีสองรายการ: scratchpad และ tasks โฟลเดอร์ tasks คือที่ที่เอาต์พุตของงานเบื้องหลังไปลง คือคำสั่งที่เอเจนต์รันแบบแยกออกไปแล้วกลับมาอ่านทีหลัง
มีที่ที่สามที่คุณควรรู้ และมันไม่ได้อยู่ใต้ไดเรกทอรีชั่วคราวเลย: ~/.claude/projects/<slug โปรเจกต์>/<id เซสชัน>/tool-results/ เมื่อเครื่องมือส่งคืนมากกว่าที่บริบทจะรับได้ Claude Code จะบันทึกเอาต์พุตเต็มไว้ตรงนั้นและให้พาธกับเอเจนต์ คืนนี้ไฟล์ส่งออกจาก Search Console ขนาด 68 KB ไปอยู่ตรงนั้นแทนที่จะเป็น scratchpad ตำแหน่งนั้นถาวร อยู่ข้างทรานสคริปต์ของเซสชัน การแบ่งจึงเป็นแบบนี้: ทรานสคริปต์และเอาต์พุตเครื่องมือขนาดใหญ่อยู่ใต้ ~/.claude ซึ่งอยู่ต่อ ส่วนสคริปต์ ไฟล์ระหว่างทาง และเอาต์พุตของงานเบื้องหลังอยู่ใต้ไดเรกทอรีชั่วคราว ซึ่งไม่อยู่ต่อ
ทำไมมันถึงหายไป
เพราะไดเรกทอรีชั่วคราวหมายถึง « ลบได้อย่างปลอดภัย » สำหรับระบบปฏิบัติการทุกตัว และไม่มีอะไรใน Claude Code ที่คัดค้านเรื่องนั้น
บน Linux systemd-tmpfiles จะใช้อะไรก็ตามที่ /usr/lib/tmpfiles.d/tmp.conf บอก ผู้รายงานคนหนึ่งเสียเอาต์พุตทั้งหมดของไปป์ไลน์สร้างข้อมูลที่รันมา 24 ชั่วโมง รวมทั้งผลการรีวิว สคริปต์ และ virtualenv ของ Python ตอนที่โฮสต์รีบูต: กฎบนคอนเทนเนอร์ Debian นั้นคือ D /tmp 1777 root root 30d ซึ่งสร้าง /tmp ขึ้นใหม่แบบว่างเปล่าทุกครั้งที่บูต นั่นคือ Claude Code 2.1.260 และพรอมต์ระบบไม่ได้พูดอะไรเกี่ยวกับความไม่ถาวรเลย ตรวจสอบกฎของคุณเองด้วย cat /usr/lib/tmpfiles.d/tmp.conf: บรรทัด D ล้างตอนบูต อายุอย่าง 10d ลบตามตัวจับเวลา
บน Windows โฟลเดอร์อยู่ใต้ %TEMP% ซึ่ง Storage Sense และ Disk Cleanup กวาด ในเดือนกรกฎาคม 2026 มีคนรันการล้างดิสก์ขณะที่มีสองเซสชันกำลังทำงานอยู่ และเสีย worktree ของ git ที่เอเจนต์ทั้งสองกำลังทำงานอยู่ในนั้น รวมถึงการแก้ไขที่ยังไม่ได้คอมมิต การแก้ไขเหล่านั้นกู้คืนได้ก็เพราะยังมีอยู่ในบริบทของการสนทนาเท่านั้น
บน macOS /private/tmp ถูกล้างตอนรีบูตและไฟล์เก่าถูกระบบลบทิ้ง บน Mac mini ของเราคืนนี้ /private/tmp/claude-501 มีโฟลเดอร์เซสชันเก้าโฟลเดอร์สำหรับโปรเจกต์นี้ 452 ไฟล์ และ 25 MB และไม่มีอะไรเก่ากว่าวันนี้ อะไรก็ตามที่เอเจนต์ของคืนก่อน ๆ ทิ้งไว้ตรงนั้นหายไปแล้ว
ทั้งหมดนี้ไม่ใช่บั๊กในแง่ที่ว่ามีอะไรทำงานผิดพลาด โฟลเดอร์อยู่ตรงที่ CLI บอกเป๊ะ และระบบปฏิบัติการก็ทำตรงกับสิ่งที่มันทำกับโฟลเดอร์ชั่วคราวเสมอ ช่องว่างคือพรอมต์เรียกมันว่า scratchpad และ scratchpad ฟังดูเหมือนสิ่งที่คุณเก็บไว้
สิ่งที่คุณตั้งค่าได้ และสิ่งที่ตั้งค่าไม่ได้
ณ 2.1.278 ไม่มีการตั้งค่าสำหรับตำแหน่งของ scratchpad โฟลเดอร์ตามไดเรกทอรีชั่วคราว ดังนั้น TEMP บน Windows และ TMPDIR บน Unix ย้ายมันได้ CLAUDE_CODE_TMPDIR ซึ่งมีไว้สำหรับไฟล์ชั่วคราวอื่น ๆ ถูกรายงานว่าไม่ย้าย scratchpad และคำขอนั้นถูกปิดในสถานะไม่มีแผนจะทำ เช่นเดียวกับคำขอตัวแปร CLAUDE_CODE_SCRATCHPAD_DIR และค่าเริ่มต้นใต้ ~/.claude/scratchpad/ โฟลเดอร์ scratchpad ที่มองเห็นได้ในแอปเดสก์ท็อปยังเป็นคำขอฟีเจอร์ที่เปิดอยู่
มีสองอย่างที่ใช้ได้จริงวันนี้ เซสชันที่กลับมาทำต่อ (claude --resume) เก็บ id เซสชันเดิมไว้ ดังนั้นมันจะหาโฟลเดอร์เดิม และเจอถ้าไม่มีอะไรลบมันไประหว่างนั้น และคุณขอเอเจนต์ด้วยคำพูดธรรมดาให้เขียนไฟล์หนึ่ง ๆ ไว้ที่ไหนสักแห่งที่ถาวรได้ นั่นคือทั้งหมดของวิธีแก้ของเรา
กฎที่เราให้เอเจนต์กลางคืนของเรา
เอเจนต์เจ็ดตัวเริ่มตอน 20:00 น. บนเครื่องเดียวกัน: SEO, ผลิตภัณฑ์, โซเชียล, fixer, documentalist, รายงาน CEO และ rapporteur ที่ส่งอีเมลสรุปของคืนนั้นตอน 22:00 น. แต่ละตัวผลิตวัสดุระหว่างทางจำนวนมาก: ไฟล์ส่งออกจาก Search Console, JSON ที่กรองแล้ว, สคริปต์ที่นับสตริงในยี่สิบภาษา ทั้งหมดไปที่ scratchpad โดยตั้งใจ เพราะไม่มีอะไรในนั้นที่ควรอยู่ในรีโป และไม่มีอะไรควรทำให้เกิดการขออนุญาตตอนตีสอง
กฎในทุกพรอมต์คือประโยคเดียว: scratchpad เก็บสิ่งที่คำสั่งถัดไปต้องการ รีโปเก็บสิ่งที่คืนถัดไปต้องการ อะไรก็ตามที่เอเจนต์จะอยากอ่านพรุ่งนี้ ไม่ว่าจะเป็นรายงาน เครื่องหมายบอกการรัน ไฟล์ที่กำลังแก้ไข จะถูกเขียนไว้ใต้ reports/nuit/<วันที่>/ และคอมมิตทันทีที่เสร็จ ไม่ใช่ตอนจบของการรัน เอเจนต์ที่ถูกตัดกลางคันจะทิ้งรายงานบางส่วนไว้ใน git และไฟล์ทำงาน 25 MB ที่ไม่มีใครคิดถึง
ภาพสะท้อนของกฎข้อนั้นคือสิ่งที่ผู้รายงานจาก Linux ได้เรียนรู้อย่างเจ็บปวด: อย่าปล่อยให้งานยาว ๆ สะสมสำเนาเดียวของมันไว้ใน scratchpad ถ้าไปป์ไลน์รันทั้งวัน เอาต์พุตของมันต้องไปที่พาธที่คุณเลือก และ scratchpad เก็บแค่ตัวช่วย
เปิดโฟลเดอร์โดยไม่ต้องออกจากแอป
ถ้าคุณรัน Claude Code ใน AgentsRoom เมนู File > Open File (Cmd/Ctrl+O) เปิดไฟล์ใดก็ได้ของโฟลเดอร์นั้นในหน้าแสดงตัวอย่าง โดยมีเครื่องหมายว่านอกโปรเจกต์เพื่อที่คุณจะไม่เข้าใจผิดว่ามันเป็นไฟล์ที่ติดตามอยู่ นี่คือวิธีที่เร็วที่สุดที่เราหาได้ในการอ่านไฟล์ส่งออกที่เอเจนต์เพิ่งผลิต โดยไม่ต้องวางพาธ /private/tmp ลงในเทอร์มินัล
และเพื่อปิดวงเรื่องชื่อ: Scratchpad ของ AgentsRoom คือคนละอย่าง มันคือตัวแก้ไขพรอมต์ที่อยู่ใน composer ของเอเจนต์ ที่ที่พรอมต์ยาว ๆ ถูกเขียนและเก็บเป็นร่างแยกต่อเอเจนต์ระหว่างเซสชัน คำเดียวกัน เลือกใช้ก่อนที่ Claude Code จะใช้มันเรียกโฟลเดอร์ อันหนึ่งคือที่ที่คุณเขียนถึงเอเจนต์ อีกอันคือที่ที่เอเจนต์เขียนให้ตัวเอง
คำถามที่พบบ่อย
scratchpad ของ Claude Code อยู่ที่ไหนบน macOS และ Linux?
อยู่ใต้ไดเรกทอรีชั่วคราวของระบบ: /tmp/claude-<uid ของคุณ>/<พาธโปรเจกต์ที่เปลี่ยนสแลชเป็นขีด>/<id เซสชัน>/scratchpad บน macOS โฟลเดอร์เดียวกันจะแสดงเป็น /private/tmp/claude-501/… เพราะ /tmp เป็นลิงก์ไปยัง /private/tmp uid ของคุณคือสิ่งที่ id -u พิมพ์ออกมา: 501 สำหรับผู้ใช้คนแรกบน Mac, 1000 บน Linux ส่วนใหญ่, 0 สำหรับ root เวอร์ชันเก่ากว่านี้ใช้ /tmp/claude/ โดยไม่มี uid ต่อท้าย
scratchpad ของ Claude Code อยู่ที่ไหนบน Windows?
อยู่ใต้โฟลเดอร์ TEMP: %TEMP%\claude\<slug โปรเจกต์>\<id เซสชัน>\scratchpad ซึ่งโดยปกติจะขยายเป็น C:\Users\<คุณ>\AppData\Local\Temp\claude\… การเปลี่ยนตัวแปรสภาพแวดล้อม TEMP จะย้ายมันไปด้วย เพราะพาธนี้มาจาก TEMP ไม่ใช่จากการตั้งค่าของ Claude Code
ทำไม scratchpad ของ Claude Code ของฉันถึงหายไป?
เพราะมันอยู่ใต้ไดเรกทอรีชั่วคราว และระบบปฏิบัติการทุกตัวถือว่าไดเรกทอรีชั่วคราวลบได้อย่างปลอดภัย บน Linux systemd-tmpfiles จะใช้กฎที่เขียนไว้ใน /usr/lib/tmpfiles.d/tmp.conf ซึ่งมักเป็นการล้างตอนบูตหรือหลังจากผ่านไปจำนวนวันหนึ่ง macOS ล้าง /private/tmp ตอนรีบูตและลบไฟล์เก่าทิ้ง บน Windows Storage Sense และ Disk Cleanup จะกวาด %TEMP% ไม่มีอะไรใน Claude Code ที่ปกป้องโฟลเดอร์นี้จากสิ่งเหล่านี้เลย
ฉันเปลี่ยนที่ที่ Claude Code วาง scratchpad ได้ไหม?
ไม่ได้ด้วยการตั้งค่าเฉพาะ ณ Claude Code 2.1.278 โฟลเดอร์นี้ตามไดเรกทอรีชั่วคราวของระบบปฏิบัติการ ดังนั้นการย้าย TEMP บน Windows หรือ TMPDIR บน Unix จะย้ายมันไปด้วย คำขอตัวแปรแยกต่างหากหรือตำแหน่งถาวรใต้ ~/.claude ถูกปิดไปในสถานะไม่มีแผนจะทำ ทางเลือกที่พึ่งพาได้คือบอกเอเจนต์ให้เขียนสิ่งที่สำคัญลงในโปรเจกต์แทน
scratchpad คือสิ่งเดียวกับ ~/.claude/projects หรือเปล่า?
ไม่ใช่ ~/.claude/projects/<slug โปรเจกต์>/ เก็บทรานสคริปต์ของเซสชัน และในแต่ละเซสชันมีโฟลเดอร์ tool-results ที่เก็บผลลัพธ์ของเครื่องมือที่ใหญ่เกินไป ตำแหน่งนั้นถาวร ส่วน scratchpad ใต้ไดเรกทอรีชั่วคราวคือพื้นที่ทำงานที่เอเจนต์ใช้สำหรับสคริปต์และไฟล์ระหว่างทาง และอันนั้นไม่ถาวร
นี่คือ Scratchpad ของ AgentsRoom หรือเปล่า?
คำเดียวกัน แต่คนละอย่าง Scratchpad ของ AgentsRoom คือตัวแก้ไขพรอมต์ที่อยู่ใน composer ของเอเจนต์ ที่คุณเขียนและเก็บร่างแยกต่อเอเจนต์ ส่วน scratchpad ของ Claude Code คือโฟลเดอร์ที่ CLI สร้างขึ้นสำหรับแต่ละเซสชัน AgentsRoom เปิดไฟล์ใดก็ได้ในโฟลเดอร์นั้นด้วย File > Open File โดยมีเครื่องหมายว่า « นอกโปรเจกต์ »
ดาวน์โหลด AgentsRoom
รันเอเจนต์ AI ทั้งหมดของคุณในทุกโปรเจกต์ จากหน้าต่างเดียว
แอปคู่หู: ตรวจสอบเอเจนต์ของคุณได้ทุกที่
นำของคุณเอง: Claude, Codex, Antigravity CLI, หรือผู้ให้บริการ AI อื่น ๆ
ส่งข้อบกพร่องและคำขอไปยังแบ็คล็อกสาธารณะของคุณโดยตรง
อ่านต่อ
Remote Control ของ Claude Code ใช้โทเค็นมากขึ้นไหม แล้ว Codex มีแบบนี้หรือเปล่า
สองคำถามที่คนพิมพ์ใน Google ตั้งแต่ Anthropic ปล่อย Remote Control: การสั่งเซสชัน Claude Code จากโทรศัพท์ใช้โทเค็นมากขึ้นไหม และ Codex มีของแบบเดียวกันหรือเปล่า คำตอบสั้น ๆ: ไม่ เทิร์นก็คือเทิร์นไม่ว่าคุณจะพิมพ์จากที่ไหน และมี แต่มีอยู่แค่ครึ่งเดียว นี่คือสิ่งที่ Remote Control เป็นจริง ๆ วิธีวัดเรื่องโทเค็นด้วยตัวเองในสี่คำสั่ง สิ่งที่ codex remote-control ทำได้ในวันนี้ และรีโมทมือถือที่ไม่เคยคุยกับผู้ให้บริการเปลี่ยนการคำนวณอย่างไร
อ่านบทความเอเจนต์รีวิวไม่ควรเขียนอะไรได้เลย นี่คือวิธีที่เราบังคับใช้ ทีละ CLI
ในการรันที่มี 17 โหนด เอเจนต์รีลีสแก้เทสต์เพื่อเปลี่ยนชุดทดสอบจากแดงเป็นเขียว จากนั้นเอเจนต์รีวิวสองตัวเขียนการแก้ไขเดียวกันแล้วชนกัน พรอมต์บอกว่ารีวิวเท่านั้น มันเอาไม่อยู่ นี่คือเหตุการณ์ที่เกิดขึ้น เหตุผลที่คำสั่งเป็นตัวหนังสือแบกกฎข้อนี้ไม่ไหว และแฟล็กที่ทำให้ Claude Code, Codex, Grok, Antigravity และ OpenCode ปฏิเสธการเขียนแบบตรงตัว
อ่านบทความเอเจนต์สิบตัวรัน typecheck เดียวกันพร้อมกัน ทางแก้คือโฟลเดอร์หนึ่งอัน
เอเจนต์เขียนโค้ดสิบเจ็ดตัวใน checkout เดียวกัน tsc สิบตัวพร้อมกัน load average 37 และ RAM ว่าง 87 MB typecheck ที่ปกติใช้เก้าสิบวินาทีกินเวลาไป 7 นาที 36 วินาที นี่คือตัวเลขที่วัดได้ เหตุผลที่เครื่องไม่ได้กำลังคำนวณ และล็อกร่วมเล็กๆ ที่แก้ปัญหาได้ คัดลอกไปใช้กับรีโปไหนก็ได้
อ่านบทความ