📖 Nội dung bài học
Phụ đềBật/Tắt c
Tóm tắt
Hooks trong Claude Code cho phép bạn chặn và kiểm soát các lệnh gọi tool trước hoặc sau khi chúng thực thi. Điều này cho phép bạn kiểm soát chi tiết những gì Claude có thể và không thể làm trong môi trường phát triển của bạn.
Xây dựng Hook
Tạo một hook bao gồm bốn bước chính:

- Quyết định hook PreToolUse hoặc PostToolUse - Hook PreToolUse có thể ngăn chặn việc thực thi lệnh gọi tool, trong khi hook PostToolUse chạy sau khi tool đã được sử dụng.
- Xác định loại lệnh gọi tool bạn muốn theo dõi - Bạn cần chỉ định chính xác những tool nào sẽ kích hoạt hook của bạn.
- Viết một lệnh sẽ nhận lệnh gọi tool - Lệnh này nhận dữ liệu JSON về lệnh gọi tool được đề xuất qua standard input.
- Nếu cần, lệnh nên cung cấp phản hồi cho Claude - Mã thoát của lệnh sẽ cho Claude biết liệu có cho phép hay chặn hoạt động đó hay không.
Các Tool có sẵn
Claude Code cung cấp một số tool tích hợp sẵn mà bạn có thể giám sát bằng hooks:

Để xem chính xác những tool nào có sẵn trong thiết lập hiện tại của bạn, bạn có thể hỏi trực tiếp Claude để lấy danh sách. Điều này đặc biệt hữu ích vì các tool có sẵn có thể thay đổi khi bạn thêm các MCP server tùy chỉnh.
Cấu trúc dữ liệu lệnh gọi Tool
Khi lệnh hook của bạn thực thi, Claude sẽ gửi dữ liệu JSON qua standard input chứa thông tin chi tiết về lệnh gọi tool được đề xuất:

{
"session_id": "2d6a1e4d-6...",
"transcript_path": "/Users/sg/...",
"hook_event_name": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "/code/queries/.env"
}
}
Lệnh của bạn đọc JSON này từ standard input, phân tích cú pháp, sau đó quyết định có cho phép hay chặn hoạt động dựa trên tên tool và các tham số đầu vào.
Mã thoát và Luồng điều khiển
Lệnh hook của bạn giao tiếp trở lại Claude thông qua mã thoát:

- Mã thoát 0 - Mọi thứ đều ổn, cho phép lệnh gọi tool tiếp tục.
- Mã thoát 2 - Chặn lệnh gọi tool (chỉ áp dụng cho hook PreToolUse).
Khi bạn thoát với mã 2 trong hook PreToolUse, bất kỳ thông báo lỗi nào bạn ghi vào standard error sẽ được gửi đến Claude dưới dạng phản hồi, giải thích lý do tại sao hoạt động bị chặn.
Trường hợp sử dụng ví dụ
Một trường hợp sử dụng phổ biến là ngăn Claude đọc các tệp nhạy cảm như tệp .env. Vì cả hai tool Read và Grep đều có thể truy cập nội dung tệp, bạn nên giám sát cả hai loại tool và kiểm tra xem chúng có đang cố gắng truy cập các đường dẫn tệp bị hạn chế hay không.
Cách tiếp cận này cho phép bạn kiểm soát hoàn toàn quyền truy cập hệ thống tệp của Claude đồng thời cung cấp phản hồi rõ ràng về lý do tại sao một số hoạt động bị hạn chế.
Tải xuống
🔁 Bài học liên quan
- Bài tiếp: Implementing a hook
- Bài trước: Introducing hooks
- Cùng section: Adding context · Making changes · Course satisfaction survey
- Thuộc lộ trình: Path C
- Docs tham khảo: Glossary · Skills atlas · By use-case
📚 Nguồn & ghi nhận
- Bài học gốc Anthropic Academy: https://anthropic.skilljar.com/claude-code-in-action/312002
- © 2025 Anthropic. Chỉ dùng cho mục đích giáo dục, fair-use.
- Crawl: — · Chuẩn hoá: 2026-05-01