Zatwierdzanie

Zatwierdzanie próśb o uprawnienia Claude Code (i Codexa) z telefonu

Najczęstszy powód, dla którego agent przestaje robić postępy, to prośba o uprawnienie, której nikt nie zauważył. Są trzy sposoby, by odpowiedzieć na nią z kieszeni: własne powiadomienia push Claude Code, samodzielnie zbudowany hook z ntfy albo aplikacja ze skrzynką. Oto jak każdy z nich działa z Claude Code, co się zmienia w przypadku Codexa i innych agentów oraz ile każdy kosztuje Cię pod względem bezpieczeństwa.

Zatwierdzanie próśb o uprawnienia Claude Code (i Codexa) z telefonu

Krótka odpowiedź

W planie Pro, Max, Team lub Enterprise uruchom Remote Control i w /config włącz Push when actions required. Aplikacja Claude będzie Cię wtedy powiadamiać, a na prośbę odpowiadasz w aplikacji. Jako darmową alternatywę na własnym serwerze możesz użyć hooków open source, takich jak claude-remote-approver, które wysyłają każde PermissionRequest do ntfy z przyciskami Approve/Deny. Codex ma ten sam hook PermissionRequest. Aplikacje takie jak Maude pokazują prośby od kilku agentów w jednej skrzynce, z powiadomieniami push z przyciskami Zezwól/Odmów.

Gdy Claude Code chce uruchomić polecenie albo edytować plik, który nie został wcześniej zatwierdzony, zatrzymuje się i pyta. Jeśli jesteś przy terminalu, zajmuje to sekundę. Jeśli nie, sesja czeka, a to może oznaczać godzinę czekania na jedno naciśnięcie klawisza. Każda konfiguracja zdalnego zatwierdzania przenosi prośbę na Twój telefon, a Twoją odpowiedź z powrotem do agenta. Różnią się tym, jak prośba jest przechwytywana, którędy wędruje i kto może na nią odpowiedzieć.

Jak działa zdalne zatwierdzanie

Są dwa mechanizmy i każde narzędzie korzysta z jednego z nich.

  • Własny protokół zdalny agenta. Remote Control w Claude Code przekazuje prawdziwe okno uprawnień do aplikacji Claude. Remote Control w Antigravity i app-server w Codexie działają tak samo. Nic pośrodku niczego nie rozstrzyga: odpowiadasz na prośbę samego agenta.
  • Hooki. Claude Code uruchamia skonfigurowany przez Ciebie program w określonych momentach. Hook PermissionRequest odpala się, gdy ma się pojawić okno uprawnień, i może odpowiedzieć za Ciebie, wypisując decyzję taką jak {"behavior": "allow"} lub "deny". Hook PreToolUse odpala się przed każdym wywołaniem narzędzia i może zwrócić allow, deny, ask lub defer. Hook, który wysyła push i czeka na Twoje dotknięcie, to sposób działania każdego samodzielnie zbudowanego narzędzia do zatwierdzania z telefonu. Szczegóły są w dokumentacji hooków.

Natywne push w Claude Code

Własna droga Anthropic prowadzi przez Remote Control:

  1. Uruchom sesję przez claude remote-control (tryb serwera) lub claude --remote-control albo wpisz /remote-control w działającej sesji.
  2. Zaloguj się do aplikacji Claude na telefonie tym samym kontem i zezwól na powiadomienia.
  3. W terminalu uruchom /config i włącz Push when actions required, co obejmuje prośby o uprawnienia i pytania. Push when Claude decides obejmuje proaktywne aktualizacje, takie jak „testy zakończone”.

Dokumentacja wspomina o kilku rzeczach, na które trafisz:

  • Plany i uwierzytelnianie. Remote Control jest dostępny w Pro, Max, Team i Enterprise, a klucze API nie są obsługiwane. W Team i Enterprise musi go włączyć właściciel (Owner).
  • Prośby nie wygasają. Prośby o uprawnienia i pytania pozostają otwarte, dopóki na nie nie odpowiesz.
  • Push wstrzymuje się, gdy jesteś przy terminalu. Claude Code nie wysyła push, gdy piszesz w podłączonym terminalu lub ma on fokus. CLAUDE_CLIENT_PRESENCE_FILE rozszerza to na każdą sytuację, w której jesteś przy maszynie.
  • Proces musi działać. Proces claude musi cały czas działać, więc na serwerze uruchom go w tmux.
  • Niektóre tryby są niedostępne z aplikacji. Według dokumentacji mobilnej w aplikacji nie wybierzesz Bypass permissions ani, w sesji Remote Control, trybu Auto.

Jeśli masz plan Claude i używasz tylko Claude Code, zacznij od tego. Jest darmowe w ramach planu i utrzymywane przez Anthropic.

Zrób to sam z hookami ntfy

