claude-code-notifier
jak to działa poradniki faq
◐Polski
English العربية Deutsch Español Français עברית Italiano 日本語 한국어 Nederlands Polski Português (Brasil) Русский Türkçe Tiếng Việt 简体中文 繁體中文
Zacznij
Wszystkie poradniki

Powiadomienia push Claude Code z ntfy (zrób to sam)

Zaktualizowano 31 października 2026 · 6 min czytania
na tej stronie 01Krok 1: wybierz topic i go zasubskrybuj 02Krok 2: skrypt hooka (Mac i Linux) 03Krok 3: podepnij to w settings.json 04Windows (PowerShell) 05Prywatność 06Gdzie pasuje Claude Code Notifier 07FAQ

Żeby dostawać powiadomienia push z Claude Code przez ntfy, zainstaluj aplikację ntfy na telefonie, zasubskrybuj topic o trudnej do odgadnięcia nazwie i dodaj w Claude Code hook, który uruchamia curl -d "message" https://ntfy.sh/your-topic. Hook Notification da ci znać, gdy Claude potrzebuje uprawnienia albo czeka na ciebie, a hook Stop – w chwili, gdy kończy się tura. To nic nie kosztuje, zajmuje jakieś dziesięć minut i działa na Macu, Windows i Linux.

01Krok 1: wybierz topic i go zasubskrybuj

ntfy nie wymaga rejestracji. Topic powstaje w momencie, gdy ktoś pierwszy raz coś do niego opublikuje albo go zasubskrybuje, a każdy, kto zna nazwę, może go czytać. Dokumentacja ntfy mówi wprost, że topic to w praktyce hasło, więc niech będzie długi i losowy, np. claude-7f3k9q2xw4mz. Nazwa może zawierać litery, cyfry, podkreślenia i myślniki, maksymalnie 64 znaki.

Zainstaluj aplikację ntfy (App Store, Google Play albo F-Droid), stuknij + i zasubskrybuj swój topic na ntfy.sh.

Sprawdź z terminala, czy działa:

curl -H "Title: Test" -d "Hello from my computer" https://ntfy.sh/claude-7f3k9q2xw4mz

Telefon powinien zawibrować w ciągu sekundy, dwóch. Na Windows curl.exe jest wbudowany w Windows 10 i 11 i przyjmuje tę samą linię.

02Krok 2: skrypt hooka (Mac i Linux)

Claude Code przekazuje każdemu hookowi obiekt JSON na standardowe wejście. Oba eventy mają wspólne pola, takie jak cwd i hook_event_name. Notification dodaje message i notification_type, a Stop dodaje last_assistant_message, czyli treść ostatniej odpowiedzi Claude. Ten skrypt zamienia jedno i drugie w czytelny push. Potrzebuje jq (brew install jq albo apt install jq na Debianie i Ubuntu).

Zapisz go jako ~/.claude/ntfy-notify.sh i uruchom chmod +x ~/.claude/ntfy-notify.sh:

#!/bin/sh
TOPIC_URL="https://ntfy.sh/claude-7f3k9q2xw4mz"

input=$(cat)
event=$(printf '%s' "$input" | jq -r '.hook_event_name')
project=$(basename "$(printf '%s' "$input" | jq -r '.cwd')")

if [ "$event" = "Stop" ]; then
  title="Claude finished: $project"
  body=$(printf '%s' "$input" | jq -r '(.last_assistant_message // "Done") | .[0:300]')
  priority=3
else
  title="Claude needs you: $project"
  body=$(printf '%s' "$input" | jq -r '.message // "Needs your attention"')
  priority=4
fi

curl -s -H "Title: $title" -H "Priority: $priority" -H "Tags: robot" \
  -d "$body" "$TOPIC_URL" > /dev/null
exit 0

Priorytet ma zakres od 1 (min) do 5 (urgent). Tags dodaje emoji do powiadomienia; robot pokazuje buźkę robota.

03Krok 3: podepnij to w settings.json

Dodaj hooki do ~/.claude/settings.json. Jeśli plik ma już obiekt hooks, dopisz te eventy do niego, zamiast go zastępować.

{
  "hooks": {
    "Notification": [
      {
        "matcher": "permission_prompt",
        "hooks": [
          { "type": "command", "command": "~/.claude/ntfy-notify.sh" }
        ]
      }
    ],
    "Stop": [
      {
        "hooks": [
          { "type": "command", "command": "~/.claude/ntfy-notify.sh", "async": true }
        ]
      }
    ]
  }
}

