Claude Code Hooks คืออะไร และวิธีใช้งาน

Rebecca Kovács

Rebecca Kovács

7 January 2026

Claude Code Hooks คืออะไร และวิธีใช้งาน

Apidog สำหรับองค์กร

การติดตั้งแบบ On-Premises

SSO & RBAC

รองรับมาตรฐาน SOC 2

สำรวจ Apidog Enterprise

สำหรับ Vibe Coders เครื่องมืออย่าง Claude Code ของ Anthropic กำลังพลิกโฉมวิธีการที่นักพัฒนาเขียนโค้ด ดีบั๊ก และจัดการโปรเจกต์ของพวกเขา Claude Code ทำหน้าที่เป็น "เครื่องมือเขียนโค้ดแบบ agentic" ที่ทำงานอยู่ในเทอร์มินัลของคุณ สามารถเข้าใจโค้ดเบสทั้งหมดของคุณ โต้ตอบกับระบบไฟล์ของคุณ รันคำสั่ง และแม้แต่เรียกดูเว็บเพื่อค้นหาเอกสารประกอบ มันเก่งกาจในงานต่างๆ เช่น การเขียนฟีเจอร์ใหม่ การแก้ไขบั๊ก และการปรับโครงสร้างโค้ดผ่านข้อความสั่งที่เป็นภาษามนุษย์

อย่างไรก็ตาม คุณลักษณะหลักของ Large Language Models (LLMs) คือธรรมชาติของการสุ่ม (probabilistic nature) แม้ว่าสิ่งนี้จะช่วยให้สามารถแก้ปัญหาได้อย่างสร้างสรรค์ แต่บางครั้งก็อาจนำไปสู่ความไม่แน่นอนได้ คุณอาจต้องการให้การกระทำบางอย่าง เช่น การตรวจสอบรูปแบบโค้ด (linting) ไฟล์หลังจากที่มีการเปลี่ยนแปลง หรือการรันการทดสอบหลังจากเขียนฟังก์ชันใหม่ ให้เกิดขึ้น ทุกครั้ง โดยไม่ผิดพลาด การพึ่งพา LLM ให้จำและทำสิ่งเหล่านี้ในทุกกรณีอาจไม่สอดคล้องกัน

นี่คือจุดที่ Claude Code Hooks เข้ามามีบทบาท Hooks เป็นฟีเจอร์ที่ทรงพลังที่ให้การควบคุมพฤติกรรมของ Claude Code แบบกำหนดได้ (deterministic) และเป็นโปรแกรม ทำให้มั่นใจได้ว่าการกระทำบางอย่างจะเกิดขึ้นเสมอ แทนที่จะต้องพึ่งพา LLM ในการเลือกที่จะรันมัน

💡
ต้องการเครื่องมือทดสอบ API ที่ยอดเยี่ยมที่สร้าง เอกสารประกอบ API ที่สวยงาม ใช่ไหม?

ลองใช้ Apidog MCP Server ที่ช่วยให้คุณสร้างโค้ดที่แม่นยำโดยการอ่านจากข้อกำหนด API ของคุณ!
ปุ่ม

บทความนี้ทำหน้าที่เป็นคู่มือที่ครอบคลุมสำหรับการทำความเข้าใจ การกำหนดค่า และการใช้ประโยชน์จาก Claude Code Hooks เพื่อสร้างเวิร์กโฟลว์การพัฒนาที่เป็นอัตโนมัติและคล่องตัวอย่างเต็มรูปแบบ

Claude Code Hooks คืออะไร?

โดยพื้นฐานแล้ว Claude Code Hooks คือคำสั่งเชลล์ที่ผู้ใช้กำหนดขึ้น ซึ่งจะทำงานโดยอัตโนมัติ ณ จุดเฉพาะในวงจรชีวิตของ Claude Code พวกมันทำหน้าที่เป็นทริกเกอร์ที่คุณสามารถกำหนดค่าให้ทำงานก่อนหรือหลังการกระทำบางอย่าง ทำให้คุณสามารถแทรกตรรกะ สคริปต์ และคำสั่งที่กำหนดเองของคุณเข้าไปในการทำงานของ Claude ได้โดยตรง