ntfy to usługa push open source. Publikujesz w temacie zwykłym żądaniem HTTP, a aplikacja ntfy na telefonie to wyświetla. Kilka projektów open source łączy ją z hookiem PermissionRequest. Hook publikuje oczekujące wywołanie narzędzia w Twoim temacie z przyciskami akcji, czeka na Twoje dotknięcie w drugim temacie i zwraca decyzję do Claude Code. Oddajmy autorom, co im się należy:

ProjektHookGdy nie odpowieszUwagi
claude-remote-approver (yuuichieguchi)PermissionRequestPo 120 s (300 s dla przeglądu planów) wraca do prośby w terminalunpm install -g claude-remote-approver; generuje losowy 128-bitowy temat; Approve / Always Approve / Deny
claude-push (coa00)PermissionRequestPo 90 s (konfigurowalne) wraca do terminalaSkrypt instalacyjny w powłoce; Allow / Deny
claude-code-phone-notifications (ssarnecki)PermissionRequest, PreToolUse, StopCzeka około 9 minut, potem wraca do terminalaCzeka 30 s przed wysłaniem push, na wypadek gdyby ktoś był przy biurku; wysyła też pytania AskUserQuestion (bez przycisków)
hookline (tsyche)PreToolUse dla Claude; PermissionRequest dla CodexaDomyślnie 15 minut, z dłuższym oknem na spóźnione odpowiedziObsługuje też Codexa, Groka i OpenCode; wspiera własną instancję ntfy z danymi logowania

Wszystkie cztery mają licencję MIT. Limity czasu to ich udokumentowane wartości domyślne. Jeśli chcesz tylko dostać sygnał, bez zdalnego odpowiadania, wystarczy hook Notification w Claude Code. Matcher permission_prompt odpala się, gdy pojawia się okno:

{
  "hooks": {
    "Notification": [
      {
        "matcher": "permission_prompt",
        "hooks": [
          { "type": "command",
            "command": "curl -s -d 'Claude Code is waiting for approval' https://ntfy.sh/your-long-random-topic" }
        ]
      }
    ]
  }
}

Umieść to w ~/.claude/settings.json na maszynie, na której działa Claude Code. Żeby odpowiedzieć, nadal musisz dotrzeć do terminala. Powyższe projekty dodają ścieżkę odpowiedzi.

Skrzynka w Maude

Maude stosuje pierwsze podejście. Jego demon na Twoim serwerze rozmawia z własnym protokołem każdego agenta, więc prośba o uprawnienie trafia do aplikacji jako prawdziwa prośba, a nie jako domysł hooka. Prośby ze wszystkich sesji na wszystkich serwerach trafiają do jednej skrzynki, obok błędów i ukończonej pracy. Możesz odpowiedzieć tam w treści albo prosto z powiadomienia push z przyciskami Zezwól i Odmów. Prośba czeka, aż odpowiesz; sesja nie wygasa i nie idzie dalej bez Ciebie. Działa to dla Claude Code, Codexa, OpenCode i Grok Build. Wyjątkiem jest Antigravity: agy bez interfejsu nie potrafi się zatrzymać przed uruchomieniem narzędzia, więc Maude pokazuje odrzuconą akcję po fakcie i ponawia ją, jeśli na nią zezwolisz. Maude to płatna aplikacja, a każdy agent wymaga własnego konta. Nie jest jedyną aplikacją ze skrzynką i push: ma je m.in. Happier.

Codex i inne agenty

  • Codex też ma hooki, domyślnie włączone. Hook PermissionRequest może odpowiedzieć "behavior": "allow" lub "deny", a PreToolUse może odmówić. Znajdują się w ~/.codex/hooks.json lub w sekcji [hooks] w config.toml. Z tego korzysta hookline w przypadku Codexa. Starsze ustawienie notify w Codexie uruchamia program po zakończeniu tury. Według opisów firm trzecich nie odpala się przy prośbach o zatwierdzenie, więc do zatwierdzania używaj hooków. Oficjalną drogę Codexa przez aplikację na telefon i jej ograniczenia na Linuksie opisuje Codex CLI na VPS-ie.
  • Antigravity odpowiada na prośby z panelu Remote Control, gdy uruchamiasz go interaktywnie lub jako demona. agy bez interfejsu odmawia zamiast pytać. Zobacz Antigravity CLI na serwerze.
  • OpenCode i Grok Build obsługuje hookline przez plugin i hooki albo aplikacje wieloagentowe.

Bezpieczeństwo zdalnego zatwierdzania

