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

Thông báo Claude Code trên Windows (PowerShell và WSL)

Cập nhật ngày 31 tháng 10 năm 2026 · 6 phút đọc
trong trang này 01Windows native hay WSL: hook của bạn chạy ở đâu 02Thử nhanh: terminal bell 03Notification hook với PowerShell 04Toast thật sự với BurntToast 05Từ WSL: gọi Windows qua interop 06Claude Code Notifier nằm ở đâu trong bức tranh này 07Câu hỏi thường gặp

Mặc định Claude Code không hiện thông báo desktop trong Windows Terminal, PowerShell hay terminal của VS Code, nên trên Windows bạn phải tự thêm. Đặt một hook Notification (và một hook Stop cho trường hợp "đã xong") vào %USERPROFILE%\.claude\settings.json để chạy PowerShell: hộp thoại message box dùng được mà không cần cài gì, còn module BurntToast cho toast đúng nghĩa. Nếu Claude Code chạy trong WSL, hook sẽ chạy trong Linux, nên nó phải gọi powershell.exe qua interop của Windows để tới được desktop Windows.

01Windows native hay WSL: hook của bạn chạy ở đâu

Claude Code chạy native trên Windows hoặc bên trong WSL, và điều này quyết định cách hook thông báo hoạt động.

  • Windows native. Cấu hình nằm ở %USERPROFILE%\.claude\settings.json. Theo tài liệu tham khảo hooks của Anthropic, command hook mặc định chạy trong Git Bash, hoặc trong PowerShell nếu chưa cài Git Bash. Bạn có thể ép một hook chạy bằng PowerShell với "shell": "powershell"; khi đó Claude Code dùng pwsh.exe (PowerShell 7) nếu tìm thấy, nếu không thì dùng powershell.exe (Windows PowerShell 5.1).
  • WSL. Bạn cài và chạy claude trong terminal WSL, nên file cấu hình là file của Linux, ~/.claude/settings.json trong distro của bạn, và hook chạy trong shell Linux. notify-send ở đó thường không tới được desktop Windows. Thay vào đó hãy gọi chương trình Windows.

02Thử nhanh: terminal bell

Cách báo hiệu đơn giản nhất là bell. Thêm đoạn này vào file cấu hình:

{
  "preferredNotifChannel": "terminal_bell"
}

Khi đó Claude Code sẽ gửi ký tự bell khi xong việc hoặc đang chờ bạn. Trong Windows Terminal, bell làm gì được đặt theo từng profile bằng bellStyle trong settings.json của nó. "bellStyle": ["window", "taskbar"] sẽ nháy cửa sổ và nút trên taskbar thay vì phát âm thanh. Hướng dẫn terminal bell có thêm chi tiết. Cách này chỉ hữu ích khi terminal đang trong tầm mắt.

03Notification hook với PowerShell

Đây là ví dụ cho Windows từ hướng dẫn hooks của Anthropic. Không cần cài gì thêm:

{
  "hooks": {
    "Notification": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "powershell.exe -Command \"[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Claude Code needs your attention', 'Claude Code')\""
          }
        ]
      }
    ]
  }
}

Nó mở một hộp thoại chứ không phải toast ở góc màn hình, và hộp thoại có thể bị khuất sau terminal. Hãy thử lệnh trong PowerShell trước. Gõ /hooks trong Claude Code để kiểm tra hook đã được nạp.

Matcher rỗng sẽ kích hoạt với mọi loại thông báo, kể cả permission_prompt (một yêu cầu duyệt đã chờ khoảng sáu giây) và idle_prompt (Claude đã xong khoảng 60 giây trước). Hướng dẫn Notification hook giải thích về thời điểm kích hoạt.

04Toast thật sự với BurntToast

BurntToast là module PowerShell phổ biến do cộng đồng duy trì, dùng để tạo toast notification trên Windows. Cài một lần cho user của bạn:

Install-Module -Name BurntToast -Scope CurrentUser

Rồi kiểm tra xem nó chạy được không:

New-BurntToastNotification -Text 'Claude Code', 'Claude needs your attention'

Dùng nó trong hook. Phiên bản này khởi động PowerShell không kèm profile và bỏ qua execution policy cho riêng lần gọi này, nên chạy giống nhau dù từ Git Bash hay PowerShell:

{
  "hooks": {
    "Notification": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "powershell.exe -NoProfile -ExecutionPolicy Bypass -Command \"New-BurntToastNotification -Text 'Claude Code', 'Claude needs your attention'\""
          }
        ]
      }
    ],
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "powershell.exe -NoProfile -ExecutionPolicy Bypass -Command \"New-BurntToastNotification -Text 'Claude Code', 'Claude has finished'\"",
            "async": true
          }
        ]
      }
    ]
  }
}

Hook Stop chạy ở cuối mỗi lượt, nên bạn biết ngay khi task xong thay vì một phút sau; xem hướng dẫn Stop hook. "async": true chạy hook ở background để PowerShell khởi động chậm không làm Claude Code phải chờ.

