Powiadomienia Claude Code: usłysz, kiedy czeka, a kiedy skończył
„Sesja, która jest zablokowana, wygląda dokładnie tak samo jak sesja, która skończyła, więc najpierw otwieram niewłaściwą”. To zdanie z prośby o nową funkcję w Claude Code mówi wszystko. Oto jak dostać inny sygnał dla każdej z tych sytuacji.
KRÓTKA ODPOWIEDŹ
Claude Code już teraz wysyła powiadomienie, gdy kończy pracę lub czeka na zgodę, a ciebie nie ma przy terminalu, ale domyślnie tylko Ghostty, Kitty i iTerm2 pokazują je jako powiadomienie na pulpicie. W innych terminalach ustaw "preferredNotifChannel": "terminal_bell". Dla dwóch różnych dźwięków użyj hooka Notification z matcherem permission_prompt dla „potrzebuje cię” i hooka Stop dla „skończone”.
Co Claude Code robi sam
Gdy Claude kończy zadanie lub zatrzymuje się na monicie o zgodę, a wygląda na to, że nie ma cię przy terminalu, wywołuje zdarzenie powiadomienia. Domyślnie zamienia je w powiadomienie na pulpicie tylko w Ghostty, Kitty i iTerm2. W Windows Terminal, terminalu VS Code, Warp i pozostałych nie dzieje się nic widocznego, dopóki tego nie skonfigurujesz.
Najprostsze rozwiązanie to dzwonek terminala:
To, co robi dzwonek, zależy od terminala. W Windows Terminal ustawienie bellStyle może mieć wartość audible (domyślna), window, taskbar, all lub none. Przy all Windows Terminal odtwarza dźwięk i miga ikoną na pasku zadań.
- iTerm2: Settings → Profiles → Terminal → zaznacz „Notification Center Alerts”, a potem w Filter Alerts włącz „Send escape sequence-generated alerts”.
- tmux: dodaj
set -g allow-passthrough ondo~/.tmux.conf, w przeciwnym razie powiadomienia nigdy nie dotrą do zewnętrznego terminala. - Przez SSH: powiadomienie na pulpicie wraca na twój lokalny komputer, więc sesje zdalne też mogą cię powiadamiać.
Prośba o powiadomienia systemowe (#26581, 34 głosy) została zamknięta jako już dostępna, ze wskazaniem właśnie tego wbudowanego powiadomienia. Prośba o inny sygnał dla „czeka” i „skończone” (#94373) jest nadal otwarta. Tu wkraczają hooki.
Dwa zdarzenia: Notification i Stop
Notificationuruchamia się, gdy Claude Code wysyła powiadomienie. Jego matcher to typ powiadomienia. Interesują cię dwa:permission_prompt(Claude potrzebuje twojej zgody na użycie narzędzia, a monit czeka już około sześciu sekund) iidle_prompt(Claude skończył odpowiadać około 60 sekund temu, a ty od tego czasu nic nie wpisałeś).Stopuruchamia się za każdym razem, gdy Claude kończy odpowiadać. Nie uruchamia się, gdy przerwiesz; przy błędach API zamiast niego uruchamia sięStopFailure.
Hooki działają obok wbudowanego powiadomienia, a nie zamiast niego, więc możesz zachować oba.
Windows: dwa różne dźwięki
W systemie Windows hooki działają w Git Bash, a gdy Git Bash nie jest zainstalowany, w PowerShell. Ustawienie "shell": "powershell" eliminuje zgadywanie. Ta konfiguracja odtwarza wysoki podwójny sygnał, gdy Claude potrzebuje zgody, i niski sygnał, gdy skończył:
Console.Beep przyjmuje częstotliwość w hercach i czas trwania w milisekundach, i czeka, aż sygnał się skończy. Przewodnik po hookach Anthropic pokazuje też przykład dla Windows, który otwiera okno komunikatu za pomocą System.Windows.Forms; według ich własnej uwagi jest to okno dialogowe, a nie powiadomienie, i może otworzyć się za terminalem.
macOS i Linux
Dokumentacja Anthropic używa afplay w systemie macOS:
Dla widocznego alertu użyj osascript -e 'display notification "Claude needs you" with title "Claude Code"' w systemie macOS lub notify-send "Claude Code" "Claude needs you" w systemie Linux.
Szczegóły, które oszczędzą ci wieczór
- Stop uruchamia się często. Uruchamia się za każdym razem, gdy Claude kończy odpowiadać, a nie tylko po zakończeniu całego zadania. Jeśli to za dużo, użyj zamiast tego powiadomienia
idle_prompt. Czeka ono około minuty i uruchamia się tylko wtedy, gdy nic nie wpisałeś. - Odczytaj zdarzenie, jeśli go potrzebujesz. Dane wejściowe Notification zawierają
message,titleinotification_type, więc skrypt może pokazać faktyczną prośbę. - Agent view. Jeśli uruchamiasz sesje w tle za pomocą
claude agents, powiadamia cię przez ten sampreferredNotifChannel, gdy sesja zaczyna potrzebować danych wejściowych, kończy się lub zawodzi, i uruchamia hook Notification z typemagent_needs_inputlubagent_completed. - Stan w terminalu. Terminale obsługujące protokół stanu OSC 7501 mogą pokazywać, czy każda sesja Claude Code pracuje, czeka czy skończyła. Claude Code v2.1.295 lub nowszy zgłasza to automatycznie.
- Hook nie uruchamia się w systemie Windows? Zobacz Hooki Claude Code nie działają w systemie Windows. Prawie zawsze winna jest powłoka.
Która to sesja i jak jej odpowiedzieć
Dźwięk mówi ci, że coś się stało. Nie mówi, z którego z twoich trzech terminali pochodzi ani co Claude chce uruchomić. Pet Island daje każdej sesji Claude Code miejsce na małej wyspie u góry ekranu: pracuje, czeka na ciebie albo skończyła. Prośba o zgodę przychodzi z poleceniem lub diffem, a ty od razu na miejscu zezwalasz lub odmawiasz; pytania i plany działają tak samo. Jedno kliknięcie przenosi cię do właściwego terminala, gdy chcesz przyjrzeć się bliżej.
CZĘSTE PYTANIA
Czy Claude Code ma powiadomienia?
Tak. Gdy kończy pracę lub czeka na zgodę, a ciebie nie ma, wysyła powiadomienie. Ghostty, Kitty i iTerm2 domyślnie pokazują je jako powiadomienie na pulpicie; w innych terminalach ustaw preferredNotifChannel na "terminal_bell" lub dodaj hook Notification.
Jak dostać dźwięk, gdy Claude Code skończy?
Dodaj hook Stop, który odtwarza dźwięk, na przykład afplay w systemie macOS lub [Console]::Beep w PowerShell w systemie Windows.
Jak odróżnić „potrzebuje zgody” od „skończone”?
Użyj hooka Notification z matcherem permission_prompt dla jednego dźwięku i hooka Stop dla drugiego.
Dlaczego nie dostaję powiadomień w Windows Terminal ani w VS Code?
Claude Code domyślnie wysyła powiadomienia na pulpicie tylko w Ghostty, Kitty i iTerm2. Ustaw preferredNotifChannel na "terminal_bell" lub użyj hooka.
Czy powiadomienia działają w tmux?
Tak, po dodaniu set -g allow-passthrough on do ~/.tmux.conf.
Źródła
Każde ustawienie i zachowanie opisane na tej stronie zostało sprawdzone z tymi stronami 26 października 2026. Agenci szybko się zmieniają; jeśli coś przestało się zgadzać, obowiązuje strona oficjalna.
- Dokumentacja Claude Code: Configure your terminal (powiadomienia)
- Dokumentacja Claude Code: Hooks guide
- Dokumentacja Claude Code: Hooks reference
- Dokumentacja Claude Code: Agent view
- Zgłoszenie #26581: System notifications when Claude needs attention
- Zgłoszenie #94373: Notify differently for waiting vs finished
- Zgłoszenie #2427: Audio notification on task completion
- Microsoft Learn: ustawienia profilu Windows Terminal (bellStyle)
- Microsoft Learn: Console.Beep