6 คะแนน โดย GN⁺ 2026-01-23 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Claude Chill เป็น เครื่องมือพร็อกซี PTY ที่ช่วยบรรเทาปัญหาความหน่วงและอาการหน้าจอกะพริบ ที่เกิดขึ้นเมื่อ Claude Code วาดทั้งหน้าจอของเทอร์มินัลใหม่ซ้ำ ๆ
  • ดักจับ เอาต์พุตแบบซิงโครไนซ์ (sync blocks) ที่ Claude Code ใช้งาน และใช้ การเรนเดอร์แบบอิง VT100 เพื่ออัปเดตเฉพาะส่วนที่เปลี่ยนบนหน้าจอ
  • มี บัฟเฟอร์ประวัติ เพื่อให้ย้อนดู scrollback ได้ และสามารถเข้าสู่ โหมด lookback ด้วยปุ่ม Ctrl+6 เพื่อดูประวัติเอาต์พุตทั้งหมดได้
  • มีฟีเจอร์ auto-lookback ที่จะดัมป์ประวัติโดยอัตโนมัติเมื่อไม่มีการป้อนข้อมูลในช่วงเวลาที่กำหนด
  • ทำงานได้บน Linux และ macOS และเป็น โซลูชันขนาดเบาที่ช่วยปรับปรุงประสิทธิภาพและความอ่านง่ายของเทอร์มินัล

ภาพรวม

  • Claude Chill เป็น โปรแกรมพร็อกซี PTY ที่สร้างขึ้นเพื่อแก้ปัญหาเอาต์พุตเทอร์มินัลของ Claude Code
    • Claude Code จะครอบเอาต์พุตทั้งหมดด้วย sync blocks แล้วเรนเดอร์ทีเดียว แต่ในกระบวนการนี้จะเกิด การรีเฟรชทั้งหน้าจอหลายพันบรรทัด
    • ส่งผลให้เกิดปัญหาอย่าง ความหน่วง อาการกะพริบ และการสูญเสีย scrollback
  • Claude Chill วางตัวอยู่ระหว่างเทอร์มินัลกับ Claude Code เพื่อ สะท้อนเฉพาะความแตกต่างของเอาต์พุต และคง บัฟเฟอร์ประวัติ เอาไว้

ความสามารถหลัก

  • ดักจับ sync blocks: ตรวจจับและประมวลผล sync blocks ขนาดใหญ่ที่ Claude Code ส่งออกมา
  • การเรนเดอร์แบบอิง VT: ใช้อีมูเลเตอร์ VT100 เพื่อติดตามสถานะหน้าจอและแสดงผลเฉพาะส่วนที่เปลี่ยน
  • เก็บประวัติและโหมด lookback: บันทึกเอาต์พุตไว้ในบัฟเฟอร์เพื่อให้ตรวจสอบล็อกย้อนหลังได้
    • เข้าสู่โหมด lookback ด้วยปุ่ม Ctrl+6
    • หยุดเอาต์พุตจาก Claude ชั่วคราวและแสดงประวัติทั้งหมดในเทอร์มินัล
    • กดปุ่มเดิมอีกครั้งหรือออกด้วย Ctrl+C ได้
  • auto-lookback: หากไม่มีการป้อนข้อมูลตามเวลาที่กำหนด (ค่าเริ่มต้น 15 วินาที) จะดัมป์ประวัติให้อัตโนมัติ
    • ปิดใช้งานได้ด้วยตัวเลือก -a 0
    • ระหว่างการดัมป์อัตโนมัติ หน้าจออาจกะพริบชั่วคราว

การติดตั้งและการใช้งาน

  • ติดตั้ง:
    cargo install --path crates/claude-chill  
    
  • ตัวอย่างการรัน:
    • รันแบบพื้นฐาน: claude-chill claude
    • ส่งอาร์กิวเมนต์: claude-chill -- claude --verbose
    • กำหนดขนาดประวัติ: claude-chill -H 50000 claude
    • ปิด auto-lookback: claude-chill -a 0 claude
  • ตัวเลือกสำคัญ:
    • -H, --history: จำนวนบรรทัดสูงสุดของประวัติ (ค่าเริ่มต้น 100000)
    • -k, --lookback-key: ปุ่มสลับโหมด lookback
    • -a, --auto-lookback-timeout: เวลารอก่อน auto-lookback (ms)

