SpyBara
Go Premium

auto-mode-config.md 2026-06-29 23:02 UTC to 2026-06-30 23:02 UTC

60 added, 6 removed.

2026
Tue 30 23:02 Mon 29 23:02 Sat 27 01:01 Fri 26 23:00 Thu 25 23:58 Wed 24 22:02 Tue 23 22:00 Mon 22 23:59 Fri 19 22:58 Thu 18 22:00 Wed 17 17:02 Tue 16 21:57 Mon 15 23:02 Sat 13 21:59 Fri 12 22:00 Thu 11 23:01 Wed 10 23:57 Tue 9 06:34 Mon 8 06:52 Sat 6 06:24 Fri 5 06:45 Thu 4 06:52 Wed 3 06:53 Tue 2 06:51

Konfigurasi auto mode

Beri tahu pengklasifikasi auto mode tentang repo, bucket, dan domain mana yang dipercaya organisasi Anda. Atur konteks lingkungan, ganti aturan blokir dan izin default, dan periksa konfigurasi efektif Anda dengan subperintah CLI auto-mode.

Auto mode memungkinkan Claude Code berjalan tanpa permintaan izin rutin dengan merutekan panggilan alat melalui pengklasifikasi yang memblokir apa pun yang tidak dapat dibalikkan, merusak, atau ditujukan di luar lingkungan Anda. Aturan Deny dan explicit ask dievaluasi sebelum pengklasifikasi dan masih memblokir atau meminta. Gunakan blok pengaturan autoMode untuk memberi tahu pengklasifikasi itu repo, bucket, dan domain mana yang dipercaya organisasi Anda, sehingga berhenti memblokir operasi internal rutin.

Secara default, pengklasifikasi hanya mempercayai direktori kerja dan remote yang dikonfigurasi dari repo saat ini. Tindakan seperti mendorong ke org kontrol sumber perusahaan Anda atau menulis ke bucket cloud tim diblokir sampai Anda menambahkannya ke autoMode.environment.

Untuk cara mengaktifkan auto mode dan apa yang diblokir secara default, lihat Permission modes. Halaman ini adalah referensi konfigurasi.

Halaman ini mencakup cara:

Di mana pengklasifikasi membaca konfigurasi

Pengklasifikasi membaca konten CLAUDE.md yang sama yang dimuat Claude sendiri, jadi instruksi seperti "jangan pernah force push" di CLAUDE.md proyek Anda mengarahkan Claude dan pengklasifikasi pada saat yang bersamaan. Mulai dari sana untuk konvensi proyek dan aturan perilaku.

Untuk aturan yang berlaku di seluruh proyek, seperti infrastruktur terpercaya atau aturan penolakan di seluruh organisasi, gunakan blok pengaturan autoMode. Pengklasifikasi membaca autoMode dari cakupan berikut:

Cakupan File Gunakan untuk
Satu pengembang ~/.claude/settings.json Infrastruktur terpercaya pribadi
Satu proyek, satu pengembang .claude/settings.local.json Bucket atau layanan terpercaya per-proyek
Di seluruh organisasi Pengaturan terkelola Infrastruktur terpercaya didistribusikan ke semua pengembang
Bendera --settings atau Agent SDK JSON inline Penggantian per-invokasi untuk otomasi

Pengklasifikasi tidak membaca autoMode dari pengaturan proyek bersama di .claude/settings.json, jadi repo yang diperiksa tidak dapat menyuntikkan aturan izinnya sendiri.

Entri dari setiap cakupan digabungkan. Pengembang dapat memperluas environment, allow, soft_deny, dan hard_deny dengan entri pribadi tetapi tidak dapat menghapus entri yang disediakan pengaturan terkelola. Karena aturan izin bertindak sebagai pengecualian untuk aturan blokir lunak di dalam pengklasifikasi, entri allow yang ditambahkan pengembang dapat mengganti entri soft_deny organisasi: kombinasinya bersifat aditif, bukan batas kebijakan keras.

Tentukan infrastruktur terpercaya

Untuk sebagian besar organisasi, autoMode.environment adalah satu-satunya bidang yang perlu Anda atur. Ini memberi tahu pengklasifikasi repo, bucket, dan domain mana yang dipercaya: pengklasifikasi menggunakannya untuk memutuskan apa arti "eksternal", jadi tujuan apa pun yang tidak terdaftar adalah target exfiltration potensial.

