การสร้าง Status Line แบบกำหนดเองสำหรับ Claude Code
ผมใช้เวลาส่วนใหญ่ของวันไปกับ Claude Code มันทำหน้าที่เป็นทั้งโปรแกรมเมอร์และผู้รีวิวโค้ดให้ผม
หลังจากผ่านไปไม่กี่วัน ผมก็สังเกตเห็นปัญหา ผมไม่รู้ว่าใช้โทเคนไปเท่าไหร่แล้ว ไม่รู้ว่าค่าใช้จ่ายในเซสชันนี้เป็นเท่าไหร่ และไม่รู้ว่าเหลือ Context อีกเท่าไหร่
ผมไม่อยากต้องคอยพิมพ์คำสั่งเพื่อตรวจสอบข้อมูลเหล่านี้ ผมอยากเห็นมันแบบเรียลไทม์ ผมอยากแค่เหลือบมองที่ Terminal แล้วรู้สถานะได้ทันที
ผมจึงสร้าง Status Line แบบกำหนดเองขึ้นมา
ผมเน้นไปที่ 3 เรื่องหลัก:
- Session Cost: Claude Opus ไม่ได้ฟรี การเห็นค่าใช้จ่ายแบบสดๆ ช่วยให้ผมตัดสินใจได้ว่าควรจะจบงานนั้นเมื่อไหร่
- Context Window: ผมอยากเห็นเปอร์เซ็นต์ของ Context ที่เหลืออยู่ ซึ่งช่วยให้ผมตัดสินใจได้ว่าเมื่อไหร่ควรจะเริ่มเซสชันใหม่
- Project Info: ผมจำเป็นต้องเห็นไดเรกทอรีปัจจุบัน, git branch และโมเดลที่ผมกำลังใช้งานอยู่
API ของ Status Line นั้นเรียบง่ายมาก คุณเพียงแค่ชี้ Claude Code ไปที่ shell script ตัวเครื่องมือจะส่งเอกสาร JSON ไปยังสคริปต์ของคุณผ่าน stdin และสคริปต์ของคุณก็จะพิมพ์ผลลัพธ์ออกมาทาง stdout
มันไม่ใช้ SDK หรือ framework ใดๆ เลย เพียงแค่ใช้ stdin และ stdout เท่านั้น มันทำงานแบบ local และไม่มีค่าใช้จ่ายใดๆ
วิธีการตั้งค่า:
- สร้างสคริปต์ที่
~/.claude/statusline.sh - ใช้
jqเพื่อ parse ข้อมูล JSON - จัดรูปแบบ output เพื่อแสดง path, branch, model, tokens และ cost ของคุณ
- เพิ่มสคริปต์ลงในไฟล์
~/.claude/settings.json
คุณสามารถตั้งค่า refresh interval เป็น 1 วินาที เพื่อให้ได้ dashboard แบบเรียลไทม์
หากคุณไม่อยากเขียนโค้ด Claude Code มีทางลัดให้ โดยรัน:
/statusline show me model, branch, token counts, context percentage, and cost
สิ่งนี้จะสร้างบรรทัดสถานะให้คุณโดยอัตโนมัติ
การปรับแต่งเครื่องมือของคุณด้วย shell script ง่ายๆ จะเปลี่ยนวิธีการทำงานของคุณ คุณจะเลิกนั่งรอฟีเจอร์ใหม่ๆ และเริ่มสร้างระบบอัตโนมัติของคุณเอง
Source: https://dev.to/ndrone/building-a-custom-status-line-for-claude-code-5822
Optional learning community: https://t.me/GyaanSetuAi
