Thông báo của Claude Code: biết khi nào nó đang chờ và khi nào đã xong
“Một phiên đang bị chặn trông y hệt một phiên đã xong, nên tôi toàn mở nhầm phiên trước.” Câu nói đó từ một yêu cầu tính năng của Claude Code đã tóm gọn vấn đề. Dưới đây là cách nhận tín hiệu khác nhau cho từng trường hợp.
TRẢ LỜI NGẮN
Claude Code vốn đã phát thông báo khi nó xong việc hoặc chờ cấp quyền trong lúc bạn không ở trước terminal, nhưng theo mặc định chỉ Ghostty, Kitty và iTerm2 hiển thị nó dưới dạng thông báo trên màn hình. Ở các terminal khác, hãy đặt "preferredNotifChannel": "terminal_bell". Để có hai âm thanh khác nhau, hãy dùng hook Notification với matcher permission_prompt cho “cần bạn” và hook Stop cho “đã xong”.
Claude Code tự làm gì
Khi Claude hoàn thành một tác vụ hoặc tạm dừng vì lời nhắc cấp quyền, và có vẻ như bạn không ở trước terminal, nó sẽ phát ra một sự kiện thông báo. Theo mặc định, sự kiện đó chỉ được chuyển thành thông báo trên màn hình trong Ghostty, Kitty và iTerm2. Trong Windows Terminal, terminal của VS Code, Warp và các terminal khác, sẽ không có gì hiển thị trừ khi bạn thiết lập.
Cách khắc phục đơn giản nhất là chuông terminal:
Chuông sẽ làm gì là tùy terminal của bạn. Trong Windows Terminal, thiết lập bellStyle có thể là audible (mặc định), window, taskbar, all hoặc none. Với all, Windows Terminal phát âm thanh và làm nhấp nháy biểu tượng trên taskbar.
- iTerm2: Settings → Profiles → Terminal → đánh dấu “Notification Center Alerts”, sau đó Filter Alerts → bật “Send escape sequence-generated alerts”.
- tmux: thêm
set -g allow-passthrough onvào~/.tmux.conf, nếu không thông báo sẽ không bao giờ đến được terminal bên ngoài. - Qua SSH: thông báo trên màn hình được gửi ngược về máy cục bộ của bạn, nên các phiên từ xa vẫn có thể báo cho bạn.
Yêu cầu tính năng thông báo hệ thống (#26581, 34 lượt ủng hộ) đã được đóng với lý do tính năng đã có sẵn, chỉ đến đúng thông báo tích hợp này. Yêu cầu có tín hiệu khác nhau cho “đang chờ” và “đã xong” (#94373) vẫn đang mở. Đó là lúc hook phát huy tác dụng.
Hai sự kiện: Notification và Stop
Notificationkích hoạt khi Claude Code gửi thông báo. Matcher của nó là loại thông báo. Hai loại bạn cần quan tâm làpermission_prompt(Claude cần bạn phê duyệt việc dùng một công cụ và lời nhắc đã chờ khoảng sáu giây) vàidle_prompt(Claude đã trả lời xong khoảng 60 giây trước và bạn chưa gõ gì kể từ đó).Stopkích hoạt mỗi khi Claude trả lời xong. Nó không kích hoạt khi bạn ngắt ngang; lỗi API sẽ kích hoạtStopFailurethay thế.
Hook chạy song song với thông báo tích hợp chứ không thay thế nó, nên bạn có thể giữ cả hai.
Windows: hai âm thanh khác nhau
Trên Windows, hook chạy trong Git Bash, hoặc PowerShell khi Git Bash chưa được cài. Đặt "shell": "powershell" sẽ loại bỏ việc phỏng đoán. Cấu hình này phát hai tiếng bíp cao khi Claude cần cấp quyền và một tiếng bíp trầm khi nó xong việc:
Console.Beep nhận tần số tính bằng hertz và thời lượng tính bằng mili giây, và chờ đến khi tiếng bíp kết thúc. Hướng dẫn hook của Anthropic cũng có một ví dụ cho Windows mở hộp thoại thông báo bằng System.Windows.Forms; chính họ lưu ý rằng đó là một hộp thoại chứ không phải thông báo, và có thể mở ra phía sau terminal của bạn.
macOS và Linux
Tài liệu của Anthropic dùng afplay trên macOS:
Để có cảnh báo hiển thị, dùng osascript -e 'display notification "Claude needs you" with title "Claude Code"' trên macOS, hoặc notify-send "Claude Code" "Claude needs you" trên Linux.
Những chi tiết giúp bạn tiết kiệm cả một buổi tối
- Stop kích hoạt rất thường xuyên. Nó kích hoạt mỗi khi Claude trả lời xong, không chỉ khi toàn bộ tác vụ hoàn tất. Nếu như vậy quá ồn, hãy dùng thông báo
idle_promptthay thế. Nó chờ khoảng một phút và chỉ kích hoạt nếu bạn chưa gõ gì. - Đọc sự kiện nếu bạn cần. Đầu vào của Notification gồm
message,titlevànotification_type, nên script có thể hiển thị đúng yêu cầu thực tế. - Agent view. Nếu bạn chạy các phiên nền bằng
claude agents, nó sẽ báo cho bạn qua cùngpreferredNotifChannelkhi một phiên bắt đầu cần đầu vào, hoàn thành hoặc thất bại, và kích hoạt hook Notification với loạiagent_needs_inputhoặcagent_completed. - Trạng thái terminal. Các terminal hỗ trợ giao thức trạng thái OSC 7501 có thể hiển thị từng phiên Claude Code đang làm việc, đang chờ hay đã xong. Claude Code v2.1.295 trở lên tự động báo trạng thái này.
- Hook không kích hoạt trên Windows? Xem Hook của Claude Code không chạy trên Windows. Nguyên nhân hầu như luôn là shell.
Biết phiên nào, và trả lời nó
Âm thanh cho bạn biết có chuyện gì đó xảy ra. Nó không cho bạn biết chuyện đó đến từ terminal nào trong ba terminal của bạn, hay Claude muốn chạy gì. Pet Island dành cho mỗi phiên Claude Code một vị trí trên một island nhỏ ở phía trên màn hình: đang làm việc, đang chờ bạn, hoặc đã xong. Yêu cầu cấp quyền đến kèm lệnh hoặc diff, và bạn cho phép hoặc từ chối ngay tại đó; câu hỏi và kế hoạch cũng hoạt động theo cách tương tự. Một cú nhấp sẽ đưa bạn đến đúng terminal khi bạn muốn xem kỹ hơn.
Câu hỏi thường gặp
Claude Code có thông báo không?
Có. Khi nó xong việc hoặc chờ cấp quyền trong lúc bạn không ở trước terminal, nó sẽ phát thông báo. Ghostty, Kitty và iTerm2 hiển thị nó dưới dạng thông báo trên màn hình theo mặc định; ở các terminal khác, hãy đặt preferredNotifChannel thành "terminal_bell" hoặc thêm hook Notification.
Làm sao để có âm thanh khi Claude Code xong việc?
Thêm một hook Stop phát âm thanh, ví dụ afplay trên macOS hoặc [Console]::Beep trong PowerShell trên Windows.
Làm sao phân biệt “cần cấp quyền” với “đã xong”?
Dùng hook Notification với matcher permission_prompt cho một âm thanh và hook Stop cho âm thanh còn lại.
Vì sao tôi không nhận được thông báo trong Windows Terminal hoặc VS Code?
Theo mặc định, Claude Code chỉ gửi thông báo trên màn hình trong Ghostty, Kitty và iTerm2. Hãy đặt preferredNotifChannel thành "terminal_bell" hoặc dùng hook.
Thông báo có hoạt động bên trong tmux không?
Có, sau khi bạn thêm set -g allow-passthrough on vào ~/.tmux.conf.
Nguồn
Mọi thiết lập và hành vi trên trang này đã được đối chiếu với các trang sau vào 26 tháng 10 năm 2026. Agent thay đổi rất nhanh; nếu có điều gì không còn khớp, trang chính thức là chuẩn.
- Tài liệu Claude Code: Configure your terminal (thông báo)
- Tài liệu Claude Code: Hooks guide
- Tài liệu Claude Code: Hooks reference
- Tài liệu Claude Code: Agent view
- Issue #26581: System notifications when Claude needs attention
- Issue #94373: Notify differently for waiting vs finished
- Issue #2427: Audio notification on task completion
- Microsoft Learn: Thiết lập profile của Windows Terminal (bellStyle)
- Microsoft Learn: Console.Beep