Mode yang tersedia
Setiap mode membuat pertukaran yang berbeda antara kenyamanan dan pengawasan. Tabel di bawah menunjukkan apa yang dapat dilakukan Claude tanpa permintaan izin di setiap mode. Mode Manual muncul di bawah nilai konfignya,default.
Mode yang meninjau setiap tindakan dinamai Manual di CLI, di
claude --help, di ekstensi VS Code dan JetBrains, dan di aplikasi desktop. Nilai konfignya adalah default, yang digunakan oleh hooks dan integrasi SDK. CLI menerima manual sebagai alias di mana pun Anda mengetik nilainya, misalnya claude --permission-mode manual atau "defaultMode": "manual". Label Manual dan alias manual memerlukan Claude Code v2.1.200 atau lebih baru. Label aplikasi desktop tidak bergantung pada versi CLI Anda.
Penulisan ke jalur yang dilindungi tidak pernah disetujui otomatis kecuali dalam mode bypassPermissions dan dalam sesi mode plan di mana izin bypass tersedia, artinya sesi terminal interaktif yang dimulai dengan cara yang menempatkan bypassPermissions dalam siklus mode.
Mode menetapkan garis dasar. Lapisi aturan izin di atas untuk menyetujui sebelumnya atau memblokir alat tertentu. Aturan Deny memblokir di setiap mode, termasuk bypassPermissions. Aturan Deny dan ask tidak berlaku untuk EndConversation selama Claude masih memiliki setidaknya satu alat lain yang dapat dipanggilnya. Aturan Allow tidak berpengaruh dalam bypassPermissions.
Tindakan yang tidak ada mode yang disetujui otomatis
Claude Code tidak secara otomatis menyetujui hal-hal berikut di mode apa pun, termasukbypassPermissions. Setiap poin menghubungkan ke bagian yang mengatakan apa yang terjadi sebagai gantinya di setiap mode:
- Alat yang cocok dengan aturan ask eksplisit
-
Alat konektor yang organisasi Anda atur ke
ask, dalam sesi di mana pengaturan itu mencapai Claude Code -
Alat yang memerlukan interaksi pengguna: alat
AskUserQuestionbawaan dan alat MCP yang ditandairequiresUserInteraction -
Penghapusan
rmdanrmdiryang menargetkan jalur kritis, yang tidak ada aturan allow atau hookPreToolUse"allow"yang menyetujui - Penjaga pesan lintas sesi
-
Membaca di luar direktori kerja sementara
permissions.blockReadsOutsideWorkingDirectoriesaktif: perintah Bash pembaca file yang dikenali meminta bahkan dalam mode auto dan modebypassPermissions, dan begitu juga dengan retry tanpa sandbox apa pun yang memerlukan persetujuan untuk berjalan di luar sandbox. Memerlukan Claude Code v2.1.257 atau lebih baru. Perintah yang parser shell tidak dapat lacak, seperti yang mengubah direktori lebih dari sekali atau menjalankan subshell, meminta dengan cara yang sama bahkan ketika tidak menamai jalur luar apa pun. Permintaan ini tidak berlaku ketika perintah berjalan di sandbox dan sandbox memberlakukan blokir.
Pengaturan umum
Mode izin memutuskan apakah Claude meminta sebelum tindakan, dan sandbox Bash dan batas isolasi luar memutuskan apa yang dapat dijangkau tindakan setelah berjalan. Setiap baris di bawah memasangkan tujuan dengan flag atau pengaturan yang membawanya ke sana dan isolasi yang dibutuhkan, sebagai titik awal. Mode yang tersedia mencantumkan apa yang berjalan tanpa prompt di setiap mode.
Sandbox Bash dan mode auto bekerja secara independen dan menggabungkan, dengan pengecualian yang tercantum di bawah Sandbox modes. Untuk interaksi penuh, lihat Bagaimana sandboxing berhubungan dengan izin dan mode izin dan Bagaimana isolasi berhubungan dengan mode izin.
Mode mana yang dimulai sesi
Ketika Anda memulai sesi baru di terminal, Claude Code mengambil mode izin dari yang pertama dari ini yang berlaku:-
Flag
--permission-mode, atau--dangerously-skip-permissions -
permissions.defaultModedalam file pengaturan Jika Anda menetapkan"auto"di.claude/settings.jsonatau.claude/settings.local.json, nilainya tidak berlaku, dan Claude Code kemudian menggunakan default bawaan daripadadefaultModedari~/.claude/settings.json. Jika Anda menetapkan"bypassPermissions"di dua file itu, itu juga tidak berlaku, dan sesi dimulai dalam mode Manual. Nilai lainnya berlaku dari file pengaturan apa pun. - Default bawaan
auto bawaan memerlukan Claude Code v2.1.228 atau lebih baru di macOS, Linux, dan WSL, dan v2.1.233 atau lebih baru di Windows asli. Pada versi sebelumnya, default bawaan adalah Manual.
Default bawaan bergantung pada cara Anda menjalankan Claude Code. Baris pertama yang cocok dengan sesi Anda berlaku. Tabel mencakup sesi yang Anda mulai di terminal atau melalui ekstensi VS Code; untuk aplikasi desktop dan claude.ai, lihat tab Desktop dan Web dalam Alihkan mode izin.
Dalam sesi pertama Anda setelah instalasi atau upgrade, Claude Code dapat memilih mode izin awal sebelum flag fiturnya tiba. Sesi itu dapat dimulai dalam mode izin yang berbeda dari yang diberikan tabel, dan sesi berikutnya Anda cocok dengan tabel.
Ketika flag, file pengaturan, atau default bawaan memilih
auto tetapi mode auto tidak tersedia untuk sesi, Claude Code memulai sesi dalam Manual sebagai gantinya. Mode auto tidak tersedia ketika sesi tidak memenuhi persyaratan ketersediaan, seperti file pengaturan mematikannya atau model yang tidak mendukungnya, atau ketika Anthropic telah mematikannya sisi server.
Pertama kali default bawaan memulai salah satu sesi Anda dalam mode auto, Claude Code menampilkan pemberitahuan yang menghubungkan ke halaman ini:
- Di terminal, sekali, di bagian atas sesi
- Di ekstensi VS Code, sebagai kartu di layar percakapan baru yang tetap sampai Anda menutupnya
~/.claude/settings.json Anda menetapkan defaultMode selain auto dan tidak ada file pengaturan lain yang menetapkan satu, sesi Anda terus dimulai dalam mode itu. Claude Code meminta sekali, di terminal atau di ekstensi VS Code, apakah akan mengubah pengaturan ke mode auto. Jika Anda menolak, pengaturan Anda tetap seperti adanya.
Mulai dalam mode izin yang berbeda
Anda dapat menetapkan mode izin awal untuk satu sesi, atau sebagai default untuk setiap sesi di mesin, proyek, atau organisasi. Ketika lebih dari satu file pengaturan menetapkanpermissions.defaultMode, preseden pengaturan memutuskan, jadi nilai proyek atau terkelola mengalahkan ~/.claude/settings.json. Untuk mengubah mode izin sesi yang sudah berjalan, lihat Alihkan mode izin.
Contoh ini membuat setiap sesi terminal di mesin Anda dimulai dalam mode Manual, yang nilai konfignya adalah
default. Simpan di ~/.claude/settings.json:
⏸ manual mode on di bilah status.
Alihkan mode izin
Setiap antarmuka memiliki kontrol sendiri untuk beralih mode izin selama sesi dan cara sendiri untuk memilih mode izin yang dimulai sesi baru. Pilih antarmuka Anda untuk melihat kontrolnya.- CLI
- VS Code
- JetBrains
- Desktop
- Web dan mobile
Selama sesi: tekan Sebagai default: atur
Shift+Tab untuk siklus mode izin. Dari auto, tekan pertama beralih ke default, dan siklus kemudian berjalan default → acceptEdits → plan → kembali ke default. Mode opsional, dijelaskan di bawah, masuk setelah plan. Bilah status menunjukkan mode aktif sebagai ⏸ manual mode on abu-abu untuk default, atau sebagai ⏵⏵ accept edits on, ⏸ plan mode on, ⏵⏵ auto mode on, ⏵⏵ don't ask on, atau ⏵⏵ bypass permissions on.Tidak setiap mode ada dalam siklus default:auto: muncul ketika mode auto tersedia; bersiklus ke dalamnya mengganti mode izin tanpa prompt konfirmasibypassPermissions: muncul setelah Anda memulai dengan--permission-mode bypassPermissions,--dangerously-skip-permissions,--allow-dangerously-skip-permissions, ataupermissions.defaultMode: "bypassPermissions"dalam pengaturan pengguna,--settings, atau terkelola. Varian--allow-menambahkan mode izin ke siklus tanpa mengaktifkannyadontAsk: tidak pernah muncul dalam siklus; atur dengan--permission-mode dontAsk
plan, dengan bypassPermissions terlebih dahulu dan auto terakhir. Jika Anda memiliki keduanya diaktifkan, Anda akan bersiklus melalui bypassPermissions dalam perjalanan ke auto.Dari prompt izin Bash: dalam mode izin Manual dan acceptEdits, ketika mode auto tersedia, Claude Code menambahkan Ya, dan beralih ke mode auto ke prompt izin perintah Bash. Pilih untuk menyetujui perintah dan beralih sesi ke mode auto. Prompt alat PowerShell tidak menawarkan opsi. Memerlukan Claude Code v2.1.247 atau lebih baru.Claude Code tidak menambahkan opsi ke prompt yang dipaksa oleh salah satu aturan ask Anda atau oleh hook, karena mode auto masih menampilkan prompt itu, jadi beralih tidak akan menghapusnya.Saat startup: lewatkan mode izin sebagai flag.permissions.defaultMode pada cakupan yang Anda inginkan, seperti dijelaskan dalam Mulai dalam mode izin yang berbeda.Flag --permission-mode yang sama berfungsi dengan -p untuk jalankan non-interaktif.Auto-approve pengeditan file dengan mode acceptEdits
ModeacceptEdits memungkinkan Claude membuat dan mengedit file di direktori kerja Anda tanpa meminta. Bilah status menunjukkan ⏵⏵ accept edits on saat mode ini aktif.
Selain pengeditan file, mode acceptEdits auto-approve perintah Bash filesystem umum: mkdir, touch, rm, rmdir, mv, cp, dan sed. Perintah ini juga auto-approved ketika diawali dengan variabel lingkungan aman seperti LANG=C atau NO_COLOR=1, atau pembungkus proses seperti timeout, nice, atau nohup. Seperti pengeditan file, auto-approval hanya berlaku untuk jalur di dalam direktori kerja Anda atau additionalDirectories.
Setiap jalur juga melalui pemeriksaan symlink, jadi penulisan yang diselesaikan di luar cakupan itu tidak auto-approved juga. Jalur di luar cakupan itu, penulisan ke jalur yang dilindungi, penghapusan rm dan rmdir yang menargetkan jalur kritis, dan semua perintah Bash lainnya kecuali set bawaan read-only masih meminta.
Ketika alat PowerShell diaktifkan, mode acceptEdits juga auto-approve Set-Content, Add-Content, Clear-Content, dan Remove-Item pada jalur dalam cakupan, bersama dengan alias umum mereka. Aturan cakupan dan jalur yang dilindungi yang sama berlaku, dan Remove-Item mendapat pemeriksaannya sendiri. Argumen posisional yang berisi karakter kutip, seperti apostrof dalam Set-Content .\notes.txt "It's done", masih meminta bahkan pada jalur dalam cakupan, karena Claude Code tidak dapat secara statis memvalidasi argumen yang pembacaan kutip dan tidak dikutipnya berbeda. Lewatkan konten melalui parameter bernama seperti -Value untuk menghindari prompt.
Gunakan acceptEdits ketika Anda ingin meninjau perubahan di editor Anda atau melalui git diff setelahnya daripada menyetujui setiap pengeditan inline.
Tekan Shift+Tab sekali dari mode Manual untuk memasukkannya, atau mulai dengannya langsung:
Analisis sebelum Anda mengedit dengan Plan Mode
Plan Mode memberi tahu Claude untuk meneliti dan mengusulkan perubahan tanpa membuatnya. Claude membaca file, menjalankan perintah shell untuk menjelajahi, dan menulis rencana, tetapi tidak mengedit sumber Anda. Kecuali dalam sesi terminal interaktif dengan bypass permissions tersedia, pengeditan tetap diblokir sampai Anda menyetujui rencana. Apa yang terjadi pada perintah shell selama perencanaan tergantung pada sesi, dan yang pertama dari kasus-kasus ini yang cocok berlaku:- Sesi terminal interaktif dengan bypass permissions tersedia: baik pengklasifikasi maupun prompt tidak berlaku untuk perintah perencanaan. Lewati semua pemeriksaan dengan bypassPermissions mode mencakup beberapa hal yang masih meminta di sana.
- Auto mode tersedia dan pengaturan
useAutoModeDuringPlanaktif, yang merupakan default: pengklasifikasi meninjau perintah shell selain critical-path removals alih-alih meminta Anda. Perintah yang disetujui berjalan, dan yang ditolak diblokir. - Auto mode tidak tersedia, atau
useAutoModeDuringPlanmati: perintah di luar set bawaan read-only meminta persetujuan, termasuk ketika auto-allow mode sandbox diaktifkan.
Shift+Tab atau mengawali prompt tunggal dengan /plan. Anda juga dapat memulai dalam Plan Mode dari CLI:
Shift+Tab lagi untuk meninggalkan Plan Mode tanpa menyetujui rencana.
Tinjau dan setujui rencana
Ketika rencana siap, Claude menyajikannya dan menanyakan cara melanjutkan. Dari prompt itu Anda dapat memilih:- Ya, dan gunakan auto mode: setujui dan mulai dalam auto mode. Jika auto mode tidak tersedia untuk sesi Anda, misalnya karena organisasi Anda mematikannya, opsi ini berbunyi Ya, auto-accept edits. Jika Anda memulai sesi dengan bypass permissions diaktifkan, opsi berbunyi Ya, dan beralih ke BYPASS PERMISSIONS (tidak ada prompt lebih lanjut) untuk sesi ini sebagai gantinya.
- Ya, secara manual setujui pengeditan: setujui dan tinjau setiap pengeditan secara individual.
- Tidak, terus merencanakan: tetap dalam Plan Mode dan beri tahu Claude apa yang harus diubah.
Shift+Tab, atau awali prompt berikutnya dengan /plan.
Tekan Ctrl+G untuk membuka rencana yang diusulkan di editor teks default Anda dan mengeditnya langsung sebelum Claude melanjutkan. Ketika showClearContextOnPlanAccept diaktifkan, daftar mendapat opsi pertama yang menyetujui rencana dan menghapus konteks perencanaan.
Menerima rencana juga memberi sesi judul yang dihasilkan berdasarkan rencana, kecuali Anda telah menamai sesi.
Atur Plan Mode sebagai default
Untuk membuat Plan Mode default untuk sesi terminal proyek, aturdefaultMode ke plan dalam .claude/settings.json, ditempatkan seperti contoh di bawah Mulai dalam mode izin yang berbeda menunjukkan. Percakapan yang dimulai ekstensi VS Code tidak membaca pengaturan proyek untuk mode izin awal. Di sana, atur claudeCode.initialPermissionMode ke plan dalam pengaturan pengguna VS Code Anda sebagai gantinya.
Hilangkan permintaan izin dengan mode otomatis
Mode otomatis memungkinkan Claude untuk dieksekusi tanpa permintaan izin rutin. Model pengklasifikasi terpisah meninjau tindakan sebelum dijalankan, memblokir apa pun yang melampaui permintaan Anda, menargetkan infrastruktur yang tidak dikenali, atau tampak didorong oleh konten bermusuhan yang dibaca Claude. Aturan ask eksplisit masih memaksa permintaan. Dengan Claude Code v2.1.283 atau lebih baru, mode otomatis adalah mode izin awal bawaan untuk sesi terminal interaktif dan VS Code di setiap paket dan penyedia. Pada versi sebelumnya, ini adalah mode izin awal bawaan hanya pada paket Pro, Max, dan Team. Pengklasifikasi juga meninjau setiap pesan yang dikirim Claude ke agen lain denganSendMessage, baik teks biasa atau pesan tim agen terstruktur, sebelum Claude Code mengirimkannya, baik dalam mode otomatis maupun dalam mode rencana saat pengklasifikasi meninjau perintah; tinjauan pengiriman memerlukan Claude Code v2.1.222 atau lebih baru.
Secara default, pengklasifikasi tidak meninjau penghapusan rm dan rmdir yang menargetkan jalur kritis, seperti rm -rf / atau rm -rf ~. Jalur kritis mencakup apa yang terjadi pada mereka dalam setiap mode izin.
Mode otomatis juga mendorong Claude untuk terus bekerja tanpa berhenti untuk pertanyaan klarifikasi, meskipun Claude masih bertanya ketika permintaan Anda atau keterampilan secara eksplisit bergantung padanya. Untuk perilaku otonom yang lebih kuat dalam mode yang masih meminta Anda, atur gaya output Proaktif sebagai gantinya.
Mode otomatis tersedia hanya ketika akun Anda memenuhi semua persyaratan ini:
- Paket: Semua paket.
- Organisasi: pada Team dan Enterprise, mode otomatis tersedia secara default. Administrator dapat mematikannya untuk organisasi dengan menetapkan
permissions.disableAutoModeke"disable"dalam pengaturan terkelola. - Model: pada Anthropic API dan Claude Platform di AWS, Claude Opus 4.6 atau lebih baru, Sonnet 4.6 atau lebih baru, atau model Fable. Di Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, dan sesi gateway aplikasi Claude yang masuk, hanya Claude Sonnet 5 atau lebih baru, Opus 4.7 atau lebih baru, dan model Fable. Model yang lebih lama, termasuk Sonnet 4.5, Opus 4.5, Haiku, dan model claude-3, tidak didukung di penyedia mana pun.
- Penyedia: tersedia secara default pada Anthropic API, Claude Platform di AWS, Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, dan sesi gateway aplikasi Claude yang masuk.
disableAutoMode. Anthropic juga dapat mematikan mode otomatis di sisi server, atau server dapat menolak mode otomatis untuk akun Anda. Sesi yang menerima salah satu jawaban menjaga mode otomatis tetap mati sampai sesi berakhir, jadi mulai sesi baru nanti.
Pesan terpisah yang menyebutkan model dan mengatakan mode otomatis “tidak dapat menentukan keamanan” tindakan berarti permintaan pengklasifikasi gagal. Kegagalan itu biasanya bersifat sementara, tetapi di Amazon Bedrock dapat berulang sampai akun Anda dapat memanggil model yang disebutkan. Lihat referensi kesalahan untuk penyebab dan apa yang harus dilakukan.
Jika Anda menetapkan defaultMode: "auto" dalam pengaturan dan sesi terminal dimulai dalam mode Manual tanpa kesalahan, pengaturan kemungkinan berada di .claude/settings.json atau .claude/settings.local.json. auto tidak berlaku dari file tersebut. Pindahkan ke ~/.claude/settings.json. Untuk percakapan yang dimulai ekstensi VS Code, periksa daftar ekstensi sendiri dalam Beralih mode izin sebagai gantinya.
Mode otomatis di Bedrock, Agent Platform, atau Foundry
Di Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, dan sesi gateway aplikasi Claude yang masuk, mode otomatis tersedia secara default. Dengan Claude Code v2.1.283 atau lebih baru, ini juga merupakan mode izin awal bawaan untuk sesi terminal interaktif dan VS Code. Untuk memilih mode izin awal sendiri, aturpermissions.defaultMode seperti Mulai dalam mode izin yang berbeda menjelaskan, atau pilih mode izin dari indikator mode ekstensi VS Code.
Hanya Claude Sonnet 5 atau lebih baru, Opus 4.7 atau lebih baru, dan model Fable yang didukung di penyedia ini. Pada model lain apa pun, sesi dimulai dalam Manual sebagai gantinya.
Untuk mencegah pengembang menggunakan mode otomatis, atur disableAutoMode ke "disable" dalam pengaturan terkelola. Ini menghapus auto dari siklus Shift+Tab, dan sesi yang dimulai dengan --permission-mode auto dimulai dalam Manual sebagai gantinya. Sesi yang sudah berjalan dalam mode otomatis meninggalkannya ketika pengaturan mencapai sesi itu dari sumber yang diterapkan admin, dan menampilkan auto mode disabled by settings. Sebelum v2.1.251, sesi yang berjalan menjaga mode otomatis sampai berakhir.
Dalam v2.1.158 hingga v2.1.206, mode otomatis mati di penyedia ini sampai Anda menetapkan CLAUDE_CODE_ENABLE_AUTO_MODE=1, dan Claude Code mengabaikan defaultMode: "auto" di penyedia ini kecuali variabel juga ditetapkan. Variabel masih diterima untuk kompatibilitas dan tidak berpengaruh dari v2.1.207 ke depan.
Tinjauan pengklasifikasi sisi server
Dalam mode otomatis, Claude Code dapat meminta server untuk memeriksa tindakan yang urutan keputusan mengirim untuk tinjauan, sebagai bagian dari permintaan model sesi, sebagai pengganti mengirim permintaan pengklasifikasi sendiri. Sesi ini bertanya:- Koneksi langsung ke Anthropic API: dalam sesi terminal interaktif, pada setiap paket claude.ai dan pada akun yang menggunakan Claude API, saat Anthropic meluncurkannya. Memerlukan Claude Code v2.1.271 atau lebih baru pada paket Pro, Max, dan Team, dan v2.1.278 atau lebih baru pada paket Enterprise dan akun Claude API. Dari v2.1.282, sesi yang tidak mengambil bendera fitur, misalnya karena Anda mematikan telemetri, meminta server secara default dalam sesi apa pun.
- Penyedia cloud, atau gateway LLM atau proxy: di Claude Platform di AWS, Amazon Bedrock, Agent Platform Google Cloud, dan Microsoft Foundry, dan kapan pun Anda menunjuk
ANTHROPIC_BASE_URLke gateway LLM atau proxy, apa pun paket Anda. Meminta secara default memerlukan Claude Code v2.1.278 atau lebih baru. - Sesi gateway aplikasi Claude yang masuk: memerlukan Claude Code v2.1.280 atau lebih baru
- Server tidak meninjau sesi: respons selesai tanpa hasil tinjauan, atau server menjawab bahwa itu tidak meninjau sesi ini. Penyebab paling umum adalah gateway LLM atau proxy yang menghilangkan permintaan untuk tinjauan atau hasilnya, dan platform, wilayah, atau kredensial yang belum memiliki pemeriksaan sisi server. Claude Code kembali ke permintaan pengklasifikasi sendiri. Setelah fallback itu berlaku untuk sisa sesi, itu menunjukkan pemberitahuan tentang biaya permintaan pengklasifikasi pada akun di mana permintaan tersebut ditagih.
- Server tidak memberikan vonis untuk tindakan: Claude Code menolak tindakan daripada menjalankannya tanpa tinjauan. Pada koneksi apa pun, ini terjadi ketika respons berakhir sebelum hasil tinjauan tiba atau hasil tiba dalam bentuk yang tidak dapat dibaca Claude Code. Gateway LLM atau proxy yang memotong respons pendek atau menulis ulang hasilnya dapat menyebabkan salah satu. Pada koneksi langsung ke Anthropic API, itu juga terjadi ketika pemeriksaan server gagal untuk tindakan, misalnya dengan waktu habis. Server tidak mengembalikan vonis keamanan mencakup pesan penolakan, apa yang terjadi ketika penolakan berulang, dan apa yang harus dilakukan.
CLAUDE_CODE_AUTO_MODE_SERVER=0. Pada koneksi langsung ke Anthropic API, variabel memerlukan Claude Code v2.1.281 atau lebih baru. Menetapkannya ke 1 di sana mengaktifkan tinjauan server dalam sesi yang belum memilikinya, seperti sesi -p atau Agent SDK, kecuali Anda juga menetapkan CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1. Jika Anda menetapkan CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 dan membiarkan CLAUDE_CODE_AUTO_MODE_SERVER tidak ditetapkan, Claude Code juga berhenti meminta server, kecuali seperti Nonaktifkan kemampuan pra-rilis menjelaskan.
Apa yang diblokir pengklasifikasi secara default
Pengklasifikasi mempercayai direktori kerja Anda dan remote yang dikonfigurasi untuknya ketika sesi dimulai. Remote yang ditambahkan atau ditunjuk ulang selama sesi dengangit remote add atau git remote set-url tidak dipercaya, dan semuanya diperlakukan sebagai eksternal sampai Anda mengonfigurasi infrastruktur terpercaya. Sebelum v2.1.200, remote yang ditambahkan pertengahan sesi juga dipercaya.
Diblokir secara default:
- Mengunduh dan menjalankan kode, seperti
curl | bash - Mengirim data sensitif ke titik akhir eksternal
- Penerapan dan migrasi produksi
- Penghapusan massal pada penyimpanan cloud
- Memberikan izin IAM atau repo
- Memodifikasi infrastruktur bersama
- Menghancurkan file secara tidak dapat dibalikkan yang ada sebelum sesi
- Dorong paksa
- Melakukan komit atau mendorong perubahan yang akan mengirim rahasia atau data sensitif di luar repositori saat dijalankan, atau memperluas apa yang diekspos penerapan. Ini mencakup alur kerja CI atau konfigurasi penerapan yang meneruskan rahasia ke tujuan yang tidak sudah menerimanya, skrip atau langkah penyiapan yang membaca penyimpanan rahasia dan mengirim data keluar, dan perubahan konfigurasi yang memperluas apa yang dipublikasikan penerapan, seperti pengaturan registri, visibilitas, artefak, atau sourcemap. Pemeriksaan berlaku di cabang apa pun, berlaku bahkan ketika repositori bersifat publik, dan terbang ketika perubahan dilakukan komit atau didorong, terlepas dari apakah komit atau dorong itu memicu pipeline; menghapusnya memerlukan penamaan efek eksekusi, bukan hanya komit atau dorong. Sebelum v2.1.211, pemeriksaan ini dibatasi pada cabang default sebagai gantinya: dorong di sana diblokir ketika membawa konten sensitif, perubahan tersembunyi atau salah dideskripsikan relatif terhadap apa yang Anda minta, konten yang diportasi dari luar repositori, atau dirutekan di sekitar tinjauan yang Anda minta
git reset --hard,git checkout -- .,git restore .,git clean -fd,git stash drop, ataugit stash clear, yang pengklasifikasi asumsikan akan membuang perubahan yang tidak dilakukan komitgit commit --amendketika komit di HEAD tidak dibuat dalam sesi ini- Dari v2.1.198,
git commit --amendketika komit di HEAD sudah didorong. Penulisan ulang pesan saja tidak diblokir:--amend -mtanpa apa pun yang baru dipentaskan, pada komit yang dibuat Claude selama sesi ini terraform destroy,pulumi destroy,cdk destroy, atauterragrunt destroy, dan menerapkan rencana yang menghancurkan sumber daya
- Menulis ke pengelola rahasia, atau mengubah catatan DNS atau sertifikat TLS
- Menggabungkan permintaan tarik yang tidak ada manusia yang menyetujui, menyetujui permintaan tarik Claude sendiri, atau menonaktifkan pemeriksaan CI
- Memposting komentar yang dengan sendirinya adalah perintah untuk otomasi, seperti
atlantis applyatau/deployatau/mergebot - Mengalihkan, merampingkan, atau menghapus bendera fitur produksi
- Menerapkan perubahan infrastruktur ke cakupan IaC yang dilindungi, atau mengalirkan dan menghapus node kluster
- Penulisan ke kluster komputasi bersama yang melampaui sumber daya yang Anda beri nama, seperti pemilih label atau
--allyang menangkap pekerjaan pengguna lain - Membuat sumber daya Kubernetes yang berjalan di setiap node atau mencegat lalu lintas kluster, seperti DaemonSets dan webhook penerimaan
- Shell interaktif atau port-forward ke target remote sensitif
- Membuka terowongan atau shell terbalik yang membuat layanan lokal dapat diakses dari internet publik
- Mencetak kredensial atau token langsung ke transkrip atau file
- Mengakses lokasi yang tercantum sebagai lokasi data sensitif dalam lingkungan Anda, atau menyalin data keluar dari satu. Sejak v2.1.198 ini juga memblokir pengiriman data dari satu ke audiens yang dikecualikan entri
- Merutekan instalasi paket di sekitar registri paket internal Anda ke registri publik. Sejak v2.1.198, ini juga berlaku ketika Anda telah memberi tahu Claude bahwa registri internal atau cermin ada dalam percakapan, bukan hanya ketika satu tercantum dalam lingkungan Anda
- Menjalankan perintah dengan bendera yang melucuti penjaga keamanan, seperti
--insecure - Meluncurkan loop agen otonom yang berjalan tanpa persetujuan manusia atau sandbox, seperti yang dimulai dengan
--dangerously-skip-permissionsatau--no-sandbox. Sejak v2.1.198 ini juga mencakup menjalankan agen pihak ketiga atau harness eval dengan isolasi dan persetujuan per-tindakan dinonaktifkan, seperti runner yang dimulai dengan--yes-always - Tindakan browser Claude di Chrome yang dapat mengirim konten halaman, cookie, atau kredensial off-origin
- Menghapus file di
/tmp,$TMPDIR, atau direktori goresan atau cache bersama lainnya dengan wildcard, glob, atau filter usia daripada dengan jalur bernama spesifik - Termasuk detail sensitif dalam konten yang dikirim, diunggah, dipublikasikan, atau ditulis ke orang lain atau sistem bersama, ketika pesan Anda sendiri tidak mengotorisasi detail tersebut untuk penerima itu. Badan PR dan masalah, pesan komit, dan komentar dihitung sebagai jenis konten keluar ini ketika repositori berada di luar batas kepercayaan atau publik, termasuk repositori publik organisasi Anda sendiri; jalur file internal, nama kode, data respons API langsung seperti email atau pengidentifikasi akun, dan pengidentifikasi infrastruktur dihitung sebagai detail sensitif. Cakupan PR, masalah, dan pesan komit memerlukan Claude Code v2.1.200 atau lebih baru. Data pribadi langsung dari respons API dalam badan PR atau masalah, seperti alamat email, pengidentifikasi akun atau organisasi, atau metrik penggunaan, memerlukan Anda untuk menyebutkan detail tersebut dan penerima terlepas dari visibilitas atau batas kepercayaan repositori. Pemeriksaan itu memerlukan Claude Code v2.1.203 atau lebih baru
- Mengirim keystroke ke pane tmux Claude Code sendiri untuk mendorong antarmukanya sendiri, yang pengklasifikasi perlakukan sebagai Claude mengubah izinnya sendiri atau pengawasan
- Mengomentari, menghapus, atau memaksa lulus tes atau pernyataan yang menjaga perilaku keamanan, seperti auth, kontrol akses, validasi input, atau sandboxing
- Menghapus atau merobohkan sumber daya stateful yang tidak dibuat Claude dalam sesi, ketika tidak ada aturan penghapusan yang lebih spesifik berlaku dan Anda tidak menyebutkan sumber daya itu
- Menunjuk ulang URL dasar API, titik akhir proxy, penerima webhook, atau cermin registri ke host pihak ketiga yang tidak sesuai dengan tugas, termasuk dalam file contoh seperti
.env.example - Mengubah ke mana dorong pergi dengan
git remote set-urlataugit remote add, kecuali Anda menyebutkan remote baru - Mendorong rahasia atau data pribadi atau terpercaya ke repositori yang diketahui publik, atau mendorong materi rahasia di sana yang bukan bagian dari pekerjaan repositori itu sendiri. Materi pelajaran repositori dotfiles sendiri adalah satu-satunya pengecualian untuk data pribadi atau terpercaya, dan konten dari repositori pribadi mencapai permukaan publik apa pun diblokir dengan cara yang sama; kedua penyempurnaan memerlukan Claude Code v2.1.203 atau lebih baru. Sebelum v2.1.203, data pribadi dikelompokkan dengan materi rahasia dan diblokir hanya ketika bukan bagian dari pekerjaan repositori itu sendiri. Ketika visibilitas repositori tidak ditetapkan, pengklasifikasi tidak memblokir itu saja; itu menilai konten terhadap aturan lain sebagai gantinya
- Membuka permintaan tarik terhadap repositori atau organisasi yang berbeda, bercabang dengan
gh repo fork, atau mendorong ke repositori pihak ketiga, kecuali Anda menyebutkan target eksternal itu
- Konten dari penyimpanan lokal sensitif, atau dari file yang nama, jalur, atau jenisnya menandainya sebagai sensitif, memasuki komit, dorong, teks PR atau masalah, gist atau paste, atau publikasi paket, kecuali Anda menyebutkan sumber dan tujuan. Transkrip sesi dan log percakapan, folder dot kredensial dan konfigurasi seperti kunci SSH, kredensial cloud, profil browser, dan riwayat shell, dan ekspor data pengguna semuanya dihitung, dan repositori menjadi pribadi tidak menghapusnya
-
Menulis ke transkrip sesi Claude Code, file riwayat
.jsonldi bawah~/.claude/projects/atau direktori konfigurasi Anda yang dikonfigurasi, baik secara langsung maupun melalui perintah shell. Aturan juga mencakup baris metadata yang Claude Code tambahkan ke setiap entri transkrip untuk pemeriksaannya sendiri. Membaca transkrip tidak diblokir -
Penghapusan paksa rekursif seperti
rm -rf "$VAR"atauRemove-Item -Recurse -Force $diryang targetnya adalah variabel shell yang tidak ditugaskan di mana pun dalam percakapan yang dilihat pengklasifikasi, atau glob yang berakar pada satu. Nilai datang hanya dari output perintah sebelumnya, yang tidak pernah diterima pengklasifikasi, jadi pengklasifikasi tidak dapat memverifikasi target penghapusan terhadap aturan penghapusan lainnya. Blok menghapus ketika Anda menyebutkan jalur pasti yang dihapus, atau ketika Claude menjalankan kembali penghapusan dengan jalur literal yang diselesaikan ditulis ke dalam perintah. Penghapusan yang targetnya dapat diselesaikan pengklasifikasi tidak terpengaruh. Glob langsung di bawah variabel, seperti dalamrm -rf "$VAR"/*, adalah jalur kritis sebagai gantinya. TargetRemove-Itemyang merupakan*telanjang atau berakhir dalam/*atau\*tidak pernah mencapai pengklasifikasi: Claude Code menolaknya langsung.
- Meminta kredensial dari titik akhir metadata instans cloud, seperti
169.254.169.254, atau secara eksplisit mengautentikasi panggilan cloud, kluster, atau registri dengan identitas akun layanan atau node mesin itu sendiri - Mencapai host publik dengan rute selain permintaan langsung, seperti terowongan, shell terbalik, atau konfigurasi resolver atau proxy yang ditulis ulang untuk menunjuk ke luar
- Membaca kredensial yang dimiliki host daripada tugas Anda, seperti sertifikat node atau auth registri kontainer node
- Menghubungkan ke atau memindai kontainer, pod, atau VM saudara yang tidak dimulai Claude, atau node di bawah kontainer
autoMode.environment.
Claude Code v2.1.261 dan lebih baru juga memblokir ini secara default:
- Memposting atau menulis tautan ke layanan paste, diagram, atau berbagi data publik dalam pesan, teks PR atau masalah, dokumen, atau di mana pun tautan akan dibuka atau diambil, ketika URL itu sendiri membawa konten yang dibagikan, kecuali Anda menyebutkan layanan itu
- Operasi file lokal di direktori kerja Anda
- Menginstal dependensi yang dideklarasikan dalam file kunci atau manifes Anda
- Membaca
.envdan mengirim kredensial ke API yang cocok - Permintaan HTTP hanya-baca
- Mendorong ke cabang apa pun dari repositori yang Anda kerjakan, termasuk cabang default. Cabang non-default yang nama menandainya sebagai target penerapan atau publikasi, seperti
productionataugh-pages, tidak tercakup: pengklasifikasi menilai dorong di sana berdasarkan istilahnya sendiri. Konten dorong masih diperiksa terhadap aturan lain, aturanpermissions.denymasih dapat memblokir perintah dorong seperti yang ditulis dalam setiap mode, dan perlindungan cabang remote itu sendiri masih berlaku. Sebelum v2.1.211, hanya dorong ke cabang yang Anda mulai, cabang yang dibuat Claude, dan dorong rutin ke cabang default yang diizinkan secara default, dan sebelum v2.1.203 dorong langsung apa pun ke cabang default diblokir
- Menghapus pekerjaan pasti yang dibuat Claude sebelumnya dalam sesi yang sama
- Membaca, meninjau, atau menulis kode, konfigurasi, dan model ancaman terkait keamanan sebagai bagian dari tugas Anda
- Pesan antara agen yang bekerja bersama dalam sesi multi-agen yang sama
- Mengirim data ke domain terpercaya, bucket, dan layanan yang Anda daftarkan dalam
environment. Ini mencakup aliran data saja, bukan operasi destruktif atau kredensial pada infrastruktur yang sama - Claude di Chrome navigasi ke domain internal terpercaya, localhost, atau URL yang Anda beri nama
claude auto-mode defaults untuk mencetak daftar aturan lengkap sebagai JSON. Jika tindakan rutin diblokir, administrator dapat menambahkan repo terpercaya, bucket, dan layanan melalui pengaturan autoMode.environment: lihat Konfigurasi mode otomatis.
Mendorong ke cabang apa pun dari repositori yang Anda kerjakan dan membuat permintaan tarik yang cocok dengan permintaan Anda berjalan tanpa permintaan, kecuali dorong atau permintaan tarik jatuh di bawah daftar diblokir, seperti rahasia atau data sensitif meninggalkan repositori, atau permintaan tarik yang menargetkan repositori atau organisasi yang berbeda. Untuk memerlukan checkpoint manusia sebelum perintah ini sambil tetap dalam mode otomatis, tambahkan aturan permissions.ask, yang cocok dengan perintah seperti yang ditulis: lihat Batas umum.
Pembacaan pertama di luar direktori kerja
Sementarapermissions.blockReadsOutsideWorkingDirectories mati, pembacaan file berjalan tanpa permintaan dalam mode otomatis, termasuk pembacaan di luar direktori kerja. Pertama kali Claude menggunakan alat Read, Grep, atau Glob pada jalur di luar mereka, Claude Code menanyakan Anda apakah akan terus memungkinkan pembacaan tersebut.
Permintaan tidak muncul dalam -p non-interaktif berjalan atau sesi latar belakang; pembacaan di sana berjalan seperti sebelumnya.
Apa pun yang Anda jawab, Claude terus bekerja:
- Terus izinkan: pembacaan berjalan, pembacaan kemudian di luar direktori kerja berjalan seperti sebelumnya, dan Claude Code mencatat jawaban Anda sehingga permintaan tidak muncul lagi
- Blokir mulai sekarang: pembacaan ditolak, dan Claude Code menetapkan
permissions.blockReadsOutsideWorkingDirectoriesketruedalam pengaturan pengguna Anda, yang membuat alat file menolak pembacaan tersebut dalam setiap sesi kemudian dan setiap mode izin. Untuk membiarkan Claude membaca jalur tersebut nanti, tambahkan direktorinya dengan/add-diratau hapus pengaturannya. - Tanya lagi lain kali: pembacaan ditolak, dan pembacaan berikutnya di luar direktori kerja meminta lagi
- Ya, tetapi tanya lagi lain kali: pembacaan berjalan, tidak ada yang disimpan, dan pembacaan berikutnya di luar direktori kerja meminta lagi
Batas yang Anda nyatakan dalam percakapan
Pengklasifikasi memperlakukan batas yang Anda nyatakan dalam percakapan sebagai sinyal blok. Jika Anda memberi tahu Claude “jangan dorong” atau “tunggu sampai saya meninjau sebelum menerapkan”, pengklasifikasi memblokir tindakan yang cocok bahkan ketika aturan default akan memungkinkannya. Batas tetap berlaku sampai Anda mengangkatnya dalam pesan kemudian. Penilaian Claude sendiri bahwa kondisi terpenuhi tidak mengangkatnya. Batas tidak disimpan sebagai aturan. Pengklasifikasi membaca ulang mereka dari transkrip pada setiap pemeriksaan, jadi batas dapat hilang jika pemadatan konteks menghapus pesan yang menyatakannya. Untuk jaminan keras, tambahkan aturan deny sebagai gantinya.Persetujuan yang Anda nyatakan dalam percakapan
Jika Anda memberi tahu Claude bahwa tindakan yang diblokir diizinkan, pengklasifikasi membaca itu sebagai persetujuan Anda dan dapat menghapus blok. Cara Anda merumuskannya memutuskan apakah tindakan berjalan, dan seberapa jauh persetujuan mencapai:- Beri nama tindakan dan spesifikasinya: pesan Anda harus menyebutkan tindakan dan hal spesifik yang membuatnya berbahaya, seperti cabang dorong paksa. Menyebutkan verba saja tidak menghapus apa pun, jadi “Anda dapat dorong paksa” membiarkan blok tetap ada.
- Harapkan itu mencakup satu tindakan: persetujuan mencakup tindakan destruktif yang Anda beri nama, jadi tindakan kemudian diblokir lagi kecuali Anda memberikan persetujuan sebagai berdiri. Untuk berhenti menyetujui pola rutin satu tindakan pada satu waktu, tambahkan ke
autoMode.allow. - Beberapa blok tetap ada: urutan preseden pengklasifikasi menetapkan blok mana yang dapat dicapai persetujuan Anda. Untuk menjalankan langkah yang tidak akan dihapusnya, tinggalkan mode otomatis dan jawab permintaan izin.
Ketika mode otomatis kembali
Ketika mode otomatis tidak dapat menyetujui tindakan sesi Anda, apa yang terjadi tergantung pada kasusnya:- Tindakan yang diblokir: Claude Code menampilkan pemberitahuan dan mencantumkan tindakan dalam
/permissionsdi bawah tab Recently denied, di mana Anda dapat menekanruntuk mencoba ulang dengan persetujuan manual. Ketika pengklasifikasi menghasilkan tidak ada vonis pada tindakan, karena pemeriksaan keamanan terpisah dari mode otomatis menolak permintaan pengklasifikasi sendiri atau responsnya tidak diuraikan, Claude Code menolak tindakan tanpa pemberitahuan atau entri Recently denied. - Blok berulang: jika pengklasifikasi memblokir tindakan 3 kali berturut-turut atau 20 kali total, mode otomatis berhenti dan Claude Code melanjutkan permintaan. Menyetujui tindakan yang diminta melanjutkan mode otomatis. Ambang batas ini tidak dapat dikonfigurasi. Tindakan yang diizinkan apa pun mengatur ulang penghitung berturut-turut, sementara penghitung total bertahan untuk sesi dan mengatur ulang hanya ketika batasnya sendiri memicu fallback. Claude Code tidak menghitung penolakan terhadap ambang batas apa pun ketika pemeriksaan keamanan terpisah dari mode otomatis menolak permintaan pengklasifikasi; entri tertaut mencakup cara Claude Code menangani penolakan tersebut.
- Sesi yang tidak dapat meminta: lari
-pnon-interaktif tanpa--permission-prompt-tooltidak memiliki permintaan untuk kembali. Ketika blok berulang mencapai ambang batas, tindakan tidak berjalan dan Claude terus bekerja. Hal yang sama berlaku ketika pemeriksaan keamanan terpisah dari mode otomatis menolak permintaan pengklasifikasi. Claude Code tidak menghentikan lari dalam kedua kasus. - Tidak ada vonis dari server: di bawah tinjauan pengklasifikasi sisi server, Claude Code menolak tindakan yang server tidak memberikan vonis, dan menghentikan giliran setelah sepuluh respons berturut-turut tanpa vonis. Lihat Server tidak mengembalikan vonis keamanan.
- Beralih mode selama pemeriksaan: jika Anda beralih mode izin saat pemeriksaan pengklasifikasi tertunda, Claude Code membuang vonis yang mode baru tidak akan diminta daripada menerapkannya: Anda diminta persetujuan sebagai gantinya, atau tindakan ditolak otomatis dalam mode
dontAsk.
/feedback untuk melaporkan positif palsu, atau biarkan administrator mengonfigurasi infrastruktur terpercaya.
Bagaimana pengklasifikasi mengevaluasi tindakan
Bagaimana pengklasifikasi mengevaluasi tindakan
Setiap tindakan melalui urutan keputusan tetap. Langkah pertama yang cocok menang:
- Tindakan yang cocok dengan aturan allow, ask, atau deny Anda diselesaikan segera, dengan pengecualian ini:
- Penulisan ke jalur yang dilindungi rute ke pengklasifikasi bahkan ketika aturan allow cocok
- Tidak ada aturan allow yang menyetujui penghapusan
rmdanrmdiryang menargetkan jalur kritis - Alat MCP yang ditandai
requiresUserInteractionmeminta Anda langsung bahkan ketika aturan allow cocok, dan begitu juga alat konektor organisasi Anda atur keaskdalam sesi di mana pengaturan itu mencapai Claude Code - Perintah shell yang membawa domain yang diizinkan per-perintah juga rute ke pengklasifikasi bahkan ketika aturan allow cocok, karena aturan menyetujui perintah, bukan hostnya
- Aturan ask yang cocok pada konten perintah, seperti
Bash(git push *), kembali ke permintaan izin - Penulisan yang pemeriksaan symlink selesaikan ke jalur yang dilindungi meminta Anda ketika jalur yang diminta Claude bukan sendiri yang dilindungi
- Tindakan hanya-baca dan pengeditan file di direktori kerja Anda disetujui otomatis, kecuali penulisan ke jalur yang dilindungi dan pembacaan pertama di luar direktori kerja, yang meminta Anda
- Dalam sesi dengan tinjauan pengklasifikasi sisi server, perintah hanya-baca dan sandboxed shell menunggu tinjauan itu dan diblokir jika itu menandainya
- Penulisan di dalam direktori kerja Anda yang pemeriksaan symlink selesaikan ke lokasi di luar itu meminta Anda
- Semuanya yang lain pergi ke pengklasifikasi, terlepas dari penghapusan jalur kritis di bawah penanganan default mereka. Alat konektor dan alat MCP
requiresUserInteractionyang meminta Anda langsung dalam langkah 1 tidak pernah mencapai pengklasifikasi, jadi baik persetujuan yang diperlukan org maupun langkah persetujuan tidak disetujui otomatis - Jika pengklasifikasi memblokir, Claude menerima alasan dan mencoba alternatif. Dalam sebagian besar sesi alasan menyebutkan aturan yang cocok pengklasifikasi, seperti
[Data Exfiltration], daripada memberikan penjelasan tertulis; lihat Tinjauan penolakan
- Blanket
Bash(*)atauPowerShell(*) - Interpreter yang diberi wildcard seperti
Bash(python*) - Perintah jalankan pengelola paket
- Aturan allow
Agent - Aturan allow
Monitor, karena Claude Code menjalankan perintah Monitor melalui shell
Bash(npm test) tetap berlaku. Claude Code mengembalikan aturan yang dijatuhkan ketika Anda meninggalkan mode otomatis. Sebelum v2.1.236, Claude Code membiarkan aturan allow Monitor berlaku dalam mode otomatis, jadi aturan yang cocok dengan seluruh alat menyetujui perintah Monitor tanpa tinjauan pengklasifikasi.Claude Code juga menjalankan git status itu sendiri sebelum perintah yang akan membuang pekerjaan yang tidak dilakukan komit, seperti git reset --hard atau rm -rf, dan menunjukkan pengklasifikasi apakah pekerjaan yang dipentaskan, dimodifikasi, atau tidak dilacak ada. Claude Code melaporkan file yang tidak dilacak dalam pemeriksaan itu bahkan ketika konfigurasi git repositori menetapkan status.showUntrackedFiles=no.Dalam permintaan pengklasifikasi yang dikirim Claude Code itu sendiri, pengklasifikasi melihat pesan pengguna, panggilan alat selain pencarian hanya-baca seperti pembacaan file dan pencarian, dan konten CLAUDE.md Anda. Hasil alat dilepas dari permintaan tersebut, jadi konten bermusuhan dalam file atau halaman web tidak dapat memanipulasi pengklasifikasi secara langsung.Anda dapat memberi anotasi hasil panggilan dengan field classifierContext hook PostToolUse, yang dibaca pengklasifikasi sebagai konteks yang disediakan aplikasi. Field memerlukan Claude Code v2.1.236 atau lebih baru.Probe sisi server terpisah memindai hasil alat masuk dan menandai konten mencurigakan sebelum Claude membacanya. Untuk lebih lanjut tentang cara lapisan ini bekerja bersama, lihat pengumuman mode otomatis dan penggalian teknik.Bagaimana mode otomatis menangani subagen
Bagaimana mode otomatis menangani subagen
Pengklasifikasi memeriksa pekerjaan subagen di tiga titik:
- Sebelum subagen dimulai, deskripsi tugas yang didelegasikan dievaluasi, jadi tugas yang terlihat berbahaya diblokir pada waktu spawn.
- Saat subagen berjalan, setiap tindakannya melalui pengklasifikasi dengan aturan yang sama seperti sesi induk, dan
permissionModeapa pun dalam frontmatter subagen diabaikan. - Ketika subagen selesai, pengklasifikasi meninjau pekerjaannya dan laporan akhirnya sebelum induk membaca laporan. Ketika pengklasifikasi menandai pekerjaan atau laporan subagen, atau pemeriksaan API keamanan terpisah menolak tinjauan, laporan masih disampaikan, diawali dengan peringatan keamanan. Ketika pengklasifikasi tidak tersedia untuk tinjauan, laporan tiba dengan catatan untuk memverifikasi pekerjaan subagen sebelum bertindak atas dasar itu.
Biaya dan latensi
Biaya dan latensi
Pengklasifikasi berjalan pada Claude Sonnet 5 secara default daripada pada pilihan
/model Anda. Model pengklasifikasi yang dikonfigurasi Anthropic sisi server mengambil preseden atas default itu. Ketika model sesi Anda adalah Claude Sonnet 4.6, atau ketika availableModels mengecualikan Sonnet 5, pengklasifikasi berjalan pada model sesi sebagai gantinya, atau pada model Opus ketika sesi berjalan pada model Fable; di penyedia selain Anthropic API, fallback Opus itu adalah model Opus default penyedia.Permintaan mode otomatis pertama sesi memvalidasi default Sonnet 5: jika permintaan berhasil, Sonnet 5 tetap model pengklasifikasi sesi, dan jika gagal karena model tidak tersedia, sesi menggunakan fallback sebagai gantinya. Setelah validasi itu diselesaikan, model pengklasifikasi tidak berubah untuk sesi.Pada paket Enterprise dan pada akun yang menggunakan Claude API, Claude Platform di AWS, Amazon Bedrock, Agent Platform Google Cloud, atau Microsoft Foundry, panggilan pengklasifikasi dihitung terhadap penggunaan token Anda. Setiap pemeriksaan mengirim sebagian dari transkrip ditambah tindakan yang tertunda, menambahkan putaran perjalanan pulang sebelum eksekusi. Pembacaan dan pengeditan direktori kerja di luar jalur yang dilindungi melewati pengklasifikasi, jadi overhead datang terutama dari perintah shell dan operasi jaringan. Di mana server meninjau tindakan sebagai bagian dari permintaan model sesi, tidak ada permintaan pengklasifikasi terpisah untuk dihitung; lihat Tinjauan pengklasifikasi sisi server.Akses jaringan sandboxed tidak menambahkan permintaan pengklasifikasi per-koneksi. Pengklasifikasi menilai host yang dinamai perintah bersama dengan perintah dalam satu tinjauan, dan Claude Code memeriksa setiap koneksi terhadap daftar yang disetujui tanpa memanggil pengklasifikasi lagi.Izinkan hanya alat yang telah disetujui sebelumnya dengan mode dontAsk
Jika Anda menetapkan modedontAsk, Claude Code secara otomatis menolak setiap panggilan alat yang akan meminta sebaliknya. Claude masih menjalankan tindakan yang tidak memerlukan persetujuan dalam mode Manual, seperti pembacaan file di dalam direktori kerja Anda dan perintah Bash read-only, ditambah tindakan yang cocok dengan aturan permissions.allow Anda dan panggilan yang disetujui oleh hook PreToolUse. Gunakan mode ini untuk pipeline CI atau lingkungan terbatas di mana Anda pre-define apa yang Claude boleh lakukan; sesi tidak pernah menunggu input. Bilah status menunjukkan ⏵⏵ don't ask on saat mode ini aktif.
Claude Code menolak panggilan yang cocok dengan aturan ask eksplisit Anda daripada meminta. Ini juga menolak alat AskUserQuestion bawaan bahkan jika aturan allow Anda cocok dengannya, dan melakukan hal yang sama untuk alat konektor organisasi Anda atur ke ask dalam sesi di mana pengaturan itu mencapai Claude Code. Ini menolak alat MCP yang ditandai _meta["anthropic/requiresUserInteraction"] dengan cara yang sama, karena kartu persetujuan mereka memerlukan jawaban yang mode ini tidak pernah kumpulkan; ini memerlukan Claude Code v2.1.199 atau lebih baru.
Penghapusan rm dan rmdir yang menargetkan jalur kritis, seperti rm -rf / dan rm -rf ~, ditolak bahkan ketika aturan allow cocok dengannya atau hook PreToolUse memungkinkannya.
Sesi cloud di Claude Code di web mengabaikan defaultMode: "dontAsk"; lihat bypassPermissions untuk detail.
Atur saat startup dengan flag:
Lewati semua pemeriksaan dengan mode bypassPermissions
ModebypassPermissions menonaktifkan prompt izin dan pemeriksaan keamanan sehingga panggilan alat dijalankan segera, termasuk penulisan ke jalur yang dilindungi.
Tindakan yang tidak ada mode auto-approve masih meminta dalam mode ini. Remove-Item di PowerShell penolakan juga berlaku dalam mode ini.
Dua perlindungan pesan lintas sesi masih berlaku dalam mode ini, dan dalam sesi mode rencana terminal interaktif di mana bypass permissions tersedia:
- Prompt persetujuan
isolatePeerMachinesuntuk pesan ke sesi Anda di luar mesin ini masih muncul. - Ketika tidak ada nilai
crossSessionInboundberlaku, Claude Code menahan pesan masuk dari sesi lain Anda untuk persetujuan Anda, dan mengirimkan tanpa bertanya hanya ketika sesi pengirim mengidentifikasi dirinya sebagai juga melewati prompt izin. Jika Anda meninggalkan mode izin saat pesan ditahan, Claude Code menerapkan kembali aturan masuk dan mengirimkan pesan yang ditahan apa pun yang sekarang diterima.
rm dan rmdir yang menargetkan jalur kritis masih meminta.
Mode rencana menjaga blokir di mana pun Claude Code berjalan tanpa terminal interaktif, termasuk run non-interaktif dengan -p, sesi Agent SDK, dan percakapan di panel chat VS Code extension. Di sana, --allow-dangerously-skip-permissions membuat bypassPermissions dapat dipilih nanti.
Anda tidak dapat memasukkan bypassPermissions dari sesi yang dimulai tanpa itu diaktifkan. Aktifkan saat peluncuran dengan permissions.defaultMode: "bypassPermissions" atau dengan flag yang mengaktifkan:
--dangerously-skip-permissions setara.
Claude Code menolak bypassPermissions dalam sesi yang Anda mulai dengan --restricted. --restricted memerlukan Claude Code v2.1.248 atau lebih baru.
Pertama kali Anda memulai sesi interaktif dengan mode ini diaktifkan, Claude Code menampilkan dialog peringatan yang meminta Anda menerima tanggung jawab untuk tindakan yang diambil tanpa pemeriksaan izin. Claude Code menyimpan penerimaan Anda ke pengaturan pengguna, jadi dialog muncul hanya sekali. Jika Anda menolak, Claude Code keluar. Dalam mode non-interaktif tidak ada dialog yang ditampilkan, dan sesi latar belakang yang dimulai dengan --bg ditolak sampai Anda telah menerima dialog dalam sesi interaktif.
Di Linux dan macOS, Claude Code menolak untuk memulai dalam mode ini saat berjalan sebagai root atau di bawah sudo:
defaultMode: "bypassPermissions" atau "dontAsk" dari file pengaturan Anda, jadi pengaturan yang diperiksa dalam repositori tidak dapat memulai sesi cloud dalam mode bypass-permissions. Pengaturan diabaikan secara diam-diam dan sesi dimulai dalam mode izin yang ditampilkan di dropdown mode sebagai gantinya. Lihat Alihkan mode izin untuk mode mana yang ditawarkan sesi cloud.
Jalur yang dilindungi
Penulisan ke serangkaian jalur kecil tidak pernah disetujui otomatis, kecuali dalam modebypassPermissions dan dalam sesi terminal interaktif mode plan dengan bypass permissions tersedia. Ini mencegah kerusakan yang tidak disengaja dari status repositori dan konfigurasi Claude sendiri.
Dalam sesi yang dimulai dengan
--restricted, yang memerlukan Claude Code v2.1.248 atau lebih baru, pengklasifikasi tidak dapat menyetujui penulisan jalur yang dilindungi.
Dalam mode yang merutekan penulisan jalur yang dilindungi ke pengklasifikasi, penulisan yang pemeriksaan symlink selesaikan ke jalur yang dilindungi meminta Anda sebagai gantinya ketika jalur yang diminta Claude bukan sendiri dilindungi.
Aturan permissions.allow dalam file pengaturan tidak pra-menyetujui penulisan jalur yang dilindungi. Pemeriksaan keamanan berjalan sebelum Claude Code mengevaluasi aturan allow dari pengaturan, jadi entri seperti Edit(.claude/**) dalam ~/.claude/settings.json atau .claude/settings.json tidak mengubah hasil per-mode dalam tabel di atas. Dalam mode permisi yang meminta, prompt untuk penulisan ke folder .claude/ proyek atau ke ~/.claude/ dapat menawarkan salah satu opsi yang dibatasi sesi ini:
- Untuk folder
.claude/proyek: Ya, dan izinkan Claude untuk mengedit file di folder .claude proyek ini untuk sesi ini - Untuk
~/.claude/: Ya, dan izinkan Claude untuk mengedit file di folder ~/.claude-nya untuk sesi ini
.git.config/git.vscode.idea.husky.cargo.devcontainer.yarn.mvn.claude, kecuali untuk.claude/worktreesdi mana Claude menyimpan git worktrees-nya sendiri
.gitconfig,.gitmodules.bashrc,.bash_profile,.bash_login,.bash_aliases,.bash_logout,.zshrc,.zprofile,.zshenv,.zlogin,.zlogout,.profile,.envrc.npmrc,.yarnrc,.yarnrc.yml,.pnp.cjs,.pnp.loader.mjs,.pnpmfile.cjs,bunfig.toml,.bunfig.toml.bazelrc,.bazelversion,.bazeliskrc.pre-commit-config.yaml,lefthook.yml,lefthook.yaml,.lefthook.yml,.lefthook.yamlgradle-wrapper.properties,maven-wrapper.properties.devcontainer.json.ripgreprc,pyrightconfig.json.mcp.json,.claude.json
Jalur kritis
Claude Code tidak pernah membiarkan aturanpermissions.allow atau hook PreToolUse yang mengembalikan "allow" menyetujui perintah rm atau rmdir yang menargetkan jalur kritis, bahkan dalam mode yang melewati prompt lain. Pemutus sirkuit ini menjaga terhadap kesalahan model. Aturan deny yang cocok masih memblokir perintah sepenuhnya.
Apa yang terjadi sebagai gantinya bergantung pada mode izin Anda:
Jika aturan ask eksplisit cocok dengan perintah, Claude Code meminta Anda sebagai gantinya, bahkan dalam mode
auto dan tanpa batas waktu. Dalam mode yang meminta, hook PermissionRequest dapat menjawab prompt.
Penanganan auto dan bypassPermissions memerlukan Claude Code v2.1.281 atau lebih baru. Untuk mematikannya, atur CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT=1 dalam lingkungan yang meluncurkan Claude Code. Dalam mode auto, penghapusan jalur kritis kemudian pergi ke pengklasifikasi sebagai gantinya, dan dalam mode bypassPermissions prompt tidak memiliki batas waktu.
Dalam mode auto dan bypassPermissions, prompt terminal menampilkan hitungan mundur dua menit:
- Jika hitungan mundur habis sebelum Anda menjawab, Claude Code menolak perintah dan memberi tahu Claude apa yang harus dilakukan sebagai gantinya, sehingga sesi tanpa pengawasan terus bekerja.
- Tekan tombol apa pun saat prompt terbuka untuk menghentikan hitungan mundur dan membuat prompt tetap menunggu jawaban Anda.
- Setelah tiga prompt ini habis tanpa jawaban dalam sesi, Claude Code berhenti menampilkannya dan menolak penghapusan jalur kritis lebih lanjut segera. Mengirim pesan baru memulai hitungan ulang.
auto, di mana pun Claude Code tidak dapat menampilkan prompt terminal kepada Anda, itu menolak perintah segera, misalnya dalam run non-interaktif dengan -p, dalam sesi Agent SDK, dan dalam panel chat ekstensi VS Code dan aplikasi Desktop. Penolakan memberi tahu Claude untuk melaporkan apa yang ingin dihapus dan membiarkan penghapusan kepada Anda.
Claude Code memperlakukan target rm atau rmdir sebagai jalur kritis ketika itu adalah salah satu dari yang berikut:
- Akar filesystem
- Direktori tingkat atas, artinya anak langsung apa pun dari akar, seperti
/usr,/etc, atau/data - Direktori home Anda
- Akar drive Windows dan direktori tingkat atas mereka, seperti
C:\danC:\Windows - Direktori kerja Anda dan induknya
- Direktori kerja tambahan Anda dan induk mereka, tetapi hanya ketika penghapusan adalah glob di bawah salah satu dari mereka, seperti
rm -rf <dir>/*.rm -rf <dir>pada direktori itu sendiri tidak memicu pemeriksaan ini
rm -rf "$DIR"/*, sebagai penghapusan jalur kritis, karena perintah menjadi penghapusan dari akar filesystem ketika variabel kosong.
Prompt untuk kasus variabel ini menamai rm yang ditandai dan mengatakan cara menulis ulangnya sehingga pemeriksaan lulus:
- Untuk variabel seperti
$DIR, lindungi setiap ekspansi sehingga shell berhenti dengan kesalahan ketika variabel tidak diatur atau kosong, seperti dalamrm -rf "${DIR:?}"/*, atau gunakan jalur literal - Untuk variabel yang biasanya diatur, seperti
$HOME, gunakan jalur literal
bypassPermissions itu berjalan tanpa prompt kecuali pemeriksaan lain di bagian ini menandainya.
Claude Code juga memperlakukan target ini sebagai jalur kritis:
- Variabel shell diikuti oleh satu nama direktori tingkat atas, seperti
rm -rf "$TMPDIR/mnt": ketika variabel berkembang kosong, perintah menghapus/mnt. Ini mencakup nama tingkat atas umum sepertimnt,tmp,usr, danUsers. - Variabel yang perintah yang sama tetapkan dari substitusi pencetakan direktori, seperti
D=$(pwd); rm -rf "$D"atau penugasan dari$(git rev-parse --show-toplevel): nilainya dapat menamai direktori kerja atau akar repositori Anda. Penjaga"${D:?}"tidak menghapus pemeriksaan ini, karena variabel tidak kosong; gunakan jalur literal sebagai gantinya. - Target hanya garis miring terbalik, seperti
rm -rf "\\": Git Bash di Windows membaca garis miring terbalik tunggal sebagai akar drive saat ini, jadi pemeriksaan berlaku di setiap platform. - Hanya output dari substitusi perintah, seperti
rm -rf "$(pwd)", ketikarmbersifat rekursif: Claude Code tidak dapat memeriksa target sebelum perintah berjalan, jadi prompt memberi tahu Claude untuk menjalankan substitusi sendiri terlebih dahulu dan kemudian menghapus jalur literal yang dicetak. Untuk mematikan pemeriksaan ini, aturCLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT=1dalam lingkungan yang meluncurkan Claude Code.
rm -rf ~/$(cmd), Claude Code memeriksa jalur yang akan tetap, direktori home Anda dalam contoh ini.
Menyembunyikan penghapusan di dalam subshell dengan (...), grup brace dengan { ...; }, substitusi perintah dengan $(...) atau backtick, atau substitusi proses dengan <(...), tidak melewati pemeriksaan. Claude Code menemukan penghapusan jalur kritis apakah itu berada di dalam bentuk bersarang, seperti dalam (rm -rf ~) atau echo "$(rm -rf ~)", atau di tempat lain dalam perintah yang sama.
Remove-Item dalam PowerShell
Ketika Anda mengaktifkan alat PowerShell, Claude Code memberikanRemove-Item dan built-in cmd rd, rmdir, del, dan erase pemeriksaan mereka sendiri, terpisah dari daftar jalur kritis rm. Untuk Remove-Item, hasilnya bergantung pada target, dan kasus pertama yang cocok berlaku:
- Jalur sistem: akar filesystem dan direktori tingkat atasnya, akar drive dan direktori tingkat atas mereka, dan direktori home Anda. Claude Code menolak perintah di setiap mode, tanpa bertanya kepada Anda.
- Wildcard: bare
*, atau target apa pun yang berakhir dalam/*atau\*, termasuk glob di bawah variabel shell seperti$dir/*. Claude Code menolak perintah di setiap mode, tanpa bertanya kepada Anda, sebelum pengklasifikasi melihatnya. - Direktori kerja Anda atau salah satu induknya, dengan
-Recurse: Claude Code memperlakukan perintah seperti apa pun yang memerlukan persetujuan dalam mode izin Anda, jadi itu meminta Anda dalam mode yang meminta, mengirimkannya ke pengklasifikasi dalam modeauto, dan menolaknya dalam modedontAsk. ModebypassPermissionsmelewati pemeriksaan ini.
rd, rmdir, del, dan erase ketika Claude menjalankannya melalui cmd, seperti dalam cmd /c rd /s /q C:\Users. Secara default, Claude Code menolak perintah seperti itu di setiap mode, tanpa bertanya kepada Anda. Pemeriksaan cmd ini memerlukan Claude Code v2.1.283 atau lebih baru.
Saat menilai target cmd, Claude Code memperlakukan variabel PowerShell yang mengikuti teks literal sebagai kosong. Itu membuat cmd /c rd /s /q "C:\$name" penghapusan C:\, jadi itu juga ditolak. Wildcard di akhir dihitung sebagai folder yang dikosongkannya, jadi cmd /c del /q C:\* ditolak dan cmd /c del /q dist\* dalam proyek Anda tidak.
Untuk mematikan pemeriksaan cmd, atur CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY=1 dalam lingkungan yang meluncurkan Claude Code. Claude Code mengabaikan variabel ini dalam blok env file pengaturan. Remove-Item pada jalur sistem tetap ditolak bagaimanapun juga.
Lihat juga
- Permissions: aturan allow, ask, dan deny; kebijakan terkelola
- Konfigurasi mode auto: beri tahu pengklasifikasi infrastruktur mana yang dipercaya organisasi Anda
- Hooks: logika izin kustom melalui hook
PreToolUsedanPermissionRequest - Security: perlindungan dan praktik terbaik
- Sandboxing: isolasi filesystem dan jaringan untuk perintah Bash
- Mode non-interaktif: jalankan Claude Code dengan flag
-p