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.

Autor: Aslan, zespół Pet Island · Zaktualizowano 26 paź 2026 · 4 min czytania

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:

~/.claude/settings.jsonKopiuj
{
"preferredNotifChannel": "terminal_bell"
}

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 on do ~/.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

  • Notification uruchamia 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) i idle_prompt (Claude skończył odpowiadać około 60 sekund temu, a ty od tego czasu nic nie wpisałeś).
  • Stop uruchamia 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ł:

%USERPROFILE%\.claude\settings.jsonKopiuj
{
"hooks": {
"Notification": [
{
"matcher": "permission_prompt",
"hooks": [
{ "type": "command", "shell": "powershell",
"command": "[Console]::Beep(1320, 150); [Console]::Beep(1320, 150)" }
]
}
],
"Stop": [
{
"hooks": [
{ "type": "command", "shell": "powershell",
"command": "[Console]::Beep(660, 300)" }
]
}
]
}
}

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:

~/.claude/settings.jsonKopiuj
{
"hooks": {
"Notification": [
{
"matcher": "permission_prompt",
"hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Glass.aiff" }]
}
],
"Stop": [
{
"hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Pop.aiff" }]
}
]
}
}

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, title i notification_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 sam preferredNotifChannel, gdy sesja zaczyna potrzebować danych wejściowych, kończy się lub zawodzi, i uruchamia hook Notification z typem agent_needs_input lub agent_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.

CZYTAJ DALEJ

Odpowiadaj każdemu agentowi z górnej części ekranu.

Windows i Mac · 7 dni za darmo, potem jednorazowo 8,99 USD · 1 USD z każdej sprzedaży idzie na karmę dla bezdomnych zwierząt

Wypróbuj Pet Island za darmo