SSD Nodes Learn 🎉 VPS เริ่ม $5.50/เดือน
คู่มือ Matt Connorโดย Matt Connor

วิธี resume และดูประวัติ session ใน Claude Code

เรียนรู้วิธี resume session ใน Claude Code ด้วยชื่อหรือ picker พร้อมตำแหน่งไฟล์ transcript แบบ plaintext ที่โปรแกรมบันทึกไว้บนเครื่องที่รัน agent

วิธีกลับเข้าสู่เซสชัน Claude Code

หากต้องการกลับเข้าสู่เซสชัน Claude Code ให้เรียกใช้ claude --continue สำหรับการสนทนาล่าสุดในไดเรกทอรีปัจจุบัน หรือใช้ claude --resume เพื่อเลือกการสนทนาเก่าจากรายการ หากอยู่ภายในเซสชันที่กำลังทำงานอยู่แล้ว คำสั่ง /resume จะสลับไปยังการสนทนาอื่นโดยไม่ออกจากเซสชัน รูปแบบย่อคือ -c และ -r

claude --continue
claude --resume
claude --resume auth-refactor

หากทราบชื่อเซสชันหรือ ID อยู่แล้ว ให้ส่งค่าเป็นอาร์กิวเมนต์ แล้ว Claude Code จะไปยังเซสชันนั้นโดยตรงโดยไม่แสดงตัวเลือก

เนื้อหาทั้งหมดด้านล่างสอดคล้องกับ เอกสารเซสชันอย่างเป็นทางการ ณ August 2026 Claude Code ออก release บ่อยครั้ง และชื่อ flag กับแป้นพิมพ์ลัดอาจเปลี่ยนระหว่างเวอร์ชัน ดังนั้นให้ถือว่า claude --help และหน้านั้นเป็นแหล่งอ้างอิงหลัก หากข้อมูลในที่นี้ไม่ตรงกับสิ่งที่แสดงใน terminal cruent.

เซสชันคืออะไร

เซสชันคือการสนทนาที่บันทึกไว้หนึ่งรายการ ซึ่งเชื่อมโยงกับไดเรกทอรีของโปรเจกต์ เซสชันจะเก็บประวัติข้อความทั้งหมด รวมถึง tool call ที่ Claude Code เรียกใช้และผลลัพธ์ที่ tool call เหล่านั้นส่งกลับมา Claude Code จะเขียนข้อมูลลงดิสก์อย่างต่อเนื่องระหว่างที่คุณทำงาน ไม่ได้เขียนเพียงครั้งเดียวเมื่อจบการทำงาน ดังนั้นการสนทนาจึงยังคงอยู่แม้คุณจะปิด terminal หรือการเชื่อมต่อ SSH ขาดหาย

การ resume จะกู้คืนข้อมูลมากกว่าแค่ข้อความ ประวัติการสนทนาจะกลับมาครบถ้วน รวมถึง model ที่เซสชันใช้ และ subagent ที่เซสชันเริ่มทำงานด้วย หากคุณใช้ --agent permission mode จะถูกกู้คืนด้วย แต่มีข้อยกเว้นเพื่อความปลอดภัย: plan mode และ bypass-permissions mode จะไม่ถูกกู้คืน ดังนั้นเซสชันที่อยู่ในโหมดใดโหมดหนึ่งจะ resume ด้วยโหมดเดียวกับที่เซสชันใหม่ใช้เมื่อเริ่มต้น

ข้อมูลบางอย่างจะไม่ถูกกู้คืน เนื่องจากเป็น flag ที่ระบุขณะ launch ไม่ใช่ state ที่บันทึกไว้ ไดเรกทอรีที่เพิ่มด้วย --add-dir และตัวเลือกอย่าง --mcp-config, --settings และ --plugin-dir ต้องระบุอีกครั้งเมื่อ resume ไฟล์ settings เช่น settings.json จะถูกอ่านใหม่เมื่อ launch ดังนั้นสิ่งที่กำหนดไว้ในไฟล์เหล่านี้จึงไม่ต้องระบุซ้ำ

