Persetujuan
Menyetujui permintaan izin Claude Code (dan Codex) dari ponsel
Alasan paling umum sebuah agen berhenti bekerja adalah permintaan izin yang tidak dilihat siapa pun. Ada tiga cara menjawabnya dari saku: notifikasi push bawaan Claude Code, hook ntfy buatan sendiri, atau aplikasi dengan kotak masuk. Berikut cara kerja masing-masing untuk Claude Code, apa yang berubah untuk Codex dan agen lain, dan apa konsekuensi masing-masing bagi keamanan.
Jawaban singkat
Dengan paket Pro, Max, Team, atau Enterprise, jalankan Remote Control lalu di /config aktifkan Push when actions required. Aplikasi Claude kemudian mengirim notifikasi, dan Anda menjawab permintaannya di aplikasi. Untuk alternatif gratis yang di-host sendiri, hook open-source seperti claude-remote-approver mengirim setiap PermissionRequest ke ntfy dengan tombol Approve/Deny. Codex punya hook PermissionRequest yang sama. Aplikasi seperti Maude menampilkan permintaan dari beberapa agen dalam satu kotak masuk, dengan notifikasi push yang membawa Izinkan/Tolak.
Saat Claude Code ingin menjalankan perintah atau mengedit file yang belum Anda setujui sebelumnya, ia berhenti dan bertanya. Kalau Anda di depan terminal, itu cuma sedetik. Kalau tidak, sesinya menunggu, dan itu bisa berarti satu jam menunggu satu tombol ditekan. Setiap setup persetujuan jarak jauh membawa permintaan ke ponsel Anda dan jawaban Anda kembali ke agen. Bedanya ada pada cara permintaan dicegat, ke mana ia lewat, dan siapa yang bisa menjawabnya.
Cara kerja persetujuan jarak jauh
Ada dua mekanisme, dan setiap tool memakai salah satunya.
- Protokol jarak jauh milik agen itu sendiri. Remote Control Claude Code meneruskan dialog izin yang asli ke aplikasi Claude. Remote Control milik Antigravity dan app-server Codex bekerja dengan cara yang sama. Tidak ada pihak di tengah yang memutuskan apa pun: Anda menjawab prompt milik agen itu sendiri.
- Hook. Claude Code menjalankan program yang Anda konfigurasi pada titik-titik tertentu. Hook
PermissionRequestberjalan ketika dialog izin akan muncul, dan bisa menjawab atas nama Anda dengan mencetak keputusan seperti{"behavior": "allow"}atau"deny". HookPreToolUseberjalan sebelum setiap tool call dan bisa mengembalikanallow,deny,ask, ataudefer. Hook yang mengirim push lalu menunggu ketukan Anda — begitulah cara kerja setiap tool persetujuan ponsel buatan sendiri. Detailnya ada di referensi hook.
Push bawaan Claude Code
Jalur resmi Anthropic lewat Remote Control:
- Mulai sesi dengan
claude remote-control(mode server) atauclaude --remote-control, atau ketik/remote-controldi sesi yang sedang berjalan. - Masuk ke aplikasi Claude di ponsel dengan akun yang sama, dan izinkan notifikasi.
- Di terminal, jalankan
/configdan aktifkan Push when actions required, yang mencakup permintaan izin dan pertanyaan. Push when Claude decides mencakup kabar proaktif seperti "tes selesai".
Dokumentasinya mencatat beberapa hal yang akan Anda temui:
- Paket dan autentikasi. Remote Control tersedia di Pro, Max, Team, dan Enterprise, dan kunci API tidak didukung. Di Team dan Enterprise, seorang Owner harus mengaktifkannya.
- Permintaan tidak kedaluwarsa. Permintaan izin dan pertanyaan tetap terbuka sampai Anda menjawabnya.
- Push dijeda saat Anda di terminal. Claude Code tidak mengirim push saat Anda sedang mengetik di atau fokus pada terminal yang terhubung.
CLAUDE_CLIENT_PRESENCE_FILEmemperluasnya ke kapan pun Anda berada di depan mesin. - Prosesnya harus tetap hidup. Proses
claudeharus terus berjalan, jadi di server, jalankan di dalam tmux. - Beberapa mode tidak bisa dipilih dari aplikasi. Menurut dokumentasi mobile, Anda tidak bisa memilih Bypass permissions dari aplikasi, maupun Auto untuk sesi Remote Control.
Jika Anda memakai paket Claude dan hanya menggunakan Claude Code, mulailah dari sini. Gratis dengan paket Anda dan dikelola oleh Anthropic.
Buat sendiri dengan hook ntfy
ntfy adalah layanan push open-source. Anda memublikasikan ke sebuah topic dengan request HTTP biasa, dan aplikasi ntfy di ponsel Anda menampilkannya. Beberapa proyek open-source memasangkannya dengan hook PermissionRequest. Hook-nya mengirim tool call yang tertunda ke topic Anda dengan tombol aksi, menunggu ketukan Anda di topic kedua, lalu mencetak keputusannya kembali ke Claude Code. Kredit untuk yang berhak:
| Proyek | Hook | Jika Anda tidak menjawab | Catatan |
|---|---|---|---|
| claude-remote-approver (yuuichieguchi) | PermissionRequest | Kembali ke prompt terminal setelah 120 s (300 s untuk review plan) | npm install -g claude-remote-approver; membuat topic acak 128-bit; Approve / Always Approve / Deny |
| claude-push (coa00) | PermissionRequest | Kembali ke terminal setelah 90 s (bisa diatur) | Skrip instalasi shell; Allow / Deny |
| claude-code-phone-notifications (ssarnecki) | PermissionRequest, PreToolUse, Stop | Menunggu sekitar 9 menit, lalu kembali ke terminal | Menunggu 30 s sebelum mengirim push, siapa tahu Anda ada di meja; juga mengirim prompt AskUserQuestion (tanpa tombol) |
| hookline (tsyche) | PreToolUse untuk Claude; PermissionRequest untuk Codex | Default 15 menit, dengan jendela lebih panjang untuk balasan yang terlambat | Juga mendukung Codex, Grok, dan OpenCode; mendukung ntfy yang di-host sendiri dengan kredensial |
Keempatnya berlisensi MIT. Timeout di atas adalah default yang terdokumentasi. Jika yang Anda butuhkan hanya pemberitahuan, tanpa menjawab dari jauh, hook Notification milik Claude Code sudah cukup. Matcher permission_prompt berjalan ketika dialog muncul:
{
"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" }
]
}
]
}
}
Taruh itu di ~/.claude/settings.json pada mesin yang menjalankan Claude Code. Anda tetap harus ke terminal untuk menjawab. Proyek-proyek di atas menambahkan jalur untuk menjawab.
Kotak masuk Maude
Maude memakai pendekatan pertama. Daemon-nya di server Anda berbicara dengan protokol masing-masing agen, sehingga permintaan izin sampai ke aplikasi sebagai permintaan asli, bukan tebakan dari hook. Permintaan dari setiap sesi di setiap server masuk ke satu kotak masuk, di samping error dan pekerjaan yang sudah selesai. Anda bisa menjawab langsung di sana, atau langsung dari notifikasi push yang membawa Izinkan dan Tolak. Permintaan menunggu sampai Anda menjawab; sesinya tidak kedaluwarsa lalu jalan terus tanpa Anda. Ini berlaku untuk Claude Code, Codex, OpenCode, dan Grok Build. Antigravity pengecualiannya: agy headless tidak bisa berhenti sebelum sebuah tool berjalan, jadi Maude menampilkan aksi yang ditolak setelahnya dan mencobanya ulang jika Anda mengizinkan. Maude adalah aplikasi berbayar, dan setiap agen butuh akunnya sendiri. Maude bukan satu-satunya aplikasi dengan kotak masuk dan push: Happier, di antara yang lain, punya keduanya.
Codex dan agen lain
- Codex juga punya hook, aktif secara default. Hook
PermissionRequestbisa menjawab dengan"behavior": "allow"atau"deny", danPreToolUsebisa menolak. Hook-nya ada di~/.codex/hooks.jsonatau[hooks]diconfig.toml. Itulah yang dipakai hookline untuk Codex. PengaturannotifyCodex yang lebih lama menjalankan program saat sebuah giliran selesai. Tulisan pihak ketiga melaporkan bahwa pengaturan ini tidak berjalan untuk permintaan persetujuan, jadi pakai hook untuk persetujuan. Untuk jalur aplikasi ponsel resmi Codex dan batasannya di Linux, lihat Codex CLI di VPS. - Antigravity menjawab permintaan dari dashboard Remote Control-nya saat Anda menjalankannya secara interaktif atau sebagai daemon.
agyheadless menolak alih-alih bertanya. Lihat Antigravity CLI di server. - OpenCode dan Grok Build didukung lewat plugin dan hook hookline, atau lewat aplikasi multi-agen.
Keamanan persetujuan jarak jauh
Persetujuan dari ponsel hanya sekuat mata rantai terlemah antara permintaan dan ketukan Anda.
- Di ntfy.sh, topic adalah kata sandinya. Dokumentasi ntfy menyatakannya terang-terangan: tanpa pendaftaran, siapa pun yang tahu nama topic bisa membacanya dan memublikasikan ke sana. Di server publik, topic yang tertebak berarti orang lain bisa menyetujui perintah agen Anda. Pakai topic acak yang panjang, atau host ntfy sendiri dengan autentikasi.
- Baca perintahnya, bukan judulnya. Push di layar kunci menampilkan ringkasan.
rm -rfdi dalam baris Bash yang panjang gampang terlewat di layar 6 inci. Pakai "always allow" untuk tool yang hanya membaca, bukan untukBash(*). - Ketahui cadangannya. Hook buatan sendiri di atas kembali ke prompt terminal saat timeout, jadi permintaan yang tidak dijawab akan memblokir alih-alih otomatis disetujui. Kalau menulis hook sendiri, pakai aturan yang sama. Dokumentasi Claude Code memperingatkan bahwa hook
PreToolUseyang timeout tidak memblokir tool call, yang lanjut lewat alur izin normal, jadi jangan andalkan hook yang macet sebagai penjaga. - Kunci salurannya. Lalu lintas persetujuan mengungkap apa yang sedang dikerjakan agen Anda. Remote Control Anthropic melewati server Anthropic, dan relay Maude hanya melihat lalu lintas yang terenkripsi end-to-end. Dengan hook, Anda yang memilih ke mana perginya. Pengaturan Require trusted devices dari Anthropic membatasi perangkat mana yang bisa memakai Remote Control.
- Persetujuan adalah jaring pengaman, bukan sandbox. Menjalankan agen sebagai user non-root di mesin yang bisa Anda bangun ulang lebih penting daripada UI persetujuan apa pun. Lihat menjalankan agen dengan izin penuh secara aman.
Jawab dari Maude
Jika agen Anda berjalan di server dan Anda ingin satu tempat untuk menjawab semuanya, coba Maude dengan Claude Code atau Codex. Tambahkan server dari aplikasi, masuk dengan paket Anda sendiri, dan permintaan izin datang sebagai notifikasi push dengan Izinkan dan Tolak. Kotak masuk mengumpulkan semua yang sedang menunggu Anda.
Pertanyaan yang sering diajukan
Bisakah Claude Code mengirim notifikasi push?
/config. Butuh paket Pro, Max, Team, atau Enterprise; login dengan kunci API tidak didukung.Bisakah saya Allow atau Deny dari layar kunci?
Apa yang terjadi jika saya tidak menjawab?
PreToolUse yang timeout tidak memblokir tool call.Apakah ini berfungsi untuk Codex?
PermissionRequest yang bisa allow atau deny, dan proyek seperti hookline memakainya untuk meneruskan persetujuan Codex ke ntfy. Menurut laporan pihak ketiga, pengaturan notify Codex hanya mencakup giliran yang selesai, jadi pakai hook untuk persetujuan.Apakah aman menyetujui perintah dari ponsel?
Apa yang berubah
- — Pertama kali diterbitkan. Perilaku Remote Control dan hook dicek terhadap dokumentasi Anthropic dan OpenAI; detail repo dan nilai default diambil dari README setiap proyek pada tanggal ini.