Nếu toast không bao giờ xuất hiện, hãy kiểm tra Settings > System > Notifications: thông báo phải được bật và Do Not Disturb phải tắt. Toast của BurntToast thường hiện ở đó dưới tên Windows PowerShell, mục này cũng cần được cho phép thông báo.

05Từ WSL: gọi Windows qua interop

Trong WSL, hook chạy trong Linux, nhưng WSL có thể khởi động chương trình Windows bằng tên .exe của chúng. Hướng dẫn của Anthropic lưu ý rằng powershell.exe phải có trong PATH thông qua interop của Windows. Đây là mặc định, được điều khiển bởi appendWindowsPath trong mục [interop] của /etc/wsl.conf. Kiểm tra từ shell WSL:

command -v powershell.exe

Khi đã cài BurntToast phía Windows, hook trong ~/.claude/settings.json của WSL vẫn là lệnh đó:

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "powershell.exe -NoProfile -ExecutionPolicy Bypass -Command \"New-BurntToastNotification -Text 'Claude Code', 'Claude has finished'\"",
            "async": true
          }
        ]
      }
    ]
  }
}

Khởi động Windows PowerShell từ WSL có thể mất một giây hoặc hơn, thêm một lý do để dùng "async": true.

06Claude Code Notifier nằm ở đâu trong bức tranh này

Các hook trên ổn nếu bạn ngồi tại bàn. Khi bạn rời đi thì chúng vô dụng, và toast không thể duyệt lệnh cho Claude.

Claude Code Notifier là công cụ độc lập (do TouchTap làm, không phải Anthropic) xây dựng trên hooks của Claude Code. Công cụ dòng lệnh miễn phí của nó, ccn, chạy trên Mac, Windows và Linux; bản Windows đang ở giai đoạn beta. Trên Windows native, cài từ PowerShell:

irm https://claudecodenotifier.com/install.ps1 | iex

Nó thêm các mục hook vào cấu hình Claude Code của bạn, giữ nguyên phần còn lại của file và tạo bản sao lưu. Ngay lập tức nó hiện toast Windows khi Claude xong việc, cần quyền hoặc đặt câu hỏi, không cần điện thoại hay mạng. Vì nó hook vào Claude Code chứ không phải vào terminal, nó chạy giống nhau trong Windows Terminal, PowerShell và terminal của IDE.

Nếu Claude Code chạy trong WSL, hãy cài ccn bên trong WSL bằng lệnh cho Linux, vì đó là nơi Claude Code và cấu hình của nó nằm:

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

Sau đó chạy ccn test. Thông báo desktop từ trong WSL có tới được desktop Windows hay không tùy vào thiết lập WSL của bạn, nên với WSL thì điện thoại là cách đáng tin cậy. Khi đã ghép nối điện thoại, sự kiện sẽ đến dưới dạng push notification, và bạn có thể cho phép một lần, cho phép cả phiên hoặc từ chối quyền, trả lời câu hỏi của Claude và gửi chỉ dẫn tiếp theo ngay từ điện thoại. Xem ghép nối điện thoại, trang ccn và bảng giá của ứng dụng điện thoại.

Nếu cài ccn, hãy gỡ các hook toast bạn tự thêm để tránh bị thông báo trùng.

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

Vì sao hook PowerShell của tôi không hoạt động trên Windows?

Trước tiên, hãy chạy đúng lệnh đó trong PowerShell. Nếu chạy được, hãy kiểm tra xem /hooks có liệt kê hook đó không và JSON đã escape đúng chưa (mỗi dấu " bên trong đều cần dấu gạch chéo ngược). Với BurntToast, hãy chắc chắn module được cài cho đúng user đang chạy Claude Code, và chế độ Do Not Disturb đang tắt.

Claude Code trên Windows có cần Git Bash để chạy hook không?

Không. Hook chạy trong Git Bash nếu đã cài Git for Windows, còn không thì chạy trong PowerShell. Bạn cũng có thể đặt "shell": "powershell" cho từng hook riêng.

notify-send có hoạt động trong WSL không?

Thường là không hiện lên desktop Windows. Cách chắc chắn nhất là gọi powershell.exe từ hook thông qua interop của WSL, như ví dụ ở trên.

Windows Terminal có tự hiển thị thông báo của Claude Code không?

Mặc định thì không. Hãy đặt preferredNotifChannel thành terminal_bell và chọn một bellStyle làm nháy cửa sổ hoặc taskbar, hoặc dùng hook để hiện toast.

Có cách miễn phí để nhận thông báo trên Windows không?

Có. Cả các hook PowerShell ở trên lẫn thông báo desktop của ccn đều miễn phí. Chỉ có app điện thoại là cần đăng ký hoặc mua trọn đời.

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

  • 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ì.
  • 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.
  • Thông báo Claude Code trên LinuxNhận thông báo desktop trên Linux khi Claude Code chạy xong hoặc cần bạn nhập liệu: hook notify-send, âm thanh, escape sequence của terminal, hoặc ccn.
  • Thông báo Claude Code trong terminal của VS Code, Cursor và JetBrainsVì sao terminal trong IDE im lặng khi Claude Code làm xong, và cách nhận alert trong VS Code, Cursor và JetBrains bằng một thiết lập hoặc một hook.
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.