ditto ขุด log จาก Claude Code และ Codex มาทำเป็นโปรไฟล์ you.md ให้ AI agent อ่านก่อนลงมือทุกครั้ง
ditto คือสคริปต์ตัวเดียวที่ขุด log การใช้ Claude Code กับ Codex ของเราเอง มาทำเป็นโปรไฟล์ you.md ให้ agent อ่านก่อนเริ่มงานทุกครั้ง มันไม่ใช่ memory ที่เราพิมพ์บอกไว้เอง แต่เป็นกฎที่มีใบเสร็จจาก session จริงรองรับทุกข้อ

ditto อ่าน log การสนทนาที่เราเคยใช้ Claude Code และ Codex ซึ่งเป็น AI agent สายเขียนโค้ดที่สั่งงานผ่านเทอร์มินัล แล้วสรุปเป็นไฟล์เดียวชื่อ you.md ให้ agent เปิดอ่านก่อนเริ่มงานทุกครั้ง ส่วน log เหล่านี้คือบันทึกบทสนทนาทุก session ที่เครื่องเราเก็บไว้อยู่แล้ว ไม่ต้องเปิดอะไรเพิ่ม
ตอนคนสร้างเอา ditto ไปรันกับ log ของตัวเอง 1,656 session กฎข้อหนึ่งที่ขุดได้คือ «สร้างของเร็วกว่าที่ตัวเองเข้าใจสิ่งที่สร้าง แล้วค่อยไปให้ agent อธิบายระบบของตัวเองกลับ» ไม่มีใครเคยพิมพ์ประโยคนี้บอกมัน แต่มันสรุปเองจากงานที่ผ่านมา
สิ่งที่ ditto แก้คือเรื่องที่คนใช้ agent ทุกวันเจอจนชิน คือทุก session เริ่มจากศูนย์เหมือนเพิ่งเจอกันครั้งแรก เราพิมพ์ซ้ำว่าอย่ารื้อโค้ดส่วนที่ไม่ได้พัง พิมพ์ซ้ำว่าคำว่าเสร็จแปลว่าต้องรันขึ้นจริงแล้วเท่านั้น แล้ววันรุ่งขึ้นก็ต้องพิมพ์ใหม่อีกรอบ
memory คือสิ่งที่เราพิมพ์บอกมันเอง