"async": true sprawia, że hook Stop wysyła w tle, więc wolna sieć nigdy nie spowolni Claude. Uruchom nową sesję Claude Code, bo hooki ładują się przy starcie sesji.

Stop czy idle_prompt?

Stop odpala się w chwili, gdy Claude skończy, nawet jeśli siedzisz przy klawiaturze. Jeśli to za dużo, usuń blok Stop i zamiast tego użyj matchera permission_prompt|idle_prompt. Według dokumentacji Anthropic idle_prompt odpala się ok. 60 sekund po tym, jak Claude skończy, i tylko jeśli od tego czasu nic nie wpisałeś, a permission_prompt – gdy prośba o uprawnienie czeka ok. sześciu sekund bez naciśnięcia klawisza. Dostajesz więc za darmo zgrubny filtr „tylko gdy mnie nie ma”. Wszystkie pola i timingi opisują poradnik o Notification hook i poradnik o Stop hook.

04Windows (PowerShell)

Na Windows zapisz to jako %USERPROFILE%\.claude\ntfy-notify.ps1. Nie trzeba nic doinstalowywać:

$in = [Console]::In.ReadToEnd() | ConvertFrom-Json
$project = Split-Path $in.cwd -Leaf

if ($in.hook_event_name -eq 'Stop') {
  $title = "Claude finished: $project"
  $body = [string]$in.last_assistant_message
  if ($body.Length -gt 300) { $body = $body.Substring(0, 300) }
  $priority = '3'
} else {
  $title = "Claude needs you: $project"
  $body = [string]$in.message
  $priority = '4'
}

Invoke-RestMethod -Method Post -Uri 'https://ntfy.sh/claude-7f3k9q2xw4mz' `
  -Headers @{ Title = $title; Priority = $priority } `
  -Body ([Text.Encoding]::UTF8.GetBytes($body)) | Out-Null

Potem użyj tego wpisu hooka zamiast powyższych linii command:

{
  "type": "command",
  "shell": "powershell",
  "command": "powershell -NoProfile -ExecutionPolicy Bypass -File \"$HOME\\.claude\\ntfy-notify.ps1\""
}

Jeśli odpalasz Claude Code w WSL, użyj skryptu dla Maca i Linux; z punktu widzenia hooka WSL to po prostu Linux.

05Prywatność

Cała treść pusha przechodzi przez serwer ntfy, a na ntfy.sh może ją przeczytać każdy, kto zna nazwę topicu. Powyższa wiadomość Stop zawiera początek odpowiedzi Claude, w której mogą być kod albo nazwy plików. Trzy sposoby, żeby to uszczelnić:

  1. Wysyłaj mniej. Zastąp treść Stop stałym tekstem, np. "Done", a w tytule zostaw tylko nazwę projektu.
  2. Użyj tokena dostępu. ntfy przyjmuje -H "Authorization: Bearer tk_..." przy każdej publikacji. Na własnym serwerze ustaw auth-default-access: "deny-all", utwórz użytkownika przez ntfy user add i token przez ntfy token add.
  3. Postaw własny serwer. ntfy można hostować samemu. Żeby powiadomienia docierały natychmiast do aplikacji na iPhone, dokumentacja ntfy zaleca ustawienie upstream-base-url: "https://ntfy.sh" – wtedy do ntfy.sh trafia tylko ID wiadomości i hash topicu, żeby obudzić telefon, a aplikacja pobiera wiadomość z twojego serwera.

Jeśli Claude Code działa na zdalnym serwerze, ten sam hook zadziała tam bez zmian, więc ntfy świetnie nadaje się do powiadomień przez SSH.

06Gdzie pasuje Claude Code Notifier

Jeśli chodzi o jednokierunkowe alerty, powyższa konfiguracja w zupełności wystarczy i nie będziemy cię od niej odwodzić. Kończy się jednak na samym powiadomieniu. Gdy push mówi, że Claude potrzebuje uprawnienia, sesja i tak czeka, aż wrócisz do klawiatury.

ntfy obsługuje przyciski akcji wysyłające żądanie HTTP, więc ścieżkę odpowiedzi możesz zbudować sam: hook PermissionRequest, który publikuje prośbę, czeka na odpowiedź na drugim topicu i zwraca decyzję. Niektóre projekty open source robią dokładnie to (zobacz porównanie).

