winclipshot: เครื่องมือที่ทำให้สามารถวางภาพหน้าจอด้วย Ctrl+V ได้ในเทอร์มินัลบน Windows
(github.com/Higangssh)เดิมทีผมใช้สิ่งนี้คนเดียวตอนใช้ Claude Code บน Windows แต่มีคนรอบตัวขอให้แชร์ เลยทำออกมาเป็นโอเพนซอร์สแบบเรียบง่ายครับ
ในเทอร์มินัลบน Windows ไม่สามารถวางภาพหน้าจอด้วย Ctrl+V ได้ เพราะตัวเทอร์มินัลไม่สามารถจัดการข้อมูลรูปภาพในคลิปบอร์ดได้
winclipshot จะคอย subscribe อีเวนต์การเปลี่ยนแปลงของคลิปบอร์ดไว้ และเมื่อมีรูปภาพใหม่เข้ามา ก็จะตรวจสอบหน้าต่างที่กำลังโฟกัสอยู่ตอนนั้นว่า:
- ถ้าเป็นเทอร์มินัล (Windows Terminal, cmd, PowerShell, Alacritty, WezTerm ฯลฯ) → จะบันทึกเป็น PNG แล้วแทนที่คลิปบอร์ดด้วยพาธของไฟล์นั้น เมื่อกด Ctrl+V ก็จะวางพาธลงไป และ CLI อย่าง Claude Code จะอ่านพาธนั้นเพื่อประมวลผลรูปภาพ
- ถ้าเป็นแอปอื่น (Slack, Chrome, Word ฯลฯ) → จะคงรูปภาพไว้ตามเดิม จึงยังวางได้ตามปกติ
โปรแกรมไม่แตะ Win+Shift+S (ไม่มีการลงทะเบียน global hotkey) และเมื่อปิด exe ก็จะกลับไปทำงานแบบเดิมทั้งหมด
ยังรองรับโฟลว์แบบ "จับภาพหน้าจอใน Chrome → ย้ายไปที่เทอร์มินัลแล้ววาง" ด้วย โดยถ้ารูปภาพเข้ามาในแอปที่ไม่ใช่เทอร์มินัล จะเก็บไว้ในสถานะ "pending" เป็นเวลา 60 วินาที และจะทำการแปลงทันทีที่ผู้ใช้ย้ายโฟกัสไปยังเทอร์มินัล
เนื่องจากทำงานแบบ event-based จึงใช้ CPU แทบเป็น 0% และใช้หน่วยความจำประมาณ 15MB นอกจากนี้ยังมี benchmark flag (-bench) และตัวเลือกสำหรับปรับแต่ง (-out, -terminals, -pending, -v) มาให้ด้วย
Claude Code รองรับการวางภาพหน้าจอด้วย Ctrl+V (หรือ Alt+V) แต่บางครั้งอาจล้มเหลวเป็นพัก ๆ และใน CLI อื่น ๆ (เช่น ssh session, TUI บางตัว ฯลฯ) อาจไม่รองรับวิธีนั้นเลย หรือจำเป็นต้องใช้คำสั่งแยกต่างหาก (เช่น /paste ของ Aider) ส่วน winclipshot ทำให้ไม่ว่าจะเป็น CLI แบบไหน ก็จบได้ด้วยแค่ "ภาพหน้าจอ → Ctrl+V"
เป็นเครื่องมือที่ทำขึ้นแบบเรียบง่าย ใครที่ต้องการก็ลองนำไปใช้ได้เลย และถ้ามีฟีดแบ็กก็จะขอบคุณมากครับ!
4 ความคิดเห็น
ตอนเขียนโค้ด การแทรกรูปภาพทำได้ยาก แต่พอใช้ตัวนี้แล้วก็ทำงานได้สะดวกขึ้นมากจริง ๆ ขอบคุณครับ!
ดีใจที่คุณใช้งานได้ดี ขอบคุณมากครับ!
ว้าว! จะใช้อย่างดีเลย!
ขอบคุณครับ!