memory ของ AI agent คือสิ่งที่เราตั้งใจเขียนบอกมันเอง เช่น กฎในไฟล์ CLAUDE.md หรือ AGENTS.md ที่เตรียมไว้ให้มันอ่านก่อนทำงาน
ditto ไม่แตะไฟล์พวกนั้นเลย มันประกาศชัดว่าไฟล์กฎ · ไฟล์ memory · ข้อความที่เราบรรยายตัวเอง ใช้เป็นหลักฐานไม่ได้สักอย่าง สิ่งที่มันอ่านคือ log ของ session ที่เกิดขึ้นจริงเท่านั้น แล้วดูจากงานจริงว่าคำว่าเสร็จของเราแปลว่าอะไร อะไรที่เราปัดตกทันทีที่เห็น เราเริ่มขอหลักฐานตอนไหน และตอนทำงานจริงเราพูดยังไง
ไฟล์กฎบอกว่าเราอยากเป็นคนทำงานแบบไหน แต่ log บอกว่าจริง ๆ แล้วเราเป็นคนแบบไหน
เอกสารของ ditto มีตัวอย่างเปรียบเทียบให้ดูตรง ๆ โดยสั่ง agent ตัวเดิมด้วยประโยคเดียวกันสองรอบ รอบแรกไม่โหลดโปรไฟล์ ส่วนอีกรอบโหลด คำตอบรอบหลังเจาะจงกว่าเห็น ๆ เพราะมันรู้แล้วว่าอะไรที่คนสั่งรับได้และอะไรที่รับไม่ได้
กฎทุกข้อต้องมีใบเสร็จ
กฎที่ ditto เขียนลง you.md ทุกข้อมีใบเสร็จแนบไว้ คือข้อความจริงที่เราเคยพิมพ์ พร้อมวันที่และ session ต้นทาง ไม่ใช่ AI นั่งเดาบุคลิกให้เรา
กฎที่มันอนุมานเองต้องมี session ที่ไม่ซ้ำกันอย่างน้อยสองครั้งรองรับ ถึงจะรอดมาอยู่ในโปรไฟล์ ส่วนคำสั่งที่เราพิมพ์บอกตรง ๆ เพียงครั้งเดียวและไม่มีอะไรมาขัดแย้ง ก็ยังเก็บไว้ได้ในฐานะหลักฐานที่พบเพียงครั้งเดียว แต่ข้อความกว้าง ๆ ที่ใช้กับใครก็ได้ · คำพูดที่หาต้นทางไม่เจอ · ข้อขัดแย้งที่ยังหาข้อสรุปไม่ได้ · แคชที่เสีย มันตัดทิ้งหมด และยอมไม่สรุปอะไรเลยดีกว่าเดา
นอกจาก Claude Code กับ Codex แล้ว มันยังอ่าน log ของ Copilot CLI และ OpenCode ได้ด้วย ก่อนเริ่มขุด มันจะตัดข้อมูลออกไปมาก ตัวคัดข้อความจะเก็บเฉพาะสิ่งที่เราพิมพ์เอง ส่วน output ของเครื่องมือ · error ที่เราแปะเข้าไป · เนื้อหาเต็มไฟล์ที่เราใส่เข้าไป · คำตอบของ AI มันตัดทิ้งหมด ตัวคัดข้อความยังตัดข้อความยาว ๆ ที่ซ้ำกันออกด้วย จากนั้นจึงกวาดหาความลับและข้อมูลส่วนตัวเพื่อปิดบังก่อนเขียนลงแคชในเครื่อง
พอถึงรอบขุดจริง ditto จะแบ่งข้อความที่คัดแล้วเป็นก้อน ๆ ในแต่ละรอบ โมเดลจะเห็นแค่ก้อนที่ได้รับ ไม่เห็นข้อความทั้งหมด ส่วนรอบสุดท้ายจะรวมเฉพาะรายงานที่ผ่านการตรวจแล้วเป็นโปรไฟล์เดียว โดยไม่ได้แตะ log ต้นฉบับอีกเลย
การ์ดใบเดียวที่สรุปว่าเราทำงานยังไง
สั่ง python ditto.py --card แล้วโปรไฟล์ที่ขุดมาจะกลายเป็นการ์ดหน้าเดียวที่ส่งต่อให้คนอื่นดูได้ บนการ์ดมี archetype (คำเดียวที่สรุปว่าเราเป็นคนทำงานแบบไหน) · กฎเด่นเรียงตามจำนวนหลักฐานที่รองรับ · สถิติว่าขุดมาจากกี่ session · และช่องล่างสุดที่เขียนความจริงหนึ่งข้อซึ่งอ่านแล้วแสลงใจ