Mulai dari Claude Code v2.1.195, claude auto-mode defaults mencetak dua jenis entri lingkungan.

  • Trust slots: nama apa yang diperlakukan pengklasifikasi sebagai di dalam batas Anda. Slot tersebut adalah Trusted repo, Source control, Trusted internal domains, Trusted cloud buckets, Key internal services, dan Internal package registry. Entri repo dan source-control default ke repositori kerja dan remote yang dikonfigurasinya. Setiap trust slot lainnya default ke None configured, jadi tidak ada yang lain dipercaya sampai Anda menambahkannya.
  • Sensitivity slots: nama apa yang diperlakukan aturan perlindungan sebagai berisiko tinggi. Slot tersebut adalah PII / regulated-data locations, Sensitive remote targets, dan Protected IaC scopes. Masing-masing default ke heuristik luas, seperti memperlakukan host atau namespace apa pun yang namanya membawa prod atau production sebagai target remote sensitif, jadi aturan perlindungan aktif sebelum Anda mengonfigurasi apa pun. Penamaan target konkret dalam sensitivity slot membuat aturan tersebut berlaku untuk target bernama daripada heuristik.

Versi sebelum v2.1.195 hanya mencetak lima trust slot pertama.

Untuk menambahkan entri Anda sendiri bersama default tersebut, sertakan string literal "$defaults" dalam array. Entri default disisipi pada posisi tersebut, jadi entri kustom Anda dapat berada sebelum atau sesudahnya.

Contoh berikut menjaga entri default dan menambahkan repo, bucket, domain, dan layanan organisasi.

{
  "autoMode": {
    "environment": [
      "$defaults",
      "Source control: github.example.com/acme-corp and all repos under it",
      "Trusted cloud buckets: s3://acme-build-artifacts, gs://acme-ml-datasets",
      "Trusted internal domains: *.corp.example.com, api.internal.example.com",
      "Key internal services: Jenkins at ci.example.com, Artifactory at artifacts.example.com"
    ]
  }
}

Entri adalah prosa, bukan regex atau pola alat. Pengklasifikasi membacanya sebagai aturan bahasa alami. Tulislah dengan cara Anda akan menggambarkan infrastruktur Anda kepada insinyur baru. Bagian lingkungan yang menyeluruh mencakup:

  • Organisasi: nama perusahaan Anda dan apa yang Claude Code digunakan terutama untuk, seperti pengembangan perangkat lunak, otomasi infrastruktur, atau rekayasa data
  • Kontrol sumber: setiap GitHub, GitLab, atau org Bitbucket yang didorong pengembang Anda
  • Penyedia cloud dan bucket terpercaya: nama bucket atau awalan yang Claude harus dapat membaca dari dan menulis ke
  • Domain internal terpercaya: nama host untuk API, dasbor, dan layanan di dalam jaringan Anda, seperti *.internal.example.com
  • Layanan internal utama: CI, registri artefak, indeks paket internal, tooling insiden
  • Registri paket internal: registri npm, PyPI, atau lainnya yang pribadi yang instalasi harus dirutekan melalui, sehingga instalasi yang melewatinya untuk registri publik diblokir
  • Lokasi PII / regulated-data: bucket, database, atau path yang menyimpan data pribadi atau diatur, sehingga pengklasifikasi melindungi lokasi tersebut daripada menebak dari konten
  • Target remote sensitif: namespace, host, atau container yang dihitung sebagai production, sehingga remote shell dan port-forward ke dalamnya memerlukan persetujuan eksplisit Anda
  • Protected IaC scopes: sumber daya infrastruktur yang apply atau destroy harus selalu memerlukan Anda untuk menyebutkan perubahan
  • Konteks tambahan: batasan industri yang diatur, infrastruktur multi-tenant, atau persyaratan kepatuhan yang mempengaruhi apa yang harus diperlakukan pengklasifikasi sebagai berisiko

Entri Internal package registry, PII / regulated-data locations, Sensitive remote targets, dan Protected IaC scopes memerlukan Claude Code v2.1.195 atau lebih baru. Versi sebelumnya masih membacanya sebagai konteks biasa tetapi tidak memiliki aturan bawaan yang menargetkannya.

Template awal yang berguna: isi bidang dalam kurung dan hapus baris apa pun yang tidak berlaku.

{
  "autoMode": {
    "environment": [
      "$defaults",
      "Organization: {COMPANY_NAME}. Primary use: {PRIMARY_USE_CASE, e.g. software development, infrastructure automation}",
      "Source control: {SOURCE_CONTROL, e.g. GitHub org github.example.com/acme-corp}",
      "Cloud provider(s): {CLOUD_PROVIDERS, e.g. AWS, GCP, Azure}",
      "Trusted cloud buckets: {TRUSTED_BUCKETS, e.g. s3://acme-builds, gs://acme-datasets}",
      "Trusted internal domains: {TRUSTED_DOMAINS, e.g. *.internal.example.com, api.example.com}",
      "Key internal services: {SERVICES, e.g. Jenkins at ci.example.com, Artifactory at artifacts.example.com}",
      "Additional context: {EXTRA, e.g. regulated industry, multi-tenant infrastructure, compliance requirements}"
    ]
  }
}

Semakin spesifik konteks yang Anda berikan, semakin baik pengklasifikasi dapat membedakan operasi internal rutin dari upaya exfiltration.

Anda tidak perlu mengisi semuanya sekaligus. Peluncuran yang masuk akal: mulai dengan default dan tambahkan org kontrol sumber Anda dan layanan internal utama, yang menyelesaikan false positive paling umum seperti mendorong ke repo Anda sendiri. Tambahkan domain terpercaya dan bucket cloud selanjutnya. Isi sisanya saat blokir muncul.

Ganti aturan blokir dan izin

Tiga bidang tambahan memungkinkan Anda mengganti daftar aturan bawaan pengklasifikasi:

  • autoMode.hard_deny: batas keamanan tanpa syarat
  • autoMode.soft_deny: tindakan destruktif yang niat pengguna dapat menghapus
  • autoMode.allow: pengecualian untuk aturan blokir soft

Masing-masing adalah array deskripsi prosa, dibaca sebagai aturan bahasa alami. Untuk hard block berbasis pola alat yang berjalan sebelum pengklasifikasi, gunakan permissions.deny.

Di dalam pengklasifikasi, prioritas bekerja dalam empat tingkat:

  • Aturan hard_deny memblokir tanpa syarat. Niat pengguna dan pengecualian allow tidak berlaku.
  • Aturan soft_deny memblokir selanjutnya. Niat pengguna dan pengecualian allow dapat mengganti ini.
  • Aturan allow kemudian mengganti aturan soft_deny yang cocok sebagai pengecualian.
  • Niat pengguna eksplisit mengganti blokir soft yang tersisa: jika pesan pengguna secara langsung dan spesifik menggambarkan tindakan yang tepat Claude akan ambil, pengklasifikasi mengizinkannya bahkan ketika aturan soft_deny cocok.

Permintaan umum tidak dihitung sebagai niat eksplisit. Meminta Claude untuk "membersihkan repo" tidak mengotorisasi force-push, tetapi meminta Claude untuk "force-push cabang ini" melakukannya.

Untuk melonggarkan, tambahkan ke allow ketika pengklasifikasi berulang kali menandai pola rutin yang pengecualian default tidak cover. Untuk mengencangkan, tambahkan ke soft_deny untuk risiko destruktif spesifik lingkungan Anda yang default lewatkan, atau ke hard_deny untuk batas keamanan yang tidak boleh pernah dilintasi.

Untuk menjaga aturan bawaan sambil menambahkan aturan Anda sendiri, sertakan string literal "$defaults" dalam array. Aturan default disisipi pada posisi itu, jadi aturan kustom Anda dapat berada sebelum atau sesudahnya, dan Anda terus mewarisi pembaruan saat daftar bawaan berubah di seluruh rilis.

Contoh berikut menjaga default di semua empat daftar dan menambahkan aturan spesifik organisasi ke masing-masing.

{
  "autoMode": {
    "environment": [
      "$defaults",
      "Source control: github.example.com/acme-corp and all repos under it"
    ],
    "allow": [
      "$defaults",
      "Deploying to the staging namespace is allowed: staging is isolated from production and resets nightly",
      "Writing to s3://acme-scratch/ is allowed: ephemeral bucket with a 7-day lifecycle policy"
    ],
    "soft_deny": [
      "$defaults",
      "Never run database migrations outside the migrations CLI, even against dev databases",
      "Never modify files under infra/terraform/prod/: production infrastructure changes go through the review workflow"
    ],
    "hard_deny": [
      "$defaults",
      "Never send repository contents to third-party code-review APIs"
    ]
  }
}

Setiap bagian dievaluasi secara independen, jadi menetapkan environment saja membiarkan daftar allow, soft_deny, dan hard_deny default tetap utuh.

Hanya hilangkan "$defaults" ketika Anda bermaksud mengambil kepemilikan penuh atas daftar. Untuk melakukan itu dengan aman, jalankan claude auto-mode defaults untuk mencetak aturan bawaan, salin ke file pengaturan Anda, kemudian tinjau setiap aturan terhadap pipeline Anda sendiri dan toleransi risiko.

Perutean semua perintah shell melalui pengklasifikasi

Secara default, aturan izin Bash dan PowerShell yang sempit seperti Bash(npm test) terbawa ke auto mode dan diselesaikan sebelum pengklasifikasi berjalan. Auto mode hanya menangguhkan aturan luas yang memberikan eksekusi kode arbitrer, seperti Bash(*) atau interpreter dengan wildcard. Ini berarti aturan sempit masih dapat membiarkan argumen destruktif melewati tanpa pengklasifikasi melihatnya, misalnya path skrip atau flag yang awalan aturan tidak antisipasi.

Atur autoMode.classifyAllShell ke true untuk menangguhkan setiap aturan izin Bash dan PowerShell saat auto mode aktif, sehingga pengklasifikasi mengevaluasi setiap perintah shell terlepas dari daftar izin Anda.

{
  "autoMode": {
    "classifyAllShell": true
  }
}

Ini menukar latensi untuk cakupan: perintah yang aturan izin akan setujui secara instan sekarang menunggu keputusan pengklasifikasi, dan setiap perintah shell dihitung sebagai panggilan pengklasifikasi.

Pengaturan hanya berlaku saat auto mode aktif, dan aturan izin Anda berperilaku normal dalam mode izin lainnya.

Periksa default dan konfigurasi efektif Anda

Tiga subperintah CLI membantu Anda memeriksa dan memvalidasi konfigurasi Anda.

Cetak aturan environment, allow, soft_deny, dan hard_deny bawaan sebagai JSON:

claude auto-mode defaults

Cetak apa yang sebenarnya digunakan pengklasifikasi sebagai JSON, dengan pengaturan Anda diterapkan di mana diatur dan default sebaliknya:

claude auto-mode config

Dapatkan umpan balik AI tentang aturan allow, soft_deny, dan hard_deny kustom Anda:

claude auto-mode critique

Jalankan claude auto-mode config setelah menyimpan pengaturan Anda untuk mengonfirmasi bahwa aturan efektif adalah apa yang Anda harapkan, dengan "$defaults" diperluas di tempat. Jika Anda telah menulis aturan kustom, claude auto-mode critique meninjau mereka dan menandai entri yang ambigu, berlebihan, atau mungkin menyebabkan false positif.

Jika Anda perlu menghapus atau menulis ulang aturan bawaan daripada menambahkan di sampingnya, simpan output claude auto-mode defaults ke file, edit daftarnya, dan tempel hasilnya ke file pengaturan Anda sebagai pengganti "$defaults".

Tinjau penolakan

Ketika auto mode menolak panggilan alat, penolakan dicatat di /permissions di bawah tab Recently denied. Tekan r pada tindakan yang ditolak untuk menandainya untuk retry: ketika Anda keluar dari dialog, Claude Code mengirim pesan memberi tahu model itu dapat retry panggilan alat itu dan melanjutkan percakapan.

Dalam Claude Code v2.1.193 dan lebih baru, alasan pengklasifikasi untuk setiap penolakan muncul bersama panggilan alat yang diblokir dalam transkrip, dalam notifikasi penolakan, dan di bawah setiap entri pada tab Recently denied. Gunakan alasan untuk memutuskan apakah perbaikannya adalah entri environment, pengecualian allow, atau retry dengan niat eksplisit dalam pesan Anda berikutnya.

Penolakan berulang untuk tujuan yang sama biasanya berarti pengklasifikasi kehilangan konteks. Tambahkan tujuan itu ke autoMode.environment, kemudian jalankan claude auto-mode config untuk mengonfirmasi itu berlaku.

Untuk bereaksi terhadap penolakan secara terprogram, gunakan hook PermissionDenied.

Lihat juga

  • Permission modes: apa itu auto mode, apa yang diblokir secara default, dan cara mengaktifkannya
  • Pengaturan terkelola: sebarkan konfigurasi autoMode di seluruh organisasi Anda
  • Permissions: aturan izin, tanya, dan tolak yang berlaku sebelum pengklasifikasi berjalan
  • Settings: referensi pengaturan lengkap, termasuk kunci autoMode