เหตุใดประวัติเซสชันจึงสำคัญมากขึ้นบน VPS

ข้อเท็จจริงที่ทำให้หลายคนประหลาดใจคือ transcript จะถูกเขียนไว้บนเครื่องที่ agent ทำงานอยู่ ไม่ได้เก็บไว้ในบัญชีของคุณและไม่ได้ซิงค์ไปยัง cloud แต่เป็นไฟล์บนดิสก์ของเครื่องนั้น

ดังนั้นเซสชันที่คุณเปิดค้างไว้ในหน้าต่าง tmux บน VPS จะไม่ปรากฏในรายการเลือกบน laptop และเซสชันจาก laptop ก็จะไม่ปรากฏบน VPS เช่นกัน ข้อมูลจะไม่ถูกส่งระหว่างเครื่อง หากคุณทำงานแบบที่คนส่วนใหญ่ทำเมื่อ เรียกใช้ Claude Code ใน tmux บน VPS เซิร์ฟเวอร์จะเป็นที่สะสมประวัติการสนทนาจริงของคุณ ส่วนรายการเลือกที่แสดงในเครื่อง local จะมีชุดข้อมูลคนละชุดและมีขนาดเล็กกว่ามาก

การแยกกันแบบเดียวกันนี้มีผลระหว่าง interface ต่างๆ ด้วย desktop app และ VS Code extension จะเก็บประวัติเซสชันแยกกัน และทั้งสองอย่างก็ไม่ใช่ประวัติของ CLI ส่วน Claude Code บนเว็บก็มีประวัติของตนเองเช่นกัน

ภายในเครื่องเดียวกัน การค้นหาจะครอบคลุมกว่าที่คุณอาจคาดไว้ claude --resume <session-id> จะค้นหาในไดเรกทอรี project ปัจจุบันและ git worktrees ของ project นั้นก่อน จากนั้นจึงค้นหาใน project อื่นทั้งหมดบนเครื่องนั้น วลีสำคัญที่ควรจำคือ “บนเครื่องนั้น” session ID จาก host อื่นจะค้นหาไม่พบ และ Claude Code จะแจ้งให้ทราบด้วย No conversation found with session ID: <session-id>

Claude Code จัดเก็บประวัติเซสชันไว้ที่ใด

โดยค่าเริ่มต้น transcript จะอยู่ภายใต้ไดเรกทอรี config ของ Claude Code ที่ path รูปแบบ ~/.claude/projects/<project>/<session-id>.jsonl

<project> คือ path ของ working directory โดยอักขระที่ไม่ใช่ตัวอักษรหรือตัวเลขทุกตัวจะถูกแทนที่ด้วยเครื่องหมายยัติภังค์ ดังนั้นเซสชันที่เริ่มต้นใน /home/deploy/apps/api จะถูกจัดเก็บไว้ในไดเรกทอรีชื่อ -home-deploy-apps-api หากชื่อที่แปลงแล้วมีความยาวเกิน 200 ตัวอักษร Claude Code จะตัดชื่อดังกล่าวและต่อท้ายด้วย hash ของ path แบบเต็ม เพื่อให้ชื่อไดเรกทอรียังคงอยู่ภายในข้อจำกัดของ filesystem

ไฟล์นี้เป็น JSONL: 1 JSON object ต่อ 1 บรรทัด โดยแต่ละบรรทัดอาจเป็นข้อความ, tool use หรือ metadata entry ไฟล์เป็นข้อความที่อ่านได้ และสามารถอ่านได้ตามปกติ