ติดตั้งใน Claude Code กับ Codex
ทางที่เร็วที่สุดคือคำสั่งเดียว ใช้ได้ทั้งใน Claude Code และ Codex
npx skills add ohad6k/ditto@dittoจากนั้นบอก agent ตรง ๆ ว่า run ditto มันจะเตรียมแผนว่าจะขุด log ทั้งหมดที่มีอย่างไร แล้วแสดงให้ดูก่อนโดยยังไม่เรียกโมเดลสักรอบ วิธีนี้ยังไม่แยกสกิลตามงาน
ถ้าอยากได้ตัวเต็มที่แยกสกิลตามงาน ให้ลงเป็นปลั๊กอินของแต่ละ agent ฝั่ง Codex พิมพ์สองบรรทัดนี้ในเทอร์มินัล
codex plugin marketplace add ohad6k/ditto --ref v0.3.2 --json
codex plugin add ditto@ditto --jsonฝั่ง Claude Code พิมพ์สองบรรทัดนี้ในหน้าต่าง Claude Code เอง
/plugin marketplace add ohad6k/ditto
/plugin install ditto@dittoปลั๊กอินจะเปิดสกิลสี่ตัวให้เลือกโหลดตามงานตรงหน้า วิธีลงแบบนี้เป็นระบบเดียวกับสกิลตัวอื่นของ agent อย่าง ponytail ที่ลงแล้วเปลี่ยนพฤติกรรมการเขียนโค้ดของมันไปเลย
ditto:workสำหรับงานทั่วไป โหลดแค่โปรไฟล์การทำงานหลักditto:designสำหรับงานออกแบบ โหลดโปรไฟล์หลักบวกรสนิยมการออกแบบditto:writeสำหรับงานเขียน โหลดโปรไฟล์หลักบวกสไตล์การเขียนditto:mineเรียกเฉพาะตอนจะติดตั้ง อัปเดต หรือขุดเพิ่มเท่านั้น
อยากอัปเดตโปรไฟล์ทีหลัง บอกไปว่า run update ditto มันจะนำผลเดิมในส่วนที่ไม่เปลี่ยนมาใช้ซ้ำ แล้ววางแผนขุดเฉพาะส่วนที่เปลี่ยนไปจริง ๆ ถ้าไม่มีอะไรเปลี่ยนเลย ก็ไม่ต้องขุดเพิ่มสักรอบ
มันขอไฟเขียวก่อนเสมอ