Hooks เชื่อมช่องว่างระหว่างความช่วยเหลือที่ขับเคลื่อนด้วย AI และระบบอัตโนมัติที่อิงตามกฎเกณฑ์ พวกมันช่วยให้คุณสามารถบังคับใช้มาตรฐาน ทำงานซ้ำๆ ให้เป็นอัตโนมัติ และรวมเครื่องมือภายนอกเข้ากับเวิร์กโฟลว์ของคุณได้อย่างราบรื่นและเชื่อถือได้เต็มที่

มีเหตุการณ์สำคัญในวงจรชีวิตสี่เหตุการณ์ที่สามารถเรียกใช้ hook ได้:

  1. PreToolUse: ทำงาน ก่อน ที่ Claude จะใช้เครื่องมือเฉพาะ (เช่น ก่อนเขียนลงในไฟล์)
  2. PostToolUse: ทำงาน หลังจาก ที่เครื่องมือถูกใช้งานสำเร็จแล้ว (เช่น หลังจากไฟล์ถูกแก้ไข)
  3. Notification: ทำงานเมื่อใดก็ตามที่ Claude ส่งการแจ้งเตือน (เช่น เมื่อต้องการข้อมูลจากผู้ใช้ หรือทำงานที่ใช้เวลานานเสร็จสิ้น)
  4. Stop: ทำงานเมื่อ Claude สร้างการตอบสนองเสร็จสิ้นและหยุดทำงาน

ด้วยการกำหนดเป้าหมายเหตุการณ์เหล่านี้ คุณสามารถสร้างระบบอัตโนมัติที่ทรงพลังซึ่งสะท้อนแนวปฏิบัติที่ดีที่สุดของการพัฒนาซอฟต์แวร์สมัยใหม่ เช่น การตรวจสอบ Continuous Integration (CI) แต่ทำงานด้วยความเร็วของการพัฒนาในเครื่อง

โครงสร้างของ Claude Code Hooks: การเจาะลึกการกำหนดค่า

ในการใช้ hooks คุณต้องกำหนดพวกมันในไฟล์การตั้งค่า Claude Code ของคุณ ทำได้โดยการเพิ่มตาราง [[hooks]] ลงในไฟล์ settings.toml ซึ่งอยู่ในไดเรกทอรี .claude/ ภายในโปรเจกต์ของคุณ การกำหนดค่า hook แต่ละรายการมีส่วนประกอบหลักบางอย่าง

# Example Hook in .claude/settings.toml

[[hooks]]
# The event that triggers the hook.
event = "PostToolUse" 

# (Optional) Conditions for the hook to run.
[hooks.matcher]
tool_name = "edit_file"
file_paths = ["*.py", "api/**/*.py"]

# The shell command to execute.
command = "ruff check --fix $CLAUDE_FILE_PATHS && black $CLAUDE_FILE_PATHS"

# (Optional) Whether to run the command in the background.
run_in_background = false 

มาเจาะลึกแต่ละส่วนกัน

ฟิลด์ event ใน Claude Code Hooks (จำเป็น)

สตริงนี้ระบุว่าเหตุการณ์ในวงจรชีวิตทั้งสี่เหตุการณ์ใดที่จะเรียกใช้ hook

hooks.matcher ใน Claude Code Hooks (ทางเลือก)

matcher คือสิ่งที่ช่วยให้คุณกำหนดได้อย่างแม่นยำว่า hook ควรทำงาน เมื่อใด หากคุณละเว้น matcher hook จะทำงานสำหรับทุกเหตุการณ์ที่ระบุ ตัวอย่างเช่น PostToolUse hook ที่ไม่มี matcher จะทำงานหลังจากเรียกใช้เครื่องมือ ทุกครั้ง

matcher มีสามฟิลด์ที่คุณสามารถใช้เพื่อกรองเหตุการณ์ได้:

ฟิลด์ command สำหรับ Claude Code Hooks (จำเป็น)

นี่คือหัวใจของ hook — คำสั่งเชลล์ที่จะถูกเรียกใช้เมื่อเงื่อนไขทริกเกอร์เป็นจริง คำสั่งนี้ทำงานด้วยสิทธิ์เดียวกับบัญชีผู้ใช้ของคุณ ดังนั้นจึงสามารถทำอะไรก็ได้ที่คุณสามารถทำได้ในเทอร์มินัลของคุณ