แต่ไม่ควรเขียน parser สำหรับไฟล์นี้ รูปแบบ entry เป็นข้อมูลภายในของ Claude Code และอาจเปลี่ยนแปลงระหว่างเวอร์ชัน ดังนั้น script ที่อ่านไฟล์เหล่านี้โดยตรงอาจใช้งานไม่ได้หลังการอัปเดตใด ๆ เอกสารอย่างเป็นทางการของ Anthropic ระบุให้ใช้ /export หรือ script interface ที่มีเอกสารรองรับแทน ซึ่งเป็นคำแนะนำที่เหมาะสมด้วยเหตุผลนี้

มีการตั้งค่า 2 รายการที่เปลี่ยนตำแหน่งและระยะเวลาการจัดเก็บ CLAUDE_CONFIG_DIR จะย้าย config directory ทั้งหมด ซึ่งทำให้สามารถจัดเก็บ transcript ไว้ใน volume อื่นหรือ volume ที่เข้ารหัสได้ ส่วน cleanupPeriodDays ใน settings.json จะควบคุมระยะเวลาที่เก็บ transcript ไว้ โดยค่าเริ่มต้นคือ 30 วัน และค่าต่ำสุดคือ 1 วัน

ภายในไฟล์ transcript มีอะไรอยู่จริง

ผลลัพธ์จากทุกเครื่องมือจะถูกบันทึกไว้ ซึ่งหมายความว่า transcript จะมีเนื้อหาของไฟล์ที่ Claude อ่านและผลลัพธ์ของคำสั่งที่ Claude เรียกใช้ หน้า การใช้ข้อมูล ของ Anthropic ระบุไว้อย่างชัดเจนว่า Claude Code จัดเก็บ transcript ของ session ไว้ภายในเครื่องในรูปแบบ plaintext ที่ ~/.claude/projects/

ลองพิจารณาความหมายของเรื่องนี้บนเซิร์ฟเวอร์ หาก Claude อ่านไฟล์ .env เพื่อวิเคราะห์ว่าเหตุใด service จึงเริ่มทำงานไม่ได้ เนื้อหาของไฟล์นั้นจะถูกเก็บอยู่ในไฟล์ JSONL ภายใน home directory ของคุณแล้ว หากคำสั่งแสดง connection string ออกมา string นั้นก็จะอยู่ในไฟล์ดังกล่าวด้วย ไม่มีข้อมูลใดรั่วไหล transcript เพียงบันทึกสิ่งที่เกิดขึ้น ซึ่งเป็นวัตถุประสงค์หลักของ transcript และด้วยเหตุนี้เอง transcript จึงต้องอยู่ใน threat model ของคุณ

  • Backups: การสำรองข้อมูลแบบ plain ของ /home หรือ /root จะคัดลอก transcript ของคุณไปยังปลายทางที่ใช้เก็บ backup เพิ่ม exclusion หรือยอมรับว่าสำเนาของ prompt และเนื้อหาไฟล์ของคุณจะถูกเก็บอยู่ใน backup store ด้วย
  • Snapshots and images: VPS snapshot ที่สร้างขึ้นไม่ว่าด้วยเหตุผลใดจะมี directory ทั้งหมดอยู่ด้วย เช่นเดียวกับ image ที่คุณ clone เพื่อใช้สร้างเซิร์ฟเวอร์เครื่องที่สอง
  • Other accounts on the box: ตรวจสอบ mode ด้วยตนเองโดยใช้ ls -ld ~/.claude ~/.claude/projects แทนการคาดเดาว่า permission รัดกุมเพียงพอ
  • Deliberate uploads: คำสั่ง /feedback จะส่งประวัติการสนทนาไปยัง Anthropic โดยตั้งใจ และ /bug กับ /share จะรายงานผ่านช่องทางเดียวกัน การดำเนินการเหล่านี้เป็นสิ่งที่คุณเลือกทำเอง ดังนั้นควรทราบว่าคุณกำลังยอมรับอะไรอยู่ก่อนยืนยัน

