claude-code-notifier
cách hoạt động hướng dẫn câu hỏi thường gặp
◐Tiếng Việt
English العربية Deutsch Español Français עברית Italiano 日本語 한국어 Nederlands Polski Português (Brasil) Русский Türkçe Tiếng Việt 简体中文 繁體中文
Bắt đầu
Tất cả hướng dẫn

Cách nhận thông báo khi Claude Code chạy xong

Cập nhật ngày 31 tháng 10 năm 2026 · 7 phút đọc
trong trang này 01Claude Code tự làm được gì 02Hai hook bạn cần 03Cấu hình chạy được trên macOS 04Cách thiết lập tương tự trên Linux và Windows 05Kiểm tra xem đã chạy chưa 06Nhận thông báo trên điện thoại 07Câu hỏi thường gặp

Để nhận thông báo khi Claude Code chạy xong, hãy thêm một hook Stop vào ~/.claude/settings.json để chạy lệnh thông báo của hệ thống. Stop được kích hoạt ngay khi Claude trả lời xong. Với trường hợp "Claude cần bạn nhập", hãy thêm cả hook Notification: nó chạy khi một permission prompt đã chờ khoảng sáu giây, hoặc khi Claude rảnh khoảng một phút. Cả hai đều hoạt động trên Mac, Windows và Linux, và một công cụ như Claude Code Notifier có thể gửi các cảnh báo tương tự đến điện thoại của bạn.

01Claude Code tự làm được gì

Claude Code vốn đã cố gắng báo cho bạn khi có vẻ bạn không ở terminal. Mặc định, nó gửi thông báo desktop trong iTerm2, Ghostty và Kitty, có thể gửi ký tự bell trong Apple Terminal, còn ở các terminal khác thì không làm gì. iTerm2 cũng cần bật cài đặt cảnh báo thì mới hiện được.

Vì vậy, nếu bạn dùng terminal của VS Code, Warp, Windows Terminal hay phần lớn terminal trên Linux, thường bạn sẽ không nhận được gì. Bạn có thể bắt buộc dùng terminal bell bằng cài đặt preferredNotifChannel, xem trong hướng dẫn về terminal bell. Muốn có thông báo desktop thực sự ở mọi terminal, bạn cần dùng hook.

02Hai hook bạn cần

Hook là các lệnh mà Claude Code chạy tại những thời điểm cố định trong một phiên. Ở đây có hai hook quan trọng:

HookKhi nào chạyDùng cho
StopKhi Claude trả lời xong (không tính khi bạn ngắt giữa chừng)"Claude đã xong"
Notification với matcher permission_promptMột permission prompt đã chờ khoảng sáu giây mà bạn chưa gõ gì"Claude cần duyệt"
Notification với matcher idle_promptKhoảng 60 giây sau khi Claude xong, nếu từ đó bạn chưa gõ gìNhắc rằng đến lượt bạn

Stop là hook nhanh nhất. Nó chạy ngay lập tức vào cuối mỗi lượt. Các loại Notification thì chỉ chạy khi bạn không để ý: mỗi lần gõ phím sẽ hoãn chúng lại, nên bạn không bị làm phiền khi đang theo dõi. Nếu muốn có tín hiệu ngay khi Claude xin quyền, hãy dùng hook PermissionRequest, được mô tả trong hướng dẫn PermissionRequest.

Để hiểu hook hoạt động chung như thế nào (event, matcher, file settings, exit code), xem Giải thích về hook trong Claude Code.

03Cấu hình chạy được trên macOS

Mở ~/.claude/settings.json (tạo mới nếu chưa có) và thêm đoạn này. Nếu file đã có object hooks, hãy thêm Stop và Notification làm key bên trong nó thay vì ghi đè.

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude has finished\" with title \"Claude Code\"'"
          }
        ]
      }
    ],
    "Notification": [
      {
        "matcher": "permission_prompt|idle_prompt",
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'"
          }
        ]
      }
    ]
  }
}

Stop không có matcher nên chạy ở mọi lượt. Matcher của Notification giới hạn nó ở hai loại mang nghĩa "quay lại đi".

Nếu không thấy gì hiện lên, có thể macOS đang chặn Script Editor, thứ mà osascript dùng để hiển thị thông báo. Chạy osascript -e 'display notification "test"' một lần trong Terminal, rồi mở System Settings > Notifications, tìm Script Editor và bật Allow Notifications.

04Cách thiết lập tương tự trên Linux và Windows