ไฟล์ตั้งค่า

  • ตำแหน่ง:
    • Linux: ~/.config/claude-chill.toml
    • macOS: ~/Library/Application Support/claude-chill.toml
  • รายการหลัก:
    • history_lines: จำนวนบรรทัดสูงสุดของประวัติ
    • lookback_key: ปุ่มสลับโหมด lookback
    • refresh_rate: FPS ของการเรนเดอร์
    • auto_lookback_timeout_ms: เวลาสำหรับ auto-lookback

โปรโตคอลคีย์บอร์ดและการตั้งค่าปุ่ม

  • รองรับ Kitty Keyboard Protocol และจะสลับโหมดอัตโนมัติในเทอร์มินัลที่รองรับ (เช่น Kitty, Ghostty, WezTerm)
    • เมื่อ Claude Code เปิดใช้งานโหมด Kitty, Claude Chill ก็จะรู้จักการเข้ารหัสนั้นโดยอัตโนมัติเช่นกัน
  • รูปแบบปุ่ม: [modifier][key]
    • ตัวอย่าง: [f12], [ctrl][g], [ctrl][shift][j]
  • ปุ่มเริ่มต้น Ctrl+6 จะส่ง ASCII 0x1E และโดยมากจะไม่ชนกับเทอร์มินัลส่วนใหญ่
    • บน macOS จะทำงานแบบเดียวกันด้วย Ctrl+Shift+6 (Ctrl+^)

วิธีการทำงาน

  • Claude Chill จะสร้าง virtual terminal (PTY) และรัน Claude Code เป็นโพรเซสลูก
  • โครงสร้างพร็อกซีอินพุต/เอาต์พุต:
    Terminal ⇄ claude-chill ⇄ Claude Code  
    
  • ขั้นตอนการประมวลผลหลัก:
    • อินพุต: ส่งต่อไปยัง Claude โดยบล็อกเฉพาะปุ่ม lookback
    • เอาต์พุต: ตรวจจับ sync blocks และส่งผ่านเอาต์พุตแบบอะซิงก์ตามเดิม
    • ติดตามสถานะหน้าจอด้วย VT emulation
    • เปรียบเทียบกับสถานะก่อนหน้าแล้ว เรนเดอร์เฉพาะส่วนที่ต่างกัน
    • คงบัฟเฟอร์ประวัติและรองรับโหมด lookback
    • ส่งต่อสัญญาณอย่าง SIGWINCH, SIGINT, SIGTERM ไปยัง Claude

ข้อควรระวัง

  • เป็นเครื่องมือที่พัฒนาขึ้นเพื่อความสะดวกส่วนตัว จึง ยังไม่ได้ผ่านการทดสอบอย่างกว้างขวาง
  • ยืนยันการทำงานบน Linux และ macOS
  • ไม่แนะนำให้ใช้งานในระบบสำคัญหรือสภาพแวดล้อมโครงสร้างพื้นฐาน
  • สัญญาอนุญาต MIT