Claude Code Notifier daje ci to w gotowym pakiecie. Po sparowaniu telefonu możesz zezwolić jednorazowo, zezwolić na całą sesję albo odmówić uprawnienia, wybrać odpowiedź, gdy Claude zadaje pytanie, i wysłać kolejne polecenie, gdy Claude skończy – wszystko z telefonu. Sprawdza też, czy jesteś przy komputerze: jeśli pisałeś w ciągu ostatnich 30 sekund, terminal pyta jak zwykle i nic nie czeka na telefon. Jeśli cię nie ma, terminal czeka na twoją odpowiedź do ustawionego limitu i przestaje czekać, gdy tylko dotkniesz klawiatury. ccn działa na Macu, Windows i Linux; zajrzyj na stronę ccn i do cennika aplikacji mobilnych.

07FAQ

Czy ntfy jest darmowe dla powiadomień z Claude Code?

Publikowanie i subskrybowanie na ntfy.sh nie wymaga konta, a serwer jest otwarty dla wszystkich. ntfy ma też płatny plan i można go hostować samemu. Aktualne limity sprawdź na stronie ntfy.

Dlaczego mój hook ntfy się nie odpala?

Po edycji settings.json uruchom nową sesję Claude Code, bo hooki ładują się przy starcie. Potem odpal ręcznie testową linię curl i przepuść przykładowy JSON przez skrypt, np. echo '{"hook_event_name":"Stop","cwd":"/tmp/x"}' | ~/.claude/ntfy-notify.sh. Resztę omawia checklista rozwiązywania problemów.

Czy mogę odpowiedzieć Claude Code z powiadomienia ntfy?

Nie przy zwykłej publikacji. Przyciski akcji HTTP w ntfy mogą wysłać żądanie, ale potrzebujesz hooka, który poczeka na odpowiedź i zamieni ją na decyzję zrozumiałą dla Claude Code.

Czy dostanę push dla każdego typu powiadomienia?

Tylko dla matcherów, które podasz. Pomiń matcher we wpisie Notification, żeby dostawać wszystkie typy, łącznie z oknami uwierzytelniania i MCP.

Claude Code Notifier Dostawaj push na telefon, gdy Claude Code skończy pracę albo czegoś od ciebie potrzebuje, a potem zatwierdzaj, odrzucaj lub odpowiadaj prosto stamtąd. Narzędzie wiersza poleceń ccn jest darmowe na Maca, Windows i Linux.
Pobierz na iOS Pobierz na Androida Zainstaluj ccn

Powiązane poradniki

  • Wszystkie sposoby na powiadomienia z Claude Code – porównanieWbudowane alerty, własne hooki, ntfy i webhooki czatów, Remote Control od Anthropic oraz aplikacje do powiadomień – co każde z nich potrafi, a czego nie.
  • Wysyłaj powiadomienia z Claude Code na Telegram, Slack lub DiscordJeden skrypt hooka, który wysyła alerty z Claude Code do bota na Telegram, incoming webhooka Slack albo webhooka Discord, na Macu, Windows i Linux.
  • Notification hook w Claude Code: kiedy się uruchamia i jak go używaćKiedy uruchamia się Notification hook w Claude Code, co oznaczają permission_prompt i idle_prompt, jakie dane dostaje i dlaczego czeka przed uruchomieniem.
  • Stop hook w Claude Code: uruchom coś, gdy Claude skończyJak działa Stop hook w Claude Code, jakie dane dostaje, jak uruchomić komendę, gdy Claude skończy, i jak bezpiecznie sprawić, żeby Claude pracował dalej.
claude-code-notifier

Claude Code Notifier jest niezależną aplikacją podmiotu trzeciego. Nie jest powiązana z Anthropic, PBC, ani przez nią zatwierdzona lub sponsorowana. „Claude” i „Claude Code” są znakami towarowymi Anthropic, PBC.

aplikacje Aplikacja na iOS Aplikacja na Androida ccn dla macOS, Windows i Linuksa Wszystkie poradniki
informacje prawne Polityka prywatności Regulamin Inne języki © 2026 touchtap. Wszelkie prawa zastrzeżone. TouchTap Ltd jest zarejestrowana w Anglii i Walii, numer spółki 13942589.