Approvazioni
Approvare le richieste di permesso di Claude Code (e Codex) dal telefono
Il motivo più comune per cui un agente smette di andare avanti è una richiesta di permesso che nessuno ha visto. Ci sono tre modi per rispondere dal telefono: le notifiche push di Claude Code, un hook ntfy fai-da-te o un'app con un'inbox. Ecco come funziona ciascuno con Claude Code, cosa cambia con Codex e gli altri agenti, e quanto ti costa ciascuno in termini di sicurezza.
In breve
Con un piano Pro, Max, Team o Enterprise, avvia Remote Control e in /config attiva Push when actions required. L'app Claude ti avvisa e rispondi alla richiesta nell'app. Come alternativa gratuita e self-hosted, hook open source come claude-remote-approver inviano ogni PermissionRequest a ntfy con pulsanti Approva/Nega. Codex ha lo stesso hook PermissionRequest. App come Maude mostrano le richieste di più agenti in un'unica inbox, con notifiche push che includono Consenti/Nega.
Quando Claude Code vuole eseguire un comando o modificare un file che non hai pre-approvato, si ferma e chiede. Se sei al terminale, ci vuole un secondo. Se non ci sei, la sessione aspetta, e può significare un'ora di attesa per un solo tasto. Ogni sistema di approvazione remota porta la richiesta sul telefono e la tua risposta all'agente. Si differenziano per come viene intercettata la richiesta, dove passa e chi può rispondere.
Come funzionano le approvazioni remote
I meccanismi sono due, e ogni strumento usa uno dei due.
- Il protocollo remoto dell'agente stesso. Il Remote Control di Claude Code inoltra la vera finestra di permesso all'app Claude. Il Remote Control di Antigravity e l'app-server di Codex funzionano allo stesso modo. Niente in mezzo decide al posto tuo: rispondi alla richiesta dell'agente stesso.
- Gli hook. Claude Code esegue un programma che configuri tu in punti precisi. Un hook
PermissionRequestscatta quando sta per comparire una finestra di permesso, e può rispondere al posto tuo stampando una decisione come{"behavior": "allow"}o"deny". Un hookPreToolUsescatta prima di ogni chiamata a uno strumento e può restituireallow,deny,askodefer. Un hook che invia una push e aspetta il tuo tocco: è così che funziona ogni strumento fai-da-te di approvazione da telefono. I dettagli sono nel riferimento sugli hook.
Il push nativo di Claude Code
La strada di Anthropic passa da Remote Control:
- Avvia una sessione con
claude remote-control(modalità server) oclaude --remote-control, oppure digita/remote-controlin una sessione in corso. - Accedi all'app Claude sul telefono con lo stesso account e consenti le notifiche.
- Nel terminale, esegui
/confige attiva Push when actions required, che copre richieste di permesso e domande. Push when Claude decides copre gli aggiornamenti proattivi come «test completati».
La documentazione segnala alcune cose in cui ti imbatterai:
- Piani e autenticazione. Remote Control è disponibile su Pro, Max, Team ed Enterprise, e le chiavi API non sono supportate. Su Team ed Enterprise deve attivarlo un Owner.
- Le richieste non scadono. Richieste di permesso e domande restano aperte finché non rispondi.
- Le push si sospendono mentre sei al terminale. Claude Code salta le push mentre stai scrivendo nel terminale collegato o lo hai in primo piano.
CLAUDE_CLIENT_PRESENCE_FILEestende questo comportamento a tutto il tempo in cui sei davanti alla macchina. - Il processo deve restare vivo. Il processo
claudedeve continuare a girare, quindi su un server avvialo dentro tmux. - Alcune modalità non sono disponibili dall'app. Secondo la documentazione mobile, dall'app non puoi selezionare Bypass permissions, né Auto per una sessione Remote Control.
Se hai un piano Claude e usi solo Claude Code, parti da qui. È incluso nel tuo piano e mantenuto da Anthropic.
Fai-da-te con gli hook ntfy
ntfy è un servizio di push open source. Pubblichi su un topic con una semplice richiesta HTTP, e l'app ntfy sul telefono te lo mostra. Diversi progetti open source lo abbinano a un hook PermissionRequest. L'hook pubblica la chiamata allo strumento in sospeso sul tuo topic con pulsanti di azione, aspetta il tuo tocco su un secondo topic e restituisce la decisione a Claude Code. A ciascuno il suo merito:
| Progetto | Hook | Se non rispondi | Note |
|---|---|---|---|
| claude-remote-approver (yuuichieguchi) | PermissionRequest | Torna alla richiesta nel terminale dopo 120 s (300 s per le revisioni dei piani) | npm install -g claude-remote-approver; genera un topic casuale a 128 bit; Approve / Always Approve / Deny |
| claude-push (coa00) | PermissionRequest | Torna al terminale dopo 90 s (configurabile) | Script di installazione in shell; Allow / Deny |
| claude-code-phone-notifications (ssarnecki) | PermissionRequest, PreToolUse, Stop | Aspetta circa 9 minuti, poi torna al terminale | Aspetta 30 s prima di inviare la push nel caso tu sia alla scrivania; invia anche le domande AskUserQuestion (senza pulsanti) |
| hookline (tsyche) | PreToolUse per Claude; PermissionRequest per Codex | 15 minuti di default, con una finestra più lunga per le risposte tardive | Copre anche Codex, Grok e OpenCode; supporta un ntfy self-hosted con credenziali |
Tutti e quattro hanno licenza MIT. I timeout sono i loro valori predefiniti documentati. Se ti basta una notifica, senza rispondere da remoto, è sufficiente l'hook Notification di Claude Code. Il matcher permission_prompt scatta quando compare una finestra di permesso:
{
"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" }
]
}
]
}
}
Mettilo in ~/.claude/settings.json sulla macchina che esegue Claude Code. Per rispondere dovrai comunque raggiungere un terminale. I progetti qui sopra aggiungono la strada per la risposta.
L'inbox di Maude
Maude segue il primo approccio. Il suo daemon sul server parla con il protocollo di ciascun agente, quindi una richiesta di permesso arriva all'app come la vera richiesta, non come un'ipotesi ricostruita da un hook. Le richieste di ogni sessione su ogni server finiscono in un'unica inbox, accanto a errori e lavoro finito. Puoi rispondere in linea lì, o direttamente dalla notifica push, che ha Consenti e Nega. Una richiesta aspetta finché non rispondi; la sessione non va in timeout per proseguire senza di te. Funziona per Claude Code, Codex, OpenCode e Grok Build. Antigravity è l'eccezione: agy in headless non può fermarsi prima di eseguire uno strumento, quindi Maude mostra l'azione negata a posteriori e la riprova se la consenti. Maude è un'app a pagamento, e ogni agente ha bisogno del proprio account. Non è l'unica app con inbox e push: Happier, tra le altre, ha entrambe.
Codex e gli altri agenti
- Codex ha anch'esso degli hook, attivi di default. Un hook
PermissionRequestpuò rispondere con"behavior": "allow"o"deny", ePreToolUsepuò negare. Si trovano in~/.codex/hooks.jsono in[hooks]dentroconfig.toml. È ciò che usa hookline per Codex. La vecchia impostazionenotifydi Codex esegue un programma quando un turno finisce. Secondo alcuni resoconti di terze parti non scatta per le richieste di approvazione, quindi per le approvazioni usa gli hook. Per la strada ufficiale di Codex da telefono e i suoi limiti su Linux, vedi Codex CLI su un VPS. - Antigravity risponde alle richieste dalla dashboard di Remote Control quando lo esegui in modo interattivo o come daemon.
agyin headless nega invece di chiedere. Vedi Antigravity CLI su un server. - OpenCode e Grok Build sono coperti dal supporto per plugin e hook di hookline, oppure dalle app multi-agente.
La sicurezza delle approvazioni remote
Un'approvazione dal telefono è forte quanto l'anello più debole tra la richiesta e il tuo tocco.
- Su ntfy.sh il topic è la password. La documentazione di ntfy lo dice esplicitamente: senza registrazione, chiunque conosca il nome di un topic può leggerlo e pubblicarci. Su un server pubblico, un topic indovinato significa che qualcun altro può approvare i comandi del tuo agente. Usa un topic lungo e casuale, oppure ospita ntfy in proprio con autenticazione.
- Leggi il comando, non il titolo. Una push sulla schermata di blocco mostra un riepilogo. Un
rm -rfdentro una lunga riga Bash sfugge facilmente su uno schermo da 6 pollici. Usa «consenti sempre» per gli strumenti in sola lettura, non perBash(*). - Conosci il tuo fallback. Gli hook fai-da-te qui sopra tornano alla richiesta nel terminale quando scadono, quindi una richiesta senza risposta blocca invece di approvare in automatico. Scrivi il tuo hook con la stessa regola. La documentazione di Claude Code avverte che un hook
PreToolUsescaduto non blocca la chiamata allo strumento, che prosegue nel normale flusso dei permessi, quindi non contare su un hook bloccato come barriera. - Proteggi il canale. Il traffico delle approvazioni rivela cosa sta facendo il tuo agente. Il Remote Control di Anthropic passa dai server di Anthropic, e il relay di Maude vede solo traffico cifrato end-to-end. Con un hook scegli tu dove passa. L'impostazione Require trusted devices di Anthropic limita i dispositivi che possono usare Remote Control.
- Le approvazioni sono una rete di sicurezza, non una sandbox. Eseguire l'agente con un utente non root su una macchina che potresti ricostruire conta più di qualsiasi interfaccia di approvazione. Vedi eseguire agenti con tutti i permessi, in sicurezza.
Rispondi da Maude
Se i tuoi agenti girano su un server e vuoi un unico posto da cui rispondere a tutti, prova Maude con Claude Code o Codex. Aggiungi il server dall'app, accedi con il tuo piano e le richieste di permesso arrivano come notifiche push con Consenti e Nega. L'inbox raccoglie tutto ciò che aspetta te.
Domande frequenti
Claude Code può inviare notifiche push?
/config. Serve un piano Pro, Max, Team o Enterprise; gli accessi con chiave API non sono supportati.Posso consentire o negare dalla schermata di blocco?
Cosa succede se non rispondo?
PreToolUse scaduto non blocca la chiamata allo strumento.Funziona con Codex?
PermissionRequest che può consentire o negare, e progetti come hookline lo usano per inoltrare le approvazioni di Codex a ntfy. Secondo resoconti di terze parti l'impostazione notify di Codex copre solo i turni completati, quindi per le approvazioni usa gli hook.È sicuro approvare comandi dal telefono?
Cosa è cambiato
- — Prima pubblicazione. Comportamento di Remote Control e degli hook verificato sulla documentazione di Anthropic e OpenAI; dettagli e valori predefiniti dei repository dal README di ciascun progetto in questa data.