เพื่อให้คำสั่งมีความไดนามิก Claude Code มีชุดตัวแปรสภาพแวดล้อมที่ถูกเติมด้วยบริบทจากเหตุการณ์ที่เรียกใช้ hook

ตัวแปรสภาพแวดล้อมที่พร้อมใช้งาน:

การตั้งค่า run_in_background สำหรับ Claude Code Hooks (ทางเลือก)

นี่คือค่าบูลีน (`true` หรือ `false`) หากตั้งค่าเป็น `true` คำสั่งของ hook จะถูกดำเนินการในกระบวนการแยกต่างหาก และ Claude จะไม่รอให้เสร็จสิ้นก่อนที่จะดำเนินการต่อ เหมาะสำหรับงานที่ใช้เวลานาน เช่น ชุดทดสอบที่ครอบคลุม หรือกระบวนการสร้าง (build processes) ที่คุณไม่ต้องการให้ขัดขวางการกระทำถัดไปของ Claude ค่าเริ่มต้นคือ `false`

กรณีการใช้งานจริงและตัวอย่างสำหรับ Claude Code Hooks

พลังที่แท้จริงของ hooks จะถูกเปิดเผยเมื่อคุณนำไปใช้กับเวิร์กโฟลว์การพัฒนาในโลกแห่งความเป็นจริง นี่คือตัวอย่างการใช้งานจริงบางส่วนเพื่อให้คุณเริ่มต้น

1. การตรวจสอบรูปแบบโค้ดและการจัดรูปแบบอัตโนมัติด้วย Claude Code Hooks

บังคับใช้สไตล์โค้ดที่สอดคล้องกันทั่วทั้งโปรเจกต์ของคุณโดยอัตโนมัติ hook นี้จะรัน ruff linter และ black formatter บนไฟล์ Python ใดๆ ที่ Claude แก้ไข

ไฟล์: .claude/settings.toml

[[hooks]]
event = "PostToolUse"

[hooks.matcher]
tool_name = "edit_file"
file_paths = ["*.py"]

# Command to lint, fix, and format the edited Python files.
command = "echo 'Running auto-formatter...' && ruff check --fix $CLAUDE_FILE_PATHS && black $CLAUDE_FILE_PATHS"

2. การรันการทดสอบอัตโนมัติด้วย Claude Code Hooks

แนวปฏิบัติหลักของการพัฒนาแบบทดสอบนำ (Test-Driven Development - TDD) คือการเขียนการทดสอบแล้วจึงเขียนโค้ดเพื่อให้ผ่านการทดสอบเหล่านั้น ทำซ้ำจนกว่าทุกอย่างจะทำงาน คุณสามารถทำให้ขั้นตอน "รันการทดสอบ" เป็นอัตโนมัติด้วย hook ตัวอย่างนี้จะรัน pytest เมื่อใดก็ตามที่ไฟล์ในไดเรกทอรี src/ หรือ tests/ ถูกแก้ไข

ไฟล์: .claude/settings.toml

[[hooks]]
event = "PostToolUse"
run_in_background = true # Tests can be slow, run in background.

[hooks.matcher]
tool_name = "edit_file"
file_paths = ["src/**/*.py", "tests/**/*.py"]

# Command to run the test suite.
command = "pytest"

3. การแจ้งเตือนบนเดสก์ท็อปแบบกำหนดเองผ่าน Claude Code Hooks

หากคุณขอให้ Claude ทำงานที่ใช้เวลานาน คุณอาจจะลุกออกจากคอมพิวเตอร์ hook นี้ใช้เครื่องมือบรรทัดคำสั่งเช่น ntfy (บริการแจ้งเตือนแบบ pub-sub ที่ใช้ HTTP อย่างง่าย) เพื่อส่งการแจ้งเตือนแบบพุชไปยังโทรศัพท์หรือเดสก์ท็อปของคุณเมื่อ Claude ต้องการความสนใจจากคุณ

ไฟล์: .claude/settings.toml

[[hooks]]
event = "Notification"

# Sends the notification content to a public ntfy.sh topic.
# You can host your own for privacy.
command = 'ntfy publish my-claude-alerts "$CLAUDE_NOTIFICATION"'

4. การตรวจสอบความถูกต้องก่อนคอมมิตโดยใช้ Claude Code Hooks

เช่นเดียวกับ Git hooks คุณสามารถใช้ Claude Code Hooks เพื่อรับประกันคุณภาพ ก่อน ที่จะมีการคอมมิต ตัวอย่างนี้จะรันสคริปต์ที่กำหนดเองเพื่อตรวจสอบคีย์ API หรือดำเนินการตรวจสอบความถูกต้องอื่นๆ ก่อนที่ Claude จะได้รับอนุญาตให้ใช้เครื่องมือ git_commit

ไฟล์: .claude/settings.toml

[[hooks]]
event = "PreToolUse"

[hooks.matcher]
tool_name = "git_commit"

# Command to run a pre-commit check script.
# The script should exit with a non-zero code to halt the commit.
command = "sh ./.claude/pre-commit-checks.sh"

การตั้งค่าและการดีบั๊ก Claude Code Hooks ของคุณ

การเริ่มต้นใช้งาน hooks นั้นตรงไปตรงมา แต่การตรวจสอบและการดีบั๊กเป็นกุญแจสำคัญในการทำให้แน่ใจว่าพวกมันทำงานได้ตามที่คาดไว้

  1. สร้างการกำหนดค่าของคุณ: ตรวจสอบให้แน่ใจว่าคุณมีไฟล์ .claude/settings.toml อยู่ในไดเรกทอรีรูทของโปรเจกต์ของคุณ เพิ่มการกำหนดค่า [[hooks]] ของคุณที่นั่น
  2. ตรวจสอบการกำหนดค่า: หลังจากบันทึกไฟล์ settings.toml ของคุณ ให้รันคำสั่ง /hooks ภายในอินเทอร์เฟซเทอร์มินัลของ Claude Code คำสั่งพิเศษนี้จะแสดงการกำหนดค่า hook ที่โหลดอยู่ในปัจจุบัน ทำให้คุณสามารถดูได้ทันทีว่า Claude ได้แยกวิเคราะห์อย่างถูกต้องหรือไม่
  3. ตรวจสอบข้อผิดพลาด:

บทสรุป: พลังของ Claude Code Hooks

Claude Code Hooks ยกระดับเครื่องมือนี้จากผู้ช่วยเขียนโค้ดที่มีความสามารถสูงให้กลายเป็นพันธมิตรการพัฒนาที่บูรณาการอย่างสมบูรณ์และทำงานแบบกำหนดได้ (deterministic) ด้วยการกำหนดกฎง่ายๆ แต่ทรงพลัง คุณสามารถทำให้ส่วนที่น่าเบื่อแต่สำคัญของเวิร์กโฟลว์ของคุณเป็นอัตโนมัติ ทำให้คุณมีอิสระในการมุ่งเน้นไปที่แง่มุมที่ซับซ้อนและสร้างสรรค์ของวิศวกรรมซอฟต์แวร์ ไม่ว่าจะเป็นการบังคับใช้คุณภาพโค้ด การทำให้วงจร TDD ของคุณง่ายขึ้น หรือการรวมเข้ากับบริการของบุคคลที่สาม hooks ก็มอบเฟรมเวิร์กที่แข็งแกร่งซึ่งจำเป็นในการปรับแต่ง Claude Code ให้ตรงกับความต้องการเฉพาะของคุณ

เมื่อคุณคุ้นเคยกับความสามารถของ Claude Code มากขึ้น ให้เริ่มต้นเล็กๆ ด้วย hook การจัดรูปแบบง่ายๆ แล้วจึงสำรวจระบบอัตโนมัติที่ซับซ้อนมากขึ้น คุณจะพบว่าฟีเจอร์นี้จำเป็นอย่างยิ่งสำหรับการสร้างสภาพแวดล้อมการพัฒนาที่คาดเดาได้ มีประสิทธิภาพ และเป็นส่วนตัวอย่างแท้จริงด้วย AI

💡
ต้องการเครื่องมือทดสอบ API ที่ยอดเยี่ยมที่สร้าง เอกสารประกอบ API ที่สวยงาม ใช่ไหม?

ลองใช้ Apidog MCP Server ที่ช่วยให้คุณสร้างโค้ดที่แม่นยำโดยการอ่านจากข้อกำหนด API ของคุณ!
ปุ่ม

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API