หากคุณไม่ต้องการให้มี transcript CLAUDE_CODE_SKIP_PROMPT_HISTORY จะระงับการเขียน transcript และ --no-session-persistence จะระงับการเขียน transcript สำหรับการเรียกใช้ claude -p แบบ non-interactive เพียงครั้งเดียว ควรทำความเข้าใจข้อแลกเปลี่ยนให้ชัดเจนก่อนตั้งค่ารายการใดรายการหนึ่ง เนื่องจาก resume จะอ่านข้อมูลจาก transcript ดังนั้นเมื่อไม่มี transcript ก็จะไม่สามารถ resume ได้

วิธีค้นหาบทสนทนาเก่า

เปิดตัวเลือกด้วย claude --resume หรือใช้ /resume จากภายใน session ที่กำลังทำงานอยู่ แต่ละแถวจะแสดงชื่อ session หากคุณกำหนดชื่อไว้ หรือแสดงชื่อที่ระบบสร้างขึ้นหากไม่ได้กำหนดชื่อ รวมถึงเวลาที่ผ่านไปนับจากกิจกรรมล่าสุด, git branch และขนาดไฟล์

ตัวเลือกนี้รองรับการค้นหา กด / หรือเริ่มพิมพ์เพื่อกรองรายการ Shortcut ที่ควรเรียนรู้คือ shortcut ที่ใช้ขยายขอบเขตการค้นหา: Ctrl+A จะแสดง session จากทุก project บนเครื่องนี้, Ctrl+W จะแสดงทุก worktree ของ repository ปัจจุบัน และ Ctrl+B จะกรองให้เหลือเฉพาะ git branch ปัจจุบัน กด Space เพื่อดูตัวอย่างเนื้อหาของ session ก่อนเลือกใช้งาน และกด Ctrl+R เพื่อเปลี่ยนชื่อรายการที่เลือก

การตั้งชื่อ session ทำให้จัดการทั้งหมดนี้ได้ง่ายขึ้น เริ่ม session ด้วย claude -n auth-refactor หรือเรียกใช้ /rename auth-refactor ระหว่างการทำงาน เมื่อคุณเริ่มเห็นว่าบทสนทนากลายเป็นงานจริงแล้ว จากนั้นจึงสามารถ resume session ที่ตั้งชื่อไว้ได้โดยใช้ชื่อจาก shell โดยตรง

session ที่ไม่ได้ตั้งชื่อจะได้รับชื่อที่ระบบสร้างขึ้นเช่นกัน โดย background request จะส่ง prompt แรกของคุณให้โมเดลขนาดเล็กที่ตอบสนองได้รวดเร็วเพื่อสรุปเป็นชื่อ ชื่อนี้ช่วยให้ระบุแถวในตัวเลือกได้ แต่ไม่ใช่ตัวระบุสำหรับ resume claude --resume <name> จะจับคู่เฉพาะชื่อที่คุณกำหนดเองเท่านั้น

ค้นหา session ที่ถูกต้องด้วยการ grep transcript

บางครั้งคุณจำได้เพียงวลีหนึ่ง แต่จำรายละเอียดอื่นไม่ได้ transcript เป็นไฟล์ข้อความ จึงค้นหาได้

grep -rl "nftables" ~/.claude/projects/

คำสั่งนี้จะแสดง path ของ transcript ที่ตรงกัน ชื่อไฟล์เมื่อไม่รวมส่วนขยาย .jsonl คือ session ID และ claude --resume <session-id> ยอมรับค่า session ID นี้ ใช้ grep เพื่อระบุว่า session ใดที่ต้องการ จากนั้น resume session หรือ export session เพื่ออ่านเนื้อหาจริง

มีข้อควรทราบ 2 ประการ เนื้อหาถูก escape ในรูปแบบ JSON ดังนั้นวลีที่มีอักขระเครื่องหมายคำพูด หรือวลีที่ถูกแบ่งข้ามบรรทัด อาจไม่ตรงกันเมื่อค้นหาเป็นสตริงตามตัวอักษร และหากข้อความที่ตรงกันอยู่ในผลลัพธ์ของเครื่องมือ ก็หมายความว่า Claude เห็นข้อความนั้น ไม่ได้หมายความว่ามีผู้ใดพิมพ์ข้อความนั้น alts.

การอ่านและส่งออกบทสนทนา

/export แสดงบทสนทนาปัจจุบันเป็นข้อความธรรมดา โดยเขียนข้อความและผลลัพธ์จากเครื่องมือให้อ่านได้ง่าย แทนการแสดงเป็น JSON หากไม่ระบุอาร์กิวเมนต์ ระบบจะเปิดเมนูที่ให้เลือกส่งออกไปยังคลิปบอร์ดหรือไฟล์ หากระบุชื่อไฟล์ /export handover.txt จะเขียนข้อมูลลงใน path นั้นโดยตรง วิธีนี้เหมาะสำหรับย้ายบทสนทนาจากเซิร์ฟเวอร์ไปยังแล็ปท็อป หรือแนบบทสนทนาไปกับ ticket

สำหรับงานอัตโนมัติ ให้ใช้ interface ที่ออกแบบมาให้มีความเสถียร Hook และคำสั่ง status line จะได้รับฟิลด์ transcript_path เป็นอินพุต ดังนั้น hook SessionEnd จึงสามารถเก็บ transcript ไว้ได้เมื่อ session สิ้นสุด นอกจากนี้ยังสามารถส่งคำถามไปยัง session ที่บันทึกไว้โดยไม่ต้องเปิด session นั้น:

claude -p --resume <session-id> --output-format json "summarize what we changed" | jq -r '.result'

คำสั่งนี้จะส่ง prompt ต่อเนื่องเข้าไปในบทสนทนาเดิม และส่งคืน structured JSON วิธีนี้เป็นพื้นฐานที่เหมาะสมกว่าการ parse รูปแบบ JSONL ซึ่งอาจมีการเปลี่ยนแปลงใน release ถัดไป

เมื่อการเริ่มเซสชันใหม่เหมาะกว่าการดำเนินการต่อ

การดำเนินการต่อจะนำประวัติทั้งหมดกลับมา และประวัติทั้งหมดนั้นจะถูกส่งไปกับคำขอถัดไปทุกครั้ง การสนทนาที่ดำเนินมาเป็นเวลา 4 ชั่วโมงเมื่อวานมีต้นทุนสูงหากนำมาต่อในวันนี้ และ วิธีคำนวณการใช้โทเค็นตลอดเซสชันที่ยาวนาน อธิบายว่าต้นทุนดังกล่าวเกิดจากส่วนใด

Claude Code มีทางเลือกตรงกลางในบางกรณี สำหรับแผน Pro หรือ Max หากดำเนินการต่อเซสชันที่ไม่มีการใช้งานประมาณ 1 ชั่วโมงและมีมากกว่า 100,000 tokens ระบบจะแสดง dialog ก่อนข้อความแรกของคุณ เมื่อถึงเวลานั้น prompt cache หมดอายุแล้ว ดังนั้นคำขอถัดไปจะประมวลผลประวัติทั้งหมดใหม่ 1 ครั้ง ไม่ว่าคุณจะเลือกตัวเลือกใด

  • Resume from summary จะทำการ compaction ทันที ดังนั้นคำขอถัดไปจะส่ง summary แทนประวัติทั้งหมด ประหยัดกว่าต่อคำขอ แต่ข้อมูลที่ถูกตัดออกจาก summary จะไม่สามารถเรียกใช้ได้อีก
  • Resume full session as-is จะโหลดการสนทนาโดยไม่เปลี่ยนแปลง โดยเก็บรายละเอียดทั้งหมดไว้ แต่ต้นทุนต่อคำขอจะเพิ่มตามขนาดของการสนทนา