Zatwierdzenie z telefonu jest tak mocne, jak najsłabsze ogniwo między prośbą a Twoim dotknięciem.

  • W ntfy.sh temat jest hasłem. Dokumentacja ntfy mówi to wprost: bez rejestracji każdy, kto zna nazwę tematu, może go czytać i w nim publikować. Na publicznym serwerze odgadnięty temat oznacza, że ktoś inny może zatwierdzać polecenia Twojego agenta. Używaj długiego, losowego tematu albo własnej instancji ntfy z uwierzytelnianiem.
  • Czytaj polecenie, nie tytuł. Push na ekranie blokady pokazuje skrót. rm -rf w długiej linii Bash łatwo przeoczyć na 6-calowym ekranie. Używaj „zawsze zezwalaj” dla narzędzi tylko do odczytu, a nie dla Bash(*).
  • Znaj swoje zachowanie awaryjne. Opisane hooki po upływie czasu wracają do prośby w terminalu, więc prośba bez odpowiedzi blokuje, a nie zatwierdza automatycznie. Pisząc własny hook, stosuj tę samą zasadę. Dokumentacja Claude Code ostrzega, że hook PreToolUse, który przekroczy limit czasu, nie blokuje wywołania narzędzia — przechodzi ono normalną ścieżką uprawnień — więc nie traktuj zawieszonego hooka jak bramki.
  • Zabezpiecz kanał. Ruch związany z zatwierdzaniem zdradza, co robi Twój agent. Remote Control od Anthropic przechodzi przez serwery Anthropic, a przekaźnik Maude widzi wyłącznie ruch szyfrowany end-to-end. Przy hooku sam wybierasz, dokąd trafia. Ustawienie Require trusted devices od Anthropic ogranicza, które urządzenia mogą korzystać z Remote Control.
  • Zatwierdzanie to siatka bezpieczeństwa, a nie sandbox. Uruchamianie agenta jako użytkownik inny niż root na maszynie, którą da się postawić od nowa, ma większe znaczenie niż jakikolwiek interfejs zatwierdzania. Zobacz bezpieczne uruchamianie agentów z pełnymi uprawnieniami.

Odpowiadaj z Maude

Jeśli Twoje agenty działają na serwerze i chcesz jednego miejsca, by odpowiadać im wszystkim, wypróbuj Maude z Claude Code lub Codexem. Dodaj serwer z aplikacji, zaloguj się własnym planem, a prośby o uprawnienia przyjdą jako powiadomienia push z Zezwól i Odmów. Skrzynka zbiera wszystko, co na Ciebie czeka.

Najczęściej zadawane pytania

Czy Claude Code może wysyłać powiadomienia push?
Tak, przez Remote Control. Połącz sesję z aplikacją Claude, a potem włącz Push when actions required (i opcjonalnie Push when Claude decides) w /config. Wymaga to planu Pro, Max, Team lub Enterprise; logowanie kluczem API nie jest obsługiwane.
Czy mogę zezwolić lub odmówić z ekranu blokady?
Z hookami opartymi na ntfy tak: dołączają do powiadomienia przyciski akcji Approve/Deny. Dokumentacja Anthropic opisuje push dla próśb o uprawnienia, ale nie przyciski odpowiedzi w samym powiadomieniu, więc licz się z odpowiadaniem w aplikacji Claude. Powiadomienia o uprawnieniach w Maude mają akcje Zezwól i Odmów.
Co się stanie, jeśli nie odpowiem?
W samym Claude Code prośby o uprawnienia pozostają otwarte do odpowiedzi, więc sesja po prostu czeka. Samodzielnie budowane hooki ntfy po skonfigurowanym czasie wygasają i wracają do zwykłej prośby w terminalu. Sprawdź, czy każdy hook, który piszesz, w razie problemu blokuje: hook PreToolUse, który przekroczy limit czasu, nie blokuje wywołania narzędzia.
Czy to działa z Codexem?
Tak. Codex obsługuje hook PermissionRequest, który może zezwolić lub odmówić, a projekty takie jak hookline używają go, by kierować zatwierdzenia Codexa do ntfy. Według relacji firm trzecich ustawienie notify w Codexie obejmuje tylko zakończone tury, więc do zatwierdzania używaj hooków.
Czy zatwierdzanie poleceń z telefonu jest bezpieczne?
Jest tak bezpieczne, jak kanał i Twoja uwaga. Używaj tematu ntfy, którego nie da się odgadnąć, lub tematu z uwierzytelnianiem, czytaj całe polecenie przed zatwierdzeniem, unikaj ogólnych reguł „zawsze zezwalaj” dla poleceń powłoki i uruchamiaj agenta jako użytkownik inny niż root na maszynie, którą da się postawić od nowa.

Co się zmieniło

  • — Pierwsza publikacja. Działanie Remote Control i hooków sprawdzone w dokumentacji Anthropic i OpenAI; szczegóły repozytoriów i wartości domyślne z README każdego projektu z tego dnia.

Nie przegap już żadnej prośby o uprawnienia

Zezwól lub odmów prosto z powiadomienia, dla każdego agenta na każdym serwerze. iOS i Android.

Download Maude on the App Store Get Maude on Google Play