1 ความคิดเห็น

 
GN⁺ 2026-01-23
ความเห็นจาก Hacker News
  • ฉันเป็นคนรับผิดชอบ การเรนเดอร์ TUI ของ Claude Code
    ต้องขออภัยที่ทำให้ใช้งานไม่สะดวกมาเป็นเวลานาน แต่วันนี้เราได้ปล่อย differential renderer ให้ผู้ใช้ทุกคนแล้ว
    เราเขียนระบบเรนเดอร์ใหม่ทั้งหมด และตอนนี้มีเพียงราว 1/3 ของเซสชันเท่านั้นที่ยังเจออาการกะพริบเป็นครั้งคราว อาการกะพริบต่อเนื่องแทบหายไปแล้ว
    นอกจากนี้ยังได้ส่งแพตช์รองรับ synchronized output (DEC mode 2026) ไปยัง VSCode terminal และ tmux และถูกรวมเข้าไปแล้ว
    ถ้าต้องการให้ไม่กะพริบเลย แนะนำ Ghostty ดูรายละเอียดได้ใน คอมเมนต์ issue #769, xterm.js PR #5453, tmux PR #4744

    • สงสัยว่าทำไมถึง ขาดการสื่อสารอย่างเป็นทางการ เกี่ยวกับปัญหาที่สำคัญขนาดนี้
      มีคอมเมนต์เข้ามาทุกวันใน GitHub issues (#1913, #826, #3648) แต่หลังการ rollback ในเดือนธันวาคม แทบไม่มีคำตอบจาก Anthropic เลย
      เข้าใจว่ามันยากในเชิงเทคนิค แต่ดูเหมือนว่า การสื่อสารที่ไม่เพียงพอ ทำให้ผู้ใช้เริ่มเสียความเชื่อมั่น
    • ฉันใช้แพลน $200 อยู่ แต่เจอ API request timeout บ่อยมาก
      ทั้งที่รันเอเจนต์แค่หนึ่งหรือสองตัวก็ยังเป็นอยู่ เลยสงสัยว่าอาจยังมี rate limit ของแพลนก่อนหน้า ค้างอยู่ หรือ เซสชันที่มีคอนเท็กซ์ยาว เป็นต้นเหตุหรือเปล่า
      ถึงอย่างนั้นเครื่องมือนี้ก็ยังน่าตื่นเต้นมาก เพราะช่วยให้สร้างแอปที่เมื่อก่อนทำไม่ได้
    • อยากให้ช่วยสนใจ issue #769 มากกว่านี้
      บน macOS iTerm ทุกครั้งที่หน้าต่างเสียโฟกัส หน้าจอจะเลื่อนขึ้น ทำให้ใช้งานลำบากมาก
    • ก่อนจะแนะนำ Ghostty อยากให้ลองอ่าน บทความนี้ ก่อน
      Ghostty มี memory leak มาตั้งแต่เวอร์ชัน 1.0 และแอป CLI อย่าง Claude Code มักสร้างเงื่อนไขที่ทำให้ปัญหานี้โผล่ออกมาชัดเจน
      ตอนนี้แก้ไขถูก merge แล้ว และจะรวมอยู่ในรีลีส 1.3
    • สงสัยว่ามีแผนจะ แยก TUI กับ UI ออกจากกัน เพื่อให้ใครก็ได้สร้างอินเทอร์เฟซของตัวเองหรือไม่
      ถ้าจัดองค์ประกอบได้ยืดหยุ่นแบบ Zed ก็น่าจะเป็นประสบการณ์ที่ดีกว่ามาก
  • ฉันไม่ได้ใช้ Claude Code มาหลายเดือนแล้ว แต่ก็ยังตกใจที่ ปัญหา flicker ยังไม่ถูกแก้
    เลยคิดว่าเหตุผลที่ไม่เปิดซอร์สอาจไม่ใช่เพราะการแข่งขัน แต่อาจเป็นเพราะ โค้ดเบสที่ยุ่งเหยิง ก็ได้

    • สาเหตุของปัญหาคือ ไลบรารี Ink ใช้วิธีลบทั้งหน้าจอแล้ววาดใหม่ทุกครั้งที่อัปเดต
      มีรายละเอียดอยู่ใน issue #769
      ฉันแพตช์แพ็กเกจ npm ในเครื่องตัวเองแล้ว แต่ก็ยังไม่สมบูรณ์ ต้องเปลี่ยนวิธีเรนเดอร์ในระดับโครงสร้าง
      ส่วน OpenAI Codex เขียนด้วย Rust + ratatui เลยไม่มีปัญหาแบบนี้
    • เดาว่าทีม Claude Code น่าจะ พัฒนา Claude Code ด้วย Claude Code เลยทำให้การแก้ปัญหาช้า
      บั๊กซับซ้อนแบบนี้สุดท้ายคนก็ต้องนั่งลงมาแก้เองในช่วงสุดสัปดาห์ แต่ดูเหมือนทีมจะปล่อยให้เอเจนต์ทำงานเป็นหลัก
    • Anthropic เคยบอกว่า “90% ของโค้ดจะถูกเขียนโดย AI” แต่กลับแก้ บั๊ก flicker พื้นฐาน ไม่ได้ ก็ฟังดูน่าขันเหมือนกัน
      เครื่องมือ CLI อื่น ๆ (opencode, codex, gemini, droid ฯลฯ) ไม่มีปัญหาแบบนี้
    • ดูเหมือนทีมจะกำลังรับมือกับ issues จำนวนมากและการเปลี่ยนแปลงของโมเดลที่รวดเร็ว
      ถ้าได้ลองใช้เองในสภาพแวดล้อม tmux ก็คงรู้ว่ามันทรมานแค่ไหน แต่ก็ยังอยากเข้าใจทีมอยู่บ้าง
    • Codex ลื่นและเสถียร กว่า Claude Code มาก น่าจะเพราะเขียนด้วย Rust เป็นหลัก
  • ฉันอยากใช้ Claude Code แต่ใช้ไม่ได้เพราะ ฟังก์ชัน scrollback ของ Ghostty พัง
    PTY proxy ไปดัก output stream เลยทำให้เข้าถึงบัฟเฟอร์ภายในของ Ghostty ไม่ได้

    • ฉันไม่เคยรู้สึกว่ามีปัญหาเรื่องการเลื่อนใน Ghostty นะ แต่ก็เสียดายที่ ไม่มี scrollbar
    • แนะนำให้ลองใช้ tmux ดู ถึงจะไม่มี smooth scrolling แต่ก็มี ฟีเจอร์หลากหลาย จนใช้งานได้น่าพอใจ
  • ตอนแรกสงสัยว่า flickering คืออะไรแน่
    บางครั้ง Claude Code จะเลื่อนหน้าจอขึ้นเองกะทันหัน แล้วเลื่อนกลับลงมายาก ต้องรีสตาร์ตเทอร์มินัลถึงจะกลับมาปกติ

    • ฉันก็เจอปัญหาเดียวกัน บน macOS iTerm2 ก็เป็นเหมือนกัน และ การเริ่มเซสชันใหม่เท่านั้น ที่ช่วยแก้ได้ชั่วคราว
    • ใน VSCode terminal มันหนักกว่าเดิมทั้งกับ Claude Code และ Gemini แต่พอเปลี่ยนไปใช้ Ghostty ก็ หายขาด
  • อยากให้มีฟังก์ชันสลับเพื่อ ตรึงช่องป้อนไว้ที่ด้านล่างของเทอร์มินัล
    การต้องเลื่อนขึ้นลงระหว่างแชตกับช่องป้อนข้อความตลอดเวลามันยุ่งยาก

    • ฉันก็เคยคิดแบบนั้นเหมือนกันตอนใช้ในสภาพแวดล้อม tmux–mosh–มือถือ
      ถ้ามองเรื่องการใช้งานบนมือถือ มันน่าจะเป็น ฟีเจอร์ระดับ game changer เลย
  • พอดูฟอร์แมตของ readme.md แล้วรู้สึกน่าสนใจ เพราะ เหมือน Claude Code เป็นคนเขียนเอง

    • แต่จริง ๆ แล้ว CC เองอาจไม่ได้เป็นคนเขียน และมีโอกาสสูงว่าจะเป็นผลลัพธ์ที่สร้างผ่าน โมเดลอื่น (เช่น Codex, Gemini ฯลฯ)
  • อัปเดตครั้งนี้น่าจะเป็น ผลงานที่สำคัญที่สุดของ Claude Code ในช่วงหลายเดือนที่ผ่านมา
    จะติดตั้งแล้วลองทดสอบทันที

  • ข่าวที่เกี่ยวข้องคือเคยเห็น โพสต์ก่อนหน้านี้ ที่บอกว่า “ปรับปรุงการเรนเดอร์เทอร์มินัลของ Claude Code ได้ 85%

    • แต่ถึงอย่างนั้น ปัญหาเรื่องการเลื่อนหน้าจอ ก็ยังคงอยู่
  • ในที่สุดก็ช่วยลด flickering ได้สักที ขอบคุณมาก นี่เป็น บั๊กที่ทำให้ปวดหัว มานาน และตอนนี้ก็พอหายใจหายคอได้บ้างแล้ว
    หวังว่า Anthropic จะแก้ปัญหานี้ให้หมดจดได้เร็ว ๆ

  • Codex ยัง ตอบสนองได้ดีกว่ามาก แม้เซสชันจะยาวขึ้น ส่วน Claude จะเริ่มหน่วงเมื่อเวลาผ่านไป

    • การที่ Codex เขียนด้วย Rust ดูจะสร้างความแตกต่างได้ชัดเจนจริง ๆ