ก่อนขุดจริง ditto จะแสดงแผนให้ดูก่อนโดยยังไม่ลงมือขุด ในแผนจะบอกว่ามี session ที่ใช้ได้กี่อัน · ข้อความที่คัดแล้วคิดเป็นกี่ token (หน่วยนับข้อความที่โมเดลใช้คิดค่าใช้จ่าย) · จะต้องเรียกโมเดลกี่รอบ แล้วมันหยุดรอให้คนกดอนุมัติ ไม่มีการเรียกโมเดลสักครั้งก่อนถึงตรงนั้น
ditto จะเก็บผลจากรอบที่เคยขุดไว้ใช้ซ้ำ ดังนั้นเมื่อรันซ้ำ ตัวเลขค่าใช้จ่ายของงานที่เหลือจึงลดลงเรื่อย ๆ แต่ตัวเลขเหล่านี้ไม่ใช่บิลจริงจากผู้ให้บริการโมเดล เพราะ ditto คำนวณค่าใช้จ่ายฝั่งผู้ให้บริการได้ไม่ครบ ไม่ว่าจะเป็นข้อความระบบที่แนบไปกับทุกคำขอ · ข้อมูลที่เครื่องมือรับส่งกันเอง · ค่าจัดการเบื้องหลัง
มีโหมดพรีวิวราคาถูกไว้ให้ลองก่อน แต่ผู้พัฒนาวัดผลเองแล้วบอกตรง ๆ ว่าอย่าใช้โหมดนี้ตัดสินว่า ditto ขุดได้ดีแค่ไหน จากชุดทดสอบ 22 ข้อที่ตั้งไว้ พรีวิวแบบกว้างที่สุดขุดได้ 5 ข้อ ส่วนการขุดจาก log ทั้งหมดครั้งแรกได้ 12 ข้อ ตัวเลขนี้บอกสองอย่างพร้อมกัน คือการขุดแบบเต็มให้ผลดีกว่าอย่างชัดเจน แต่ก็ยังขุดได้ไม่ครบ
อยู่ในเครื่อง แต่ไม่ได้อยู่ในเครื่องทั้งหมด
ตัวคัดข้อความ · ตัวปิดบังความลับ · แคช · โปรไฟล์ที่ขุดเสร็จ อยู่ในเครื่องเราทั้งหมด ตัวไฟล์ ditto.py เองเขียนด้วยไลบรารีมาตรฐานของ Python ล้วน ๆ และไม่ต่อเน็ตเอง ไฟล์ที่มันสร้างก็ไปกองอยู่ใต้โฟลเดอร์ ~/.ditto ไม่ได้ปนอยู่ในแคชของปลั๊กอิน การลงหรือถอนปลั๊กอินจึงไม่แตะโปรไฟล์ของเราเลย
แต่ข้อความที่คัดแล้วยังต้องส่งให้โมเดลที่เราเลือกอ่านและสรุปอยู่ดี ถ้าอยากให้ทุกขั้นตอนอยู่ในเครื่องทั้งหมด ต้องเลือกโมเดลที่รันในเครื่องตัวเองมาขุดรอบนี้
ตัวปิดบังกวาดหา API key · โทเคนของ GitHub กับ Supabase · JWT · คีย์ AWS · อีเมล · เบอร์โทร · เลข IP รวมถึงข้อความทั่วไปอย่าง «รหัสไวไฟคือ...» ที่คนชอบแปะให้ agent ดู แต่ระบบนี้พยายามตรวจหาให้ได้มากที่สุดเท่านั้น ไม่ได้รับประกันว่าจะเจอทั้งหมด เอกสารความปลอดภัยของ ditto (ohad6k) จึงลงท้ายด้วยคำเตือนที่ตรงไปตรงมา
อีกอย่างที่ควรรู้ก่อนติดตั้งคือ ตัวติดตั้ง skills.sh จะส่งสถิติการติดตั้งแบบไม่ระบุตัวตนกลับไปโดยอัตโนมัติหากไม่เปลี่ยนค่าเริ่มต้น ปิดได้ด้วยการตั้ง DISABLE_TELEMETRY=1
มันไม่ได้ทำให้โมเดลฉลาดขึ้น
เส้นแบ่งของ ditto ชัดมาก มันไม่ได้ทำให้โมเดลเก่งขึ้นสักนิด มันแค่ทำให้โมเดลรู้จักคนที่มันทำงานด้วย
ถ้า log เรามีน้อยหรือซ้ำไปซ้ำมา โปรไฟล์ด้านงานออกแบบหรือด้านงานเขียนอาจจะขุดไม่ขึ้นเลย แล้วมันจะบอกตรง ๆ ว่าต้องมีตัวอย่างงานแบบไหนเพิ่มจึงจะขุดได้ แทนที่จะปั้นบุคลิกมั่ว ๆ มาเติมช่องว่างให้ครบ
อีกอย่างที่คนใช้ Claude Code มักไม่รู้ คือมันลบ log เก่าทิ้งเองตามกำหนด ค่าเริ่มต้นของ cleanupPeriodDays คือ 30 วัน แปลว่า session ที่เก่ากว่านั้นหายไปก่อนที่ ditto จะได้เห็นด้วยซ้ำ ใครคิดจะขุดประวัติย้อนหลังยาว ๆ ต้องไปเพิ่มค่านี้ก่อน แล้วค่อยขุดจาก log เท่าที่ยังเหลืออยู่
ส่วนผลทดสอบเปรียบเทียบกับเครื่องมืออื่นหรือคลิปสาธิต ผู้พัฒนาบอกเองว่ารุ่นนี้ยังไม่มี และเลื่อนไปทำในรุ่นหน้า ตอนนี้มีแค่ตัวเครื่องมือกับหลักฐานในโปรไฟล์ให้ดูกันตรง ๆ
ไฟล์กฎที่เราเขียนเองแก้ให้ดูดีได้ใน 30 วินาที แต่โปรไฟล์ที่ขุดจาก log แก้ด้วยการพิมพ์ทับไม่ได้ ถ้าอยากให้โปรไฟล์รอบหน้าออกมาดูดีขึ้น ต้องไปเปลี่ยนวิธีทำงานใน session ถัดไป แล้วปล่อยให้ log บันทึกไว้เอง
ที่มา:
- GitHub - ohad6k/ditto: Mine your Claude Code and Codex logs into a local you.md agent profile. จาก ditto (ohad6k)
- SECURITY.md - ohad6k/ditto จาก ditto (ohad6k)



