Zatwierdzanie akcji Claude Code z telefonu jest dość bezpieczne, jeśli konfiguracja jest wąska: odpowiadać mogą tylko sparowane przez ciebie telefony, telefon odpowiada wyłącznie na prompty, które Claude Code i tak by ci pokazał, a twoje reguły deny obowiązują niezależnie od tego, co powie telefon. Prawdziwe ryzyka są ludzkie i praktyczne: zatwierdzenie polecenia, którego nie przeczytałeś na małym ekranie, ktoś inny z twoim odblokowanym telefonem w ręku oraz szczegóły projektu przechodzące przez serwis pośredniczący i widoczne na ekranie blokady. Dobrze zrobione narzędzie do zdalnego zatwierdzania ogranicza pierwszą grupę; drugą ogarniasz kilkoma ustawieniami.
01Jak działa zdalne zatwierdzanie
Claude Code ma zdarzenie hooka o nazwie PermissionRequest. Uruchamia się, gdy Claude Code ma zapytać cię o zgodę na użycie narzędzia. Hook może odpowiedzieć decyzją, allow albo deny, a Claude Code użyje jej zamiast czekać na twoją odpowiedź w terminalu. Narzędzia do zdalnego zatwierdzania korzystają z tego hooka: hook wysyła prośbę na telefon, czeka i zwraca twoją odpowiedź. Poradnik o PermissionRequest pokazuje JSON.
Dla bezpieczeństwa liczą się trzy cechy tego rozwiązania. Wszystkie wynikają z dokumentacji hooków Anthropic:
- Uruchamia się tylko wtedy, gdy byłby prompt. Jeśli tryb uprawnień albo reguły allow już przepuszczają akcję, prośby nie ma. Zdalne zatwierdzanie nie da Claude więcej uprawnień, niż miałbyś przy klawiaturze.
- Reguły deny nadal wygrywają. Hook zwracający
allownie omija reguł deny z twoich ustawień. Jeśli blokujeszRead(./.env), stuknięcie w telefon nie pozwoli Claude go odczytać. - Hook działa jako ty. Hooki typu command działają z pełnymi uprawnieniami twojego użytkownika. Program zainstalowany jako hook może czytać i zmieniać wszystko, do czego ma dostęp twoje konto. Dlatego wybór narzędzia jest częścią twojego bezpieczeństwa, nie tylko sam telefon.
02Ryzyka i co każde z nich ogranicza
Odpowiada ktoś inny
Najgorszy scenariusz to akcja zatwierdzona przez osobę albo urządzenie, którego nie planowałeś. Co to ogranicza:
- Parowanie. Telefon może odpowiadać tylko za komputer, z którym został sparowany. W Claude Code Notifier parowanie odbywa się przez kod QR albo 6-cyfrowy kod ważny 24 godziny, a każdy komputer może mieć maksymalnie trzy telefony.
- Odwoływanie.
ccn deviceswyświetla telefony sparowane z komputerem, accn devices revoke <name>usuwa wybrany.ccn forgetusuwa komputer i jego parowania z serwera. - Blokada telefonu. Każdy, kto trzyma twój odblokowany telefon, może odpowiedzieć. Traktuj telefon jak klucz do sesji Claude Code na komputerze i używaj kodu albo blokady biometrycznej.
Zatwierdzasz coś, czego nie przeczytałeś
Na telefonie długie polecenie shella łatwo przelecieć wzrokiem. Pomaga kilka nawyków:
- Przeczytaj całe polecenie, zanim stukniesz allow. Jeśli nie jest oczywiście w porządku, odrzuć je i zajrzyj później do terminala.
- Przy wszystkim, co zmienia stan poza projektem, np.
git push, deployach czy instalacji pakietów, wybieraj zezwól raz zamiast zezwól na całą sesję. - Ryzykowne komendy objmij regułami
ask, a sekrety regułamidenyw ustawieniach. Wtedy o niebezpiecznych przypadkach decydują reguły, które napisałeś na spokojnie, a nie szybkie tapnięcie w kolejce. Składnię znajdziesz w przewodniku po trybach uprawnień.
Siedzisz akurat przy klawiaturze
Jeśli prośba trafi na telefon, gdy siedzisz przy komputerze, na ten sam prompt mogą odpowiedzieć dwie strony (ty i twój telefon). Claude Code Notifier sprawdza, czy jesteś przy komputerze: jeśli pisałeś coś w ciągu ostatnich 30 sekund, nic nie czeka na telefon i terminal pyta jak zwykle. Jeśli cię nie ma, terminal czeka na odpowiedź z telefonu maksymalnie przez ustawiony przez ciebie czas i przestaje czekać, gdy tylko dotkniesz klawiatury. Sprawdzanie bezczynności odbywa się na komputerze, a jego wynik nigdzie nie jest wysyłany.
Szczegóły projektu opuszczają twój komputer
Żeby pokazać ci prośbę, coś musi wysłać jej szczegóły na telefon. To kompromis prywatności przy każdym powiadomieniu na telefon z Claude Code, niezależnie od tego, czy robisz je sam. W przypadku Claude Code Notifier, zgodnie z Polityką prywatności:
- Nie ma kont. Każdy komputer i telefon jest identyfikowany losowym ID.
- Co może zawierać powiadomienie: nazwę projektu i ścieżkę folderu, wiadomość Claude lub zadawane przez niego pytanie, początek twojego promptu, a przy prośbie o uprawnienia nazwę narzędzia i skrót jego wejścia, np. komendę shella lub ścieżkę pliku (do 200 znaków).
- Dokąd trafia: przez serwer pośredniczący TouchTap, działający na Cloudflare, a skrócona wersja do Apple lub Google, żeby dostarczyć push. Ścieżki folderów projektów nie są wysyłane do Apple ani Google.
- Jak długo jest przechowywane: serwer usuwa powiadomienia i twoje odpowiedzi na nie w ciągu 48 godzin. Serwer pośredniczący nie zapisuje twojego adresu IP.
- W trakcie przesyłu: cała komunikacja z serwerem korzysta z TLS (HTTPS i WSS). Serwer pośredniczący przechowuje treść powiadomienia na potrzeby dostarczenia, więc to szyfrowanie w trakcie przesyłu, a nie szyfrowanie end-to-end.
- Bez sprzedaży: dane nie są sprzedawane ani używane do reklam.
Na komputerze poświadczeniem ccn jest losowy token. Domyślnie trzymany jest w Pęku kluczy macOS lub Menedżerze poświadczeń Windows, a na Linux w pliku, który może odczytać tylko twoje konto; ccn config set credential_store przełącza między systemowym magazynem kluczy a plikiem.
Jeśli pracujesz nad poufnym kodem, polityka sama radzi zastanowić się, czy powiadomienia na telefon są w ogóle odpowiednie i które ich rodzaje włączyć na danym komputerze. Możesz osobno wyłączyć notify_on_done, notify_on_permission lub notify_on_question dla każdego komputera, z wiersza poleceń albo z aplikacji na telefonie.
Ekran blokady pokazuje za dużo
Baner z komendą albo nazwą projektu klienta widzi każdy, kto zerknie na twój telefon. Zarówno iPhone, jak i Android pozwalają ukryć podgląd powiadomień do odblokowania telefonu, dla wszystkich aplikacji lub jednej. Na iPhone znajdziesz to w Ustawieniach, w sekcji Powiadomienia. Na Android jest to w ustawieniach powiadomień na ekranie blokady, zwykle jako opcja ukrywania poufnych treści.
03Zdalne zatwierdzanie na własną rękę
Możesz sam zbudować zdalne zatwierdzanie z hookiem PermissionRequest i chatbotem albo usługą push. Budujesz wtedy jednak system uwierzytelniania: tylko ty możesz odpowiadać, stara odpowiedź nie może zadziałać dla nowej prośby, a zawieszona prośba nie może zablokować sesji. Na współdzielonym, publicznym serwerze push jedyną ochroną przed obcymi jest nazwa tematu, więc traktuj ją jak hasło. Przewodniki po ntfy oraz Telegram, Slack lub Discord opisują konfiguracje tylko z powiadomieniami, które są znacznie mniej ryzykowne, bo niczego nie mogą zatwierdzić.
04Hooki z repozytoriów, których nie napisałeś
Jest jeszcze jedno ryzyko, dotyczące każdego hooka, nie tylko zatwierdzania. Hooki można zacommitować w pliku .claude/settings.json projektu. W sesji interaktywnej Claude Code wstrzymuje hooki, dopóki nie zaakceptujesz okna zaufania dla folderu, więc przeczytaj pliki .claude/ repozytorium, zanim mu zaufasz. W claude -p i uruchomieniach przez SDK nie ma takiego okna, a folder jest traktowany jako zaufany, więc zacommitowane hooki się uruchamiają. Przy skryptowych uruchomieniach na cudzym kodzie przekaż --settings '{"disableAllHooks": true}'.
05Gdzie pasuje Claude Code Notifier
Claude Code Notifier to niezależne narzędzie stworzone przez TouchTap Ltd. Nie jest tworzone, popierane ani sponsorowane przez Anthropic. Jego narzędzie wiersza poleceń, ccn, działa jako hooki Claude Code na Macu, Windows i Linux, a aplikacje na iPhone i Android pozwalają zezwolić raz, zezwolić na sesję lub odmówić. Kod źródłowy ccn jest dostępny na GitHub, więc przed instalacją możesz dokładnie sprawdzić, co będzie działać jako twój hook. Konfigurację opisuje przewodnik po zatwierdzaniu z telefonu.
06FAQ
Czy zatwierdzenie z telefonu może obejść moje reguły deny?
Nie. Claude Code sprawdza reguły deny niezależnie od tego, co zwróci hook. Zdalne zatwierdzenie może odpowiedzieć tylko na prompt, który Claude Code i tak by pokazał.
Czy Claude Code Notifier ma szyfrowanie end-to-end?
Nie. Ruch do i z serwera pośredniczącego korzysta z TLS, a serwer usuwa powiadomienia i odpowiedzi w ciągu 48 godzin. Serwer przechowuje treść na czas jej dostarczenia, a skrócona wersja trafia do Apple lub Google na potrzeby pusha.
Co jeśli zgubię telefon?
Na każdym komputerze uruchom ccn devices, żeby zobaczyć sparowane telefony, i ccn devices revoke <name>, żeby usunąć zgubiony. Do tego czasu przed odpowiedzią przez kogoś obcego chroni cię tylko blokada samego telefonu.
Czy mój kod opuszcza komputer?
ccn nie wysyła twoich plików. Powiadomienia zawierają szczegóły potrzebne do pokazania prośby: nazwę projektu i folder, wiadomość lub pytanie Claude, początek twojego promptu i krótki skrót komendy lub pliku, którego dotyczy. Wiadomość Claude może cytować kod, więc w wrażliwych projektach wyłącz rodzaje powiadomień, których nie potrzebujesz.