hspotlight

ตั้งค่าแจ้งเตือนเสียงให้ Claude ทำงานเสร็จ

· 1 min read
ตั้งค่าแจ้งเตือนเสียงให้ Claude ทำงานเสร็จ

ปัญหาที่พบบ่อยเมื่อใช้ Claude

เมื่อสั่ง Claude ทำ Task ยาวๆ จำเป็นต้องนั่งเฝ้าหน้าจอเพื่อ:

  • ดูว่าติดปัญหาหรือไม่
  • อยากส่งคำสั่งถัดไป

สถานการณ์นี้เหนื่อยมากเพราะสมองโดน “lock” ไว้ และไม่สามารถทำอย่างอื่นได้

วิธีแก้: ตั้งค่า Hook เพื่อแจ้งเตือน

ปัญหานี้จะหมดไปเมื่อเราตั้งค่า Claude ให้แจ้งเตือนเมื่อเสร็จงาน!

Hook คืออะไร

Claude Code สามารถตั้งค่า “Hook” ซึ่งเป็นการผูก event ที่เกิดขึ้นกับการทำงานบางอย่างที่เราต้องการได้

ตัวอย่าง:

  • Event: แก้ไข code เสร็จแล้ว → Action: จัด format ทุกครั้ง ✅
  • Event: ก่อนเอา output เข้า context → Action: บีบอัดข้อมูลเพื่อไม่เปลือง token ✅

Event สำหรับแจ้งเตือน

เราสามารถผูก event เหล่านี้กับการแจ้งเตือน:

  • Notification - แจ้งเตือนเมื่อต้องการ input จาก user
  • Stop - เมื่อทำงานเสร็จ

เสียง Built-in ใน MacOS

1. เสียง Built-in ของระบบ

เสียง built-in อยู่ใน /System/Library/Sounds เช่น:

  • Glass.aiff
  • Ping.aiff

สามารถเล่นได้ด้วยคำสั่ง afplay:

$afplay /System/Library/Sounds/Ping.aiff

2. Text-to-Speech เช่น Siri

ใช้คำสั่ง say พร้อมกับเสียง Siri:

say -v Siri "Done"
say -v Siri "I need help"

หมายเหตุ: MacOS มีเสียงให้เลือกมากกว่า 30 เสียง และสามารถเล่นไฟล์เสียงของเราเองได้เช่นกัน

ตั้งค่า Hook เพื่อแจ้งเตือนด้วยเสียง

ขั้นตอนการตั้งค่า

1. เปิดไฟล์ ~/.claude/settings.json

2. เพิ่มคำสั่งด้านล่าง:

"hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "say -v Siri 'Mission Complete!'",
            "async": true
          }
        ]
      }
    ],
    "Notification": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "say -v Siri 'Somebody Help Me!'",
            "async": true
          }
        ]
      }
    ]
  }

3. เปิด Claude ใหม่แล้วลองใช้งาน

สรุป

การแจ้งเตือนด้วยเสียงช่วยให้เรารู้ว่า Claude ทำงานเสร็จแล้วหรือยัง สะดวกมากเมื่อเราอยู่ใกล้กับคอมแต่ไม่ว่างดู

ข้อแนะนำ: หากปล่อยให้ Claude ทำงานทิ้งไว้และไปข้างนอก หรือใช้ remote-control ลองเปลี่ยนไปแจ้งเตือนทางอื่น เช่น Email เพื่อได้รับการแจ้งเตือนแม้อยู่ไกลจากคอมพิวเตอร์