มีตัวเลือกที่สามเพื่อดำเนินการต่อแบบเต็มและป้องกันไม่ให้ dialog ปรากฏในการดำเนินการต่อครั้งถัดไป

การตัดสินใจนั้นง่ายกว่าที่คิด ให้ดำเนินการต่อเมื่อสิ่งที่คุณกำลังจะพิมพ์ขึ้นอยู่กับสิ่งที่พูดไปแล้ว ให้เริ่มเซสชันใหม่เมื่อไม่ขึ้นอยู่กับสิ่งนั้น คุณจะสังเกตเห็นบริบทที่คลาดเคลื่อนได้ง่ายเมื่อคอยตรวจสอบ เช่น Claude อ้างถึงไฟล์ที่คุณลบไปเมื่อ 1 ชั่วโมงก่อน หรือกลับมาโต้แย้งการตัดสินใจที่คุณสรุปไว้ตั้งแต่ต้นเซสชัน นั่นคือบริบทที่ล้าสมัย และการนำบริบทดังกล่าวไปต่อจะเพิ่มทั้งการใช้โทเค็นและความคลาดเคลื่อนของผลลัพธ์

หากส่วนที่มีประโยชน์ของการสนทนาเก่าคือการตัดสินใจหรือข้อเท็จจริงที่คุณต้องใช้ซ้ำ อย่าพึ่งพาการดำเนินการต่อเพื่อเก็บข้อมูลนั้นไว้ ให้บันทึกไว้ในตำแหน่งที่ทุกเซสชันเข้าถึงได้ ซึ่งเป็นวัตถุประสงค์ของ ไฟล์ memory ของ Claude Code

/branch ก็มีประโยชน์ในกรณีนี้เช่นกัน คำสั่งนี้จะคัดลอกการสนทนาจนถึงจุดปัจจุบันและสลับคุณไปยังสำเนา โดยยังคงต้นฉบับไว้และแสดงอยู่ในตัวเลือกเซสชัน ใช้คำสั่งนี้เพื่อทดลองแนวทางที่สองโดยไม่สูญเสียแนวทางแรก

Resume แตกต่างจาก compaction และ memory อย่างไร

สิ่งเหล่านี้มักถูกสับสนอยู่เสมอ แต่ใช้แก้ปัญหาคนละแบบ

Resume ใช้สำหรับนำ conversation กลับมาใช้งาน หลังจากที่คุณออกจากโปรแกรม, reboot หรือเปลี่ยนไปทำงานอื่น ส่วน compaction ใช้จัดการ context window ภายใน conversation ที่ยังทำงานอยู่: /compact จะแทนที่สิ่งที่ Claude กำลังถือไว้ด้วยสรุป เพื่อให้คำขอถัดไปส่ง tokens น้อยลง หากปัญหาคือ context window เต็ม ให้ใช้ compaction และดูรายละเอียดได้ที่ การจัดการ context window ของ Claude Code

Memory แตกต่างออกไปอีก CLAUDE.md files และ auto memory จะโหลด instructions และ facts เมื่อเริ่มต้นทุก session ดังนั้นสิ่งเหล่านี้จึงไม่ใช่ conversation ที่คุณกลับเข้าไปใช้งาน แต่เป็นข้อมูลที่คุณบันทึกไว้ เพื่อไม่ให้ต้องกลับไปหา conversation เดิมอีก

หากคุณต้องการให้มี 2 conversations ทำงานพร้อมกันและประสานงานกัน นั่นเป็นอีก mechanism หนึ่ง Claude Code sessions สามารถส่งข้อความถึงกันได้ ขณะที่ทั้งสองยังทำงานอยู่ ซึ่งเป็นคนละปัญหากับการดึง session ของเมื่อวานกลับจาก disk

FAQ

Claude Code จัดเก็บประวัติเซสชันไว้ที่ใด

โดยค่าเริ่มต้นจะจัดเก็บไว้ใต้ไดเรกทอรี config ที่ ~/.claude/projects/<project>/<session-id>.jsonl โดย <project> คือ path ของไดเรกทอรีทำงานที่แทนอักขระซึ่งไม่ใช่ตัวอักษรหรือตัวเลขด้วยเครื่องหมาย hyphen ไฟล์แต่ละไฟล์เป็น JSONL โดยมี JSON object 1 รายการต่อ 1 บรรทัด สำหรับข้อความ การใช้เครื่องมือ หรือรายการ metadata CLAUDE_CONFIG_DIR ใช้ย้ายไดเรกทอรี config ไปยังตำแหน่งอื่น และ cleanupPeriodDays ใน settings.json ใช้กำหนดระยะเวลาที่จะเก็บ transcript โดยค่าเริ่มต้นคือ 30 วัน และค่าต่ำสุดคือ 1

เหตุใดจึงไม่เห็นเซสชัน VPS ในตัวเลือกบน laptop

เนื่องจาก transcript จะถูกเขียนลง disk ของเครื่องที่ agent ทำงาน และไม่มีการ sync ระหว่างเครื่อง การสนทนาที่คุณดำเนินการภายใน tmux บน VPS จะมีอยู่เฉพาะบน VPS เท่านั้น ให้ resume เซสชันนั้นบน VPS ผ่าน SSH หรือเรียกใช้ /export ภายในเซสชัน แล้วคัดลอกไฟล์ข้อความออกมา หากต้องการเก็บสำเนาไว้ในเครื่อง

สามารถ resume เซสชันที่เริ่มไว้ในไดเรกทอรีอื่นได้หรือไม่

ได้ หากคุณมี session ID claude --resume <session-id> จะค้นหาในไดเรกทอรี project ปัจจุบันและ git worktrees ของ project นั้นก่อน จากนั้นจึงค้นหาใน project อื่นทั้งหมดบนเครื่องเดียวกัน ภายในตัวเลือก Ctrl+A จะขยายรายการให้ครอบคลุมทุก project บนเครื่อง และ Ctrl+W จะขยายรายการให้ครอบคลุมทุก worktree ของ repository ปัจจุบัน หากไม่พบรายการที่ตรงกัน Claude Code จะแจ้ง No conversation found with session ID: <session-id>

ควร resume เซสชันเก่าหรือเริ่มเซสชันใหม่

ให้ resume เมื่อข้อความถัดไปขึ้นอยู่กับสิ่งที่พูดไปแล้วในการสนทนานั้น ให้เริ่มเซสชันใหม่เมื่อไม่เกี่ยวข้องกัน เพราะการ resume จะโหลดประวัติทั้งหมด และคำขอทุกครั้งหลังจากนั้นจะต้องแนบประวัติดังกล่าวไปด้วย ระวัง context drift: หากเซสชันยังอ้างถึงไฟล์ที่คุณลบไปแล้ว แสดงว่าเซสชันกำลังใช้ context ที่ล้าสมัย และ context นั้นจะใช้ token รวมทั้งลดความแม่นยำในทุก turn

สามารถหยุดไม่ให้ Claude Code เขียน transcript ลง disk ได้หรือไม่

ได้ CLAUDE_CODE_SKIP_PROMPT_HISTORY จะระงับการเขียน transcript และ --no-session-persistence จะระงับการเขียนสำหรับการเรียกใช้ claude -p แบบ non-interactive เพียงครั้งเดียว ควรทำความเข้าใจผลกระทบก่อน เพราะ transcript คือข้อมูลที่ resume ใช้อ่าน ดังนั้นเมื่อปิดการเขียน --continue และ --resume จะไม่มีข้อมูลให้โหลด หากข้อกังวลของคุณคือที่จัดเก็บไฟล์ ไม่ใช่การมีไฟล์อยู่ ให้กำหนด CLAUDE_CONFIG_DIR ไปยัง encrypted volume และลดค่า cleanupPeriodDays แทน