Giữ nguyên cấu trúc JSON ở trên và chỉ thay chuỗi command.

Linux (cần có daemon thông báo desktop, nên không dùng được trên server headless):

"command": "notify-send 'Claude Code' 'Claude has finished'"

Nếu thiếu notify-send, hãy cài libnotify-bin trên Debian và Ubuntu, hoặc gói tương đương trên bản phân phối của bạn. Với SSH và server, xem thông báo qua SSH.

Windows (PowerShell). Ví dụ của chính Anthropic mở một hộp thoại thay vì toast ở góc màn hình:

"command": "powershell.exe -Command \"[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Claude has finished', 'Claude Code')\""

Hộp thoại có thể hiện phía sau cửa sổ terminal, nên hãy thử lệnh trong PowerShell trước. Trong WSL, powershell.exe phải gọi được qua interop của Windows. Hướng dẫn cho Windows có thêm các lựa chọn khác.

05Kiểm tra xem đã chạy chưa

  1. Gõ /hooks trong Claude Code. Các hook của bạn sẽ hiện dưới Stop và Notification.
  2. Hỏi Claude một câu ngắn. Khi nó trả lời xong, thông báo Stop sẽ hiện ra.
  3. Yêu cầu một việc cần cấp quyền, chuyển sang cửa sổ khác và chờ. Thông báo permission_prompt sẽ đến sau khoảng sáu giây.

Thay đổi trong settings.json thường được áp dụng ngay. Nếu hook không hiện trong /hooks, hãy kiểm tra file có phải JSON hợp lệ không (không có dấu phẩy thừa ở cuối, không có comment). Chạy Claude Code bằng claude --debug để xem từng hook đã làm gì. Xem thêm cách khắc phục trong checklist xử lý sự cố.

06Nhận thông báo trên điện thoại

Thông báo desktop chỉ có ích khi bạn ngồi ở bàn. Khi đã rời đi, bạn cần nhận thông báo ở chỗ khác. Có ba cách phổ biến:

  • Một dịch vụ push tự vận hành, như ntfy, gọi bằng curl từ chính các hook đó. Rẻ và linh hoạt. Xem hướng dẫn ntfy.
  • Webhook chat cho Telegram, Slack hoặc Discord. Phù hợp nếu bạn vốn dùng chat suốt ngày. Xem hướng dẫn webhook chat.
  • Claude Code Notifier, công cụ tự thiết lập hook cho bạn và cho phép bạn trả lời ngay từ điện thoại.

Các cách tự làm là đủ nếu bạn chỉ cần một tín hiệu báo. Hạn chế của chúng là chỉ một chiều: bạn biết Claude đang chờ, nhưng vẫn phải quay lại bàn phím để phê duyệt.

Claude Code Notifier là công cụ độc lập (không do Anthropic phát triển) gồm hai phần: ccn, công cụ dòng lệnh miễn phí cho Mac, Windows và Linux, cùng ứng dụng cho iPhone và Android. Cài đặt chỉ với một dòng lệnh:

curl -fsSL https://claudecodenotifier.com/install.sh | sh

Trên Windows, chạy irm https://claudecodenotifier.com/install.ps1 | iex trong PowerShell (hỗ trợ Windows đang ở bản beta). Các lựa chọn khác, gồm Homebrew, npx @touchtap/ccn và plugin Claude Code, có trên trang ccn.

Khi cài, công cụ thêm bảy hook, mỗi hook chạy ccn hook, giữ nguyên phần còn lại của settings.json và lưu một bản sao lưu một lần ngay cạnh file. Kể cả không có điện thoại, ccn vẫn hiện thông báo desktop trên máy khi Claude xong việc, cần cấp quyền hoặc đặt câu hỏi. Phần này miễn phí và chạy không cần mạng.

Ghép nối điện thoại bằng ccn pair và bạn có thêm:

  • push "Claude đã xong" ngay khi một lượt kết thúc;
  • yêu cầu cấp quyền mà bạn có thể cho phép một lần, cho phép trong cả phiên, hoặc từ chối;
  • trả lời câu hỏi trắc nghiệm của Claude ngay từ điện thoại;
  • ô nhập tiếp theo để gửi chỉ dẫn mới cho Claude ngay sau khi nó xong.

Nếu bạn vừa gõ phím trong 30 giây gần nhất, sẽ không có gì chờ điện thoại và terminal hỏi như bình thường. Ứng dụng cần gói đăng ký hoặc mua trọn đời; xem bảng giá. Ghép nối điện thoại hướng dẫn chi tiết cách thiết lập.

07Câu hỏi thường gặp

Vì sao Notification hook của tôi chạy chậm vậy?

Loại permission_prompt chờ đến khi prompt hiện trên màn hình khoảng sáu giây mà bạn không gõ gì, còn idle_prompt chờ khoảng 60 giây sau khi Claude xong. Độ trễ này là có chủ ý, để bạn không bị làm phiền khi đang theo dõi. Dùng hook Stop để nhận ngay thông báo "đã xong", và hook PermissionRequest để nhận ngay thông báo "cần phê duyệt".

Stop hook có chạy khi tôi nhấn Esc để ngắt Claude không?

Không. Stop không chạy khi lượt kết thúc do bạn ngắt. Nó cũng không chạy khi lượt kết thúc vì lỗi API, chẳng hạn bị rate limit. Khi đó Claude Code phát một sự kiện riêng là StopFailure, bạn có thể gắn hook theo cách tương tự.

Stop hook chạy sau mỗi tin nhắn hay chỉ khi cả task hoàn tất?

Sau mỗi lượt. Claude Code không biết khi nào task tổng thể của bạn xong, chỉ biết khi nào nó ngừng trả lời. Nếu bạn trao đổi qua lại nhiều, mỗi câu trả lời sẽ có một thông báo. Nếu thấy quá nhiều, hãy dùng thông báo idle_prompt, chỉ chạy khi bạn đã rời đi khoảng một phút.

Cách này có chạy trong terminal của VS Code hoặc JetBrains không?

Có. Hook được chạy bởi chính Claude Code, không phải bởi terminal, nên chạy được trong mọi terminal, kể cả terminal của IDE. Chỉ có thông báo tích hợp sẵn là phụ thuộc vào terminal. Xem hướng dẫn cho terminal IDE.

Tôi có thể nhận thông báo trên điện thoại mà không cần cài gì lên đó không?

Được một phần. Hook gửi đến ntfy hoặc webhook chat có thể đến ứng dụng bạn đã có sẵn. Nhưng nó chỉ báo cho bạn biết có chuyện xảy ra. Để phê duyệt hay trả lời từ điện thoại, bạn cần thứ gì đó gửi phản hồi ngược về hook, và đó chính là việc ứng dụng của Claude Code Notifier làm.

Claude Code Notifier Nhận push trên điện thoại khi Claude Code chạy xong hoặc cần bạn, rồi duyệt, từ chối hoặc trả lời ngay tại đó. Công cụ dòng lệnh ccn miễn phí trên Mac, Windows và Linux.
Tải cho iOS Tải cho Android Cài đặt ccn

Hướng dẫn liên quan

  • Stop hook của Claude Code: chạy lệnh khi Claude làm xongCách Stop hook của Claude Code hoạt động, nó nhận input gì, cách chạy lệnh khi Claude làm xong và cách để Claude tiếp tục làm việc một cách an toàn.
  • Notification hook của Claude Code: khi nào kích hoạt và cách dùngKhi nào Notification hook của Claude Code kích hoạt, permission_prompt và idle_prompt nghĩa là gì, input nó nhận được, và vì sao nó chờ một lúc mới kích hoạt.
  • Giải thích hook trong Claude Code: mọi sự kiện và công dụng của chúngHook trong Claude Code là gì, đặt ở đâu trong settings.json, matcher, input và exit code hoạt động thế nào, và mỗi sự kiện hook dùng để làm gì.
  • Thông báo tích hợp sẵn của Claude Code: terminal bell và preferredNotifChannelCách hoạt động của cảnh báo tích hợp sẵn trong Claude Code, ý nghĩa từng giá trị preferredNotifChannel, và cách thiết lập cho iTerm2, Apple Terminal, Kitty, Ghostty và tmux.
claude-code-notifier

Claude Code Notifier là ứng dụng độc lập của bên thứ ba. Ứng dụng không liên kết với, không được chứng thực hay tài trợ bởi Anthropic, PBC. "Claude" và "Claude Code" là nhãn hiệu của Anthropic, PBC.

ứng dụng Ứng dụng iOS Ứng dụng Android ccn cho macOS, Windows & Linux Tất cả hướng dẫn
pháp lý Chính sách quyền riêng tư Điều khoản dịch vụ Ngôn ngữ khác © 2026 touchtap. Bảo lưu mọi quyền. TouchTap Ltd được đăng ký tại Anh và xứ Wales, số công ty 13942589.