Langsung ke konten utama
Halaman referensi ini mencantumkan setiap kunci yang dibaca Claude Code dari file pengaturan, ditambah kelompok kunci pendek yang disimpannya di ~/.claude.json sebagai gantinya. Untuk memilih file, atau memeriksa prioritas, mulai dengan File pengaturan dan prioritas.

Indeks pengaturan

Setiap kunci di bawah ini tertaut ke entrinya. Cakupan mencantumkan file tempat kunci tersebut dapat ditempatkan: User adalah ~/.claude/settings.json, Project adalah .claude/settings.json, Local adalah .claude/settings.local.json, dan Managed adalah apa yang di-deploy oleh organisasi Anda. File apa pun berarti keempatnya, dan Global config berarti ~/.claude.json.

Model dan respons

Pilih model mana yang digunakan Claude Code dan bagaimana ia merespons. Untuk mengetahui bagaimana pengaturan ini berinteraksi dengan perintah /model dan environment variable, lihat Konfigurasi model.

advisorModel

Pilih model mana yang menjawab ketika Claude memanggil advisor tool sisi server. Hapus nilainya untuk mematikan advisor. Advisor harus setidaknya sama mampunya dengan model utama Anda. Lihat Memilih model advisor untuk pasangan yang diterima dan apa yang terjadi ketika Anda memilih pasangan yang tidak diterima. Anda biasanya tidak mengedit kunci ini secara manual. Jalankan /advisor untuk membuka pemilih yang menampilkan pilihan saat ini, model yang dapat menjadi advisor, dan No advisor. Claude Code menyimpan pilihan Anda ke kunci ini di ~/.claude/settings.json. Jika Anda memilih dari klien Remote Control atau dalam sesi yang terhubung ke worker jarak jauh, pilihan tersebut hanya berlaku untuk sesi itu dan tidak mengubah kunci ini. Jika akun Anda memerlukan persetujuan kredit penggunaan, terima terlebih dahulu dengan menjalankan /model fable. Sebelum Anda melakukannya, memilih Fable di /advisor tidak menyimpan apa pun dan Claude Code meminta Anda menjalankan /model fable terlebih dahulu.
  • Cakupan: Any file
  • Tipe: string, salah satu alias "fable", "opus", atau "sonnet", yang di-resolve ke versi default Claude Code saat ini dari keluarga model tersebut, atau ID model lengkap seperti "claude-opus-5-5"
  • Default: tidak diatur, sehingga advisor mati
  • Override per sesi: --advisor diutamakan daripada kunci ini untuk satu sesi. CLAUDE_CODE_DISABLE_ADVISOR_TOOL mematikan advisor, dan kunci ini tidak dapat menyalakannya kembali
settings.json
Kunci ini tidak berpengaruh pada penyedia yang advisor-nya tidak tersedia, seperti Amazon Bedrock. Pada Claude Platform on AWS, kunci ini memerlukan Claude Code v2.1.300 atau yang lebih baru. "fable" memerlukan akses Fable.

alwaysThinkingEnabled

Matikan extended thinking untuk setiap sesi dengan mengatur ini ke false. Thinking aktif secara default, sehingga true tidak mengubah apa pun. Kebanyakan orang mengatur ini melalui /config daripada mengedit file. Pada model yang selalu melakukan thinking, seperti Opus 5.5, Sonnet 5.5, Haiku 5.5, dan model Fable, false tidak berpengaruh. Pada penyedia pihak ketiga Claude Code menghilangkan parameter thinking alih-alih mematikan thinking, sehingga model adaptive-reasoning mungkin tetap melakukan thinking. Dengan thinking dimatikan pada Anthropic API, Claude Code mengirim effort high alih-alih tingkat yang lebih tinggi ke model yang diketahuinya tidak menerima kombinasi tersebut, seperti Opus 5.
  • Cakupan: Any file
  • Tipe: Boolean
    • true: tidak berpengaruh; thinking sudah aktif
    • false: Claude Code mematikan extended thinking untuk setiap sesi
  • Default: tidak diatur, sehingga thinking aktif untuk model yang mendukungnya
  • Override per sesi: MAX_THINKING_TOKENS diutamakan daripada kunci ini untuk satu sesi: 0 mematikan thinking, dengan batasan model dan penyedia yang sama seperti false, dan nilai positif menyalakan thinking bahkan ketika kunci ini false. Pada model adaptive-reasoning, angka itu sendiri diabaikan
settings.json

availableModels

Batasi model mana yang dapat dipilih orang untuk sesi utama, subagent, skills, dan advisor. Daftar terkelola membatasi /model, --model, dan kunci model di file milik developer sendiri; model di luar daftar tidak dapat dipilih. Dengan pencocokan prefiks default, ini tidak menyentuh opsi Default dengan sendirinya; pasangkan dengan enforceAvailableModels untuk itu.
  • Cakupan: Any file. Deploy di pengaturan terkelola untuk memberlakukannya bagi organisasi.
  • Tipe: array alias atau ID model
  • Default: tidak diatur, sehingga setiap model tersedia
Contoh ini hanya mengizinkan orang memilih model Sonnet dan Haiku:
settings.json
Entri ID model seperti "claude-opus-5" juga mengizinkan versi yang lebih baru yang memperluasnya, seperti Opus 5.5. Untuk memblokir salah satu versi tersebut, gunakan deniedModels. Agar setiap entri ID model hanya mengizinkan versi yang disebutkannya, gunakan availableModelsMatch. Lihat Membatasi pemilihan model. Untuk ID penyedia pihak ketiga, lihat Menyematkan model untuk deployment pihak ketiga.

availableModelsMatch

Pilih cara entri availableModels mencocokkan ID model. Secara default, entri ID model juga mengizinkan versi yang lebih baru yang memperluasnya, sehingga "claude-opus-5" mengizinkan Opus 5.5. Dengan "exact", setiap entri ID model hanya mengizinkan versi yang disebutkannya, sehingga versi yang lebih baru dari model tersebut tetap diblokir sampai Anda mencantumkannya. Memerlukan Claude Code v2.1.283 atau yang lebih baru.
  • Cakupan: Managed. Claude Code mengabaikan kunci ini di pengaturan user, project, dan local serta di --settings, dengan peringatan
  • Tipe: string, salah satu dari:
    • "prefix": entri ID model mengizinkan versinya dan ID model apa pun yang memperluasnya dengan segmen lain
    • "exact": entri ID model hanya mengizinkan versi yang disebutkannya, sehingga "claude-opus-5" mengizinkan Opus 5 tetapi tidak claude-opus-5-5. Entri seperti "claude-opus-4-5" juga mengizinkan ID model Anthropic bertanggalnya claude-opus-4-5-20251101. Alias keluarga seperti "opus" tetap mengizinkan seluruh keluarga, dan entri best, opusplan, serta default diabaikan
  • Default: "prefix"
Contoh ini mengizinkan Opus 5 dan Sonnet 5 tanpa rilis yang lebih baru dari keduanya:
managed-settings.json
Dengan "exact", opsi Default juga dibatasi pada model yang tercantum setiap kali daftar menyebutkan setidaknya satu model atau keluarga. Lihat Memblokir model atau versi tertentu.

deniedModels

Blokir model tertentu, dengan atau tanpa allowlist availableModels dan bahkan ketika daftar tersebut mengizinkannya. Claude Code menyembunyikan model yang diblokir dari pemilih /model, dan model tersebut tidak dapat dipilih di mana pun availableModels diberlakukan. Sesi pada opsi Default juga tidak menjalankan model yang diblokir, seperti yang dijelaskan di Memblokir model atau versi tertentu. Memerlukan Claude Code v2.1.283 atau yang lebih baru.
  • Cakupan: Managed. Claude Code mengabaikan kunci ini di pengaturan user, project, dan local serta di --settings, dengan peringatan
  • Tipe: array alias atau ID model
    • Alias keluarga seperti "opus" memblokir setiap model dalam keluarga tersebut
    • ID model seperti "claude-opus-5-5" memblokir versi tersebut dalam setiap penulisan, termasuk ID bertanggal dan ID khusus penyedia
    • ID model tanpa versi minor, seperti "claude-opus-5", juga memblokir versi minor yang lebih baru seperti Opus 5.5. Tulis "claude-opus-5-0" untuk memblokir Opus 5 saja
    • Entri best, opusplan, dan default diabaikan
  • Default: tidak diatur, sehingga tidak ada model yang diblokir
Contoh ini mengizinkan model Opus dan Sonnet serta memblokir Opus 5.5:
managed-settings.json
Lihat Memblokir model atau versi tertentu.

effortLevel

Atur tingkat effort default untuk model yang belum Anda simpan tingkatnya. Tingkat yang lebih rendah lebih cepat dan lebih murah untuk tugas yang sederhana, dan tingkat yang lebih tinggi bernalar lebih mendalam pada masalah yang kompleks. Ketika Anda menjalankan /effort low, medium, high, atau xhigh dalam sesi interaktif di mesin Anda, Claude Code menyimpan tingkat tersebut untuk model aktif di bawah modelSettings alih-alih menulis kunci ini. Sebelum v2.1.251, /effort menulis kunci ini. Dalam file pengaturan yang sama, Claude Code menggunakan tingkat tersimpan milik model alih-alih kunci ini. modelSettings menjelaskan prioritas lintas file. Dalam sesi yang terhubung ke worker jarak jauh, dalam eksekusi -p, dan di Agent SDK, /effort hanya berlaku untuk sesi tersebut. Menyesuaikan tingkat effort mencantumkan pilihan interaktif yang juga hanya berlaku untuk sesi tersebut. Pesan yang dicetak /effort menyebutkan mana yang terjadi.
  • Cakupan: Any file
  • Tipe: string, salah satu dari:
    • "low": penalaran paling sedikit, untuk tugas singkat, terbatas, dan sensitif terhadap latensi yang tidak sensitif terhadap kecerdasan
    • "medium": mengurangi penggunaan token untuk pekerjaan yang sensitif terhadap biaya yang dapat mengorbankan sebagian kecerdasan
    • "high": menyeimbangkan penggunaan token dan kecerdasan
    • "xhigh": penalaran lebih mendalam dengan pengeluaran token yang lebih tinggi
  • Default: tidak diatur
  • Override per sesi: --effort diutamakan daripada kunci ini untuk satu sesi, dan CLAUDE_CODE_EFFORT_LEVEL diutamakan daripada keduanya
settings.json
Di file pengaturan user Anda, ~/.claude/settings.json, kunci ini adalah bentuk lama yang ditulis /effort sebelum menyimpan tingkat per model, dan kunci ini tetap berlaku di tempat sebelumnya berlaku, pada Opus 5, Fable 5.1, dan model yang lebih lama. Opus 5.5 dan model yang dirilis setelahnya mengabaikannya dan dimulai pada default masing-masing sampai Anda menyimpan tingkat untuk model tersebut, yang ditulis /effort di bawah modelSettings. Di pengaturan project, local, dan terkelola, serta dengan --settings, kunci ini berlaku untuk setiap model.

enforceAvailableModels

Pemilih /model memiliki opsi Default, dan pengaturan model default menjelaskan model yang menjadi hasil resolve-nya. Allowlist availableModels membatasi model yang dapat Anda sebutkan, tetapi dengan pencocokan prefiks default, allowlist tersebut tidak memetakan ulang default tipe akun Anda, sehingga Default masih dapat di-resolve ke model di luar daftar. Kunci ini menutup celah tersebut. Memerlukan Claude Code v2.1.175 atau yang lebih baru. Ketika organisasi Anda men-deploy pengaturan terkelola apa pun, Claude Code membaca kunci ini hanya dari sumber terkelola dan mengabaikannya di file Anda yang lain. Untuk cara kunci ini berlaku pada pemeriksaan model saat startup, lihat Amazon Bedrock dan Google Cloud’s Agent Platform.
  • Cakupan: Any file
  • Tipe: Boolean
    • true: ketika Default akan di-resolve ke model di luar availableModels, Claude Code me-resolve-nya ke model tersedia pertama dalam daftar
    • false: kunci ini tidak mengubah cara Default di-resolve
  • Default: false
Contoh ini membatasi pilihan bernama ke model Sonnet dan Haiku dan membuat Default di-resolve ke yang pertama di antara keduanya yang tersedia:
settings.json
Kunci ini tidak berpengaruh ketika availableModels tidak diatur atau kosong. Lihat Memberlakukan allowlist untuk model Default. Memerlukan Claude Code v2.1.175 atau yang lebih baru.

fallbackModel

Sebutkan model cadangan yang akan dicoba Claude Code, secara berurutan, ketika model utama Anda kelebihan beban atau tidak tersedia. Claude Code beralih ke model tersedia berikutnya dalam rantai untuk sisa giliran dan menampilkan pemberitahuan. Tanpa rantai, Claude Code mencoba ulang model yang sama lalu menampilkan error dari server, dan Anda mencoba ulang atau beralih model sendiri. Peralihan berarti satu giliran dengan prompt cache yang dingin pada model fallback; pesan Anda berikutnya mencoba model utama terlebih dahulu lagi.
  • Cakupan: Any file
  • Tipe: array alias atau ID model; "default" diperluas menjadi model default
  • Default: tidak diatur, sehingga permintaan yang gagal tidak dicoba ulang pada model lain
  • Override per sesi: --fallback-model diutamakan daripada kunci ini untuk satu sesi
Contoh ini mencoba Sonnet 5 terlebih dahulu, lalu Haiku 4.5, ketika model utama Anda gagal:
settings.json
Tidak seperti kebanyakan pengaturan array, kunci ini tidak digabungkan lintas file pengaturan: file dengan prioritas tertinggi yang mendefinisikannya menyediakan seluruh rantai. Jika file project Anda mengatur ["claude-sonnet-5"] dan file user Anda mengatur ["claude-haiku-4-5"], rantainya hanya ["claude-sonnet-5"]. Claude Code menyimpan paling banyak tiga model berbeda yang diizinkan dari daftar dan mengabaikan sisanya. Lihat Rantai model fallback.

fastMode

Aktifkan fast mode untuk sesi di mana fitur ini tersedia, untuk pekerjaan interaktif seperti iterasi cepat atau debugging langsung di mana Anda menginginkan kecepatan dengan biaya per token yang lebih tinggi. Anda biasanya tidak mengedit kunci ini secara manual. Menjalankan /fast menulis fastMode: true ke ~/.claude/settings.json, dan menjalankannya lagi untuk mematikan fast mode akan menghapus kunci tersebut. Pada Anthropic API, hanya Fable 5.2, Opus 5.5, Opus 5, dan Opus 4.8 yang mendukung fast mode. Menjalankan /fast dari model lain akan mengalihkan Anda ke Opus, dan beralih ke model yang tidak didukung akan mematikan fast mode. Lihat Beralih model saat fast mode aktif. Pada Google Cloud’s Agent Platform, /fast mengalihkan Anda ke Fable 5.2 sebagai gantinya dan tidak menulis kunci ini, dan Claude Code mengabaikan true yang tersimpan.
settings.json

fastModePerSessionOptIn

Biasanya, menjalankan /fast menyimpan fastMode ke pengaturan user seseorang, sehingga sesi baru pada model yang didukung dimulai dengan fast mode aktif. Pada Fable 5.2, hal itu hanya terjadi jika mereka mengaktifkannya saat menggunakan Fable 5.2. Agar setiap orang menjalankan /fast di setiap sesi yang menginginkannya, atur kunci ini ke true. Claude Code membiarkan fastMode di file mereka, sehingga mematikan kunci ini memulihkan perilaku lama. Owner pada paket Team atau Enterprise dapat men-deploy-nya ke seluruh organisasi melalui pengaturan terkelola server. Ketika pengaturan terkelola mengatur kunci ini, /fast on ditolak di luar sesi terminal interaktif dan melaporkan bahwa organisasi Anda telah menonaktifkan fast mode. Hal itu mencakup mode non-interaktif, ekstensi VS Code, dan sesi cloud.
  • Cakupan: Any file
  • Tipe: Boolean
    • true: fastMode: true yang tersimpan tidak lagi mengaktifkan fast mode saat sesi dimulai, sehingga setiap orang menjalankan /fast di setiap sesi yang menginginkannya; fastMode: true yang diberikan dengan --settings tetap berlaku untuk sesi tersebut kecuali pengaturan terkelola mengatur kunci ini
    • false: fastMode: true yang tersimpan berfungsi seperti yang dijelaskan fastMode
  • Default: false
settings.json
Lihat Mewajibkan opt-in per sesi.

language

Buat Claude merespons dalam bahasa selain bahasa Inggris secara default. Tidak ada daftar tetap untuk respons: Claude Code meneruskan nilai apa adanya ke Claude sebagai instruksi untuk selalu merespons dalam bahasa tersebut, sehingga nama bahasa apa pun yang dapat dibaca Claude akan berfungsi. Claude Code tidak memeriksa nilainya, sehingga nama yang salah eja sampai ke Claude sebagaimana ditulis alih-alih menghasilkan error. Nilai yang sama mengatur bahasa untuk dikte suara, yang memang memiliki daftar tetap bahasa dikte yang didukung, dan untuk judul sesi yang dibuat otomatis.
  • Cakupan: Any file
  • Tipe: string, nama bahasa apa pun, seperti "japanese", "spanish", atau "french"; Claude Code tidak memvalidasinya
  • Default: tidak diatur; judul sesi kemudian mengikuti bahasa percakapan Anda
settings.json

maxEffortLevel

Batasi tingkat effort yang dapat digunakan sesi, dengan tetap menyediakan tingkat yang lebih rendah. Tingkat yang lebih tinggi akan berjalan pada batas tersebut, termasuk yang berasal dari /effort, pemilih /model, --effort, CLAUDE_CODE_EFFORT_LEVEL, frontmatter effort milik skill atau subagent, atau default milik model itu sendiri. Claude Code menerapkan batas itu sendiri sebelum setiap permintaan, sehingga batas tersebut berlaku di setiap penyedia, termasuk Amazon Bedrock, Google Cloud’s Agent Platform, dan Microsoft Foundry. Memerlukan Claude Code v2.1.267 atau yang lebih baru.
  • Cakupan: Any file. Deploy di pengaturan terkelola untuk memberlakukannya bagi organisasi. Ketika beberapa cakupan mengatur batas, batas terendah yang berlaku, sehingga batas yang diatur di satu cakupan tidak dapat dinaikkan dari cakupan lain
  • Tipe: string, salah satu dari "low", "medium", "high", "xhigh", atau "max". Nilai "max" tidak mengatur batas
  • Default: tidak diatur, sehingga tidak ada batas yang berlaku
  • Batas per model: tambahkan maxEffortLevel ke entri modelSettings milik model. Entri tersebut menggantikan kunci ini untuk model itu hanya dalam sumber pengaturan yang mengatur keduanya, seperti pengaturan user Anda atau satu sumber terkelola. Atur "max" di sana untuk membebaskan model dari batas sumber tersebut; Claude Code tetap menerapkan batas dari sumber lain
Contoh ini membatasi setiap model pada medium dan membebaskan Sonnet 4.6:
settings.json
Ketika organisasi Anda juga mengatur batas effort untuk suatu model, batas yang lebih rendah dari keduanya yang berlaku.

model

Atur model yang digunakan setiap sesi baru, sehingga Anda tidak perlu memilihnya dengan /model setiap kali. Mengaturnya di sini tidak menghalangi Anda beralih di tengah sesi. Jika admin Anda mengatur model default organisasi untuk menimpa pilihan user, Anda mendapatkan model tersebut bahkan ketika Anda mengatur kunci ini di pengaturan user, project, atau local.
  • Cakupan: Any file
  • Tipe: string, alias model atau ID model lengkap
  • Default: tidak diatur, sehingga Claude Code menggunakan model default akun Anda
  • Override per sesi: --model diutamakan daripada ANTHROPIC_MODEL, dan keduanya diutamakan daripada kunci ini untuk satu sesi, termasuk daripada model terkelola; daftar availableModels tetap berlaku untuk pilihan tersebut
settings.json
Nilai di sini memiliki prioritas lebih tinggi daripada ANTHROPIC_DEFAULT_MODEL, yang hanya digunakan Claude Code ketika tidak ada hal lain yang memilih model.

modelOverrides

Petakan ID model Anthropic ke ID model khusus penyedia, seperti ARN inference profile Amazon Bedrock. Setiap entri pemilih model kemudian menggunakan nilai yang dipetakan saat memanggil API penyedia. Administrator menggunakan ini pada Amazon Bedrock, Google Cloud’s Agent Platform, dan Microsoft Foundry untuk merutekan setiap versi model ke inference profile, nama versi, atau deployment tertentu untuk tata kelola, alokasi biaya, atau perutean regional.
  • Cakupan: Any file
  • Tipe: objek yang memetakan ID model ke ID model penyedia
  • Default: tidak diatur
Contoh ini merutekan setiap panggilan untuk Opus 4.6 ke inference profile Bedrock yang disebutkan:
settings.json
Lihat Menimpa ID model per versi.

modelPicker

Cantumkan model yang ditawarkan pemilih /model, dalam urutan yang Anda tulis dan dengan label yang Anda pilih, sehingga pemilih mencantumkan model yang dijalankan organisasi Anda, setelah jajaran bawaan atau sebagai penggantinya. model setiap baris diambil apa adanya, sehingga menerima apa pun yang diterima --model: alias seperti opus, ID model Anthropic, atau ID berformat penyedia untuk Amazon Bedrock, Google Cloud’s Agent Platform, Microsoft Foundry, atau LLM gateway. Memerlukan Claude Code v2.1.242 atau yang lebih baru.
  • Cakupan: User or managed. Claude Code membaca kunci ini dari pengaturan terkelola, --settings, dan pengaturan user, serta mengabaikannya di pengaturan project dan local sehingga repositori yang Anda clone tidak dapat melabeli ulang pemilih. Yang tertinggi dari ketiganya yang mengatur kunci ini menyediakan seluruh jajaran, dan Claude Code tidak pernah menggabungkan jajaran dari dua sumber.
  • Tipe: objek dengan array baris options dan Boolean replaceBuiltInOptions opsional
  • Default: tidak diatur, sehingga pemilih menampilkan jajaran bawaan
Contoh ini menambahkan dua deployment Bedrock setelah jajaran bawaan, dengan nama yang dikenali tim Anda:
managed-settings.json

Field untuk modelPicker

Kunci ini menerima dua field, satu untuk baris itu sendiri dan satu untuk menentukan apakah baris tersebut menggantikan jajaran bawaan atau menambahkannya. Entri di options juga dapat membawa string behavesAs opsional di samping model-nya, yang memerlukan v2.1.257 atau yang lebih baru. Atur ke ID model yang sudah dikenali versi Claude Code Anda, seperti claude-opus-4-8, pada entri yang model-nya lebih baru dari versi Anda. Claude Code kemudian menerapkan kemampuan dan default effort model yang dikenal tersebut ke entri alih-alih memperlakukan modelnya sebagai tidak dikenal. Label entri dan ID model yang dikirim Claude Code dalam permintaan tidak berubah. Dengan replaceBuiltInOptions aktif, Claude Code menyembunyikan setiap baris lainnya: jajaran bawaan, baris yang ditambahkannya untuk entri availableModels, model yang ditemukan penemuan gateway, dan ANTHROPIC_CUSTOM_MODEL_OPTION. Dengan opsi ini mati, Claude Code melewati model tercantum yang sudah dicakup jajaran bawaan. Label mengubah apa yang ditampilkan pemilih, bukan model mana yang dijalankan Claude Code. Allowlist availableModels tetap berlaku untuk baris-baris ini. Sebelum Anda menambahkan model tercantum ke allowlist, baca Perilaku penggabungan: ID model tertentu mempersempit entri wildcard keluarganya. Claude Code juga memeriksa setiap baris terhadap sesi sebelum menampilkan pemilih:
  • Dihapus: baris yang tidak dapat dilayani Claude Code, seperti model yang sudah dihentikan atau model yang tidak dapat diakses organisasi Anda
  • Berwarna abu-abu: baris yang belum dapat Anda pilih, ditampilkan beserta alasannya
  • Tidak ada baris yang tersisa: Claude Code mempertahankan jajaran bawaan, difilter oleh allowlist seperti biasa
Claude Code menghapus baris yang tidak dapat diurainya dan mempertahankan sisanya. Lihat Memperbaiki file pengaturan yang rusak.

modelPricing

Laporkan pengeluaran dengan tarif yang dibayar organisasi Anda alih-alih harga daftar. Atur ketika organisasi Anda memiliki tarif kontrak, sehingga angka dolar yang dilihat developer sesuai dengan tagihan Anda. Claude Code menerapkan tarif tersebut di /usage, baris status, total_cost_usd milik Agent SDK, batas --max-budget-usd, serta metrik dan event biaya OpenTelemetry. Anda yang menyediakan tarifnya: Claude Code tidak membacanya dari kontrak Anda atau Claude Console. Memerlukan Claude Code v2.1.242 atau yang lebih baru.
  • Cakupan: Managed. Deploy kunci ini melalui pengaturan terkelola server, kebijakan MDM, file managed-settings.json, atau policy helper. Claude Code mengabaikannya di pengaturan user, project, dan local, di --settings, dan di Windows pada registri HKCU yang dapat ditulis user. Dengan pengaturan terkelola server, setiap sesi melaporkan biaya dengan harga daftar sampai pengambilan pengaturan sesi tersebut telah mengonfirmasi pengaturan. Aplikasi host yang menyematkan Claude Code dan mengatur CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST dapat menyediakan tabelnya sendiri melalui opsi SDK managedSettings, yang digunakan Claude Code hanya ketika tidak ada sumber terkelola yang mengatur kunci ini dan hanya di Claude Code v2.1.246 atau yang lebih baru.
  • Tipe: objek dengan multiplier opsional dan map overrides opsional
  • Default: tidak diatur, sehingga Claude Code melaporkan harga daftar kecuali aplikasi host menyediakan tabel
Atur multiplier saja untuk diskon atau markup datar, overrides saja untuk tarif per model, atau keduanya. Contoh ini mengatur tarif kontrak untuk Sonnet 4.6 lalu mengurangi setiap angka, termasuk baris Sonnet, sebesar 15%:
managed-settings.json
Atur multiplier di atas 1, hingga 10, untuk menaikkan setiap angka. Markup memerlukan Claude Code v2.1.271 atau yang lebih baru. Versi sebelumnya mengabaikan multiplier di atas 1 dengan peringatan dan mempertahankan sisa pengaturan. Untuk langkah-langkahnya, termasuk cara mengonfirmasi bahwa tarif sudah berlaku, lihat Melaporkan pengeluaran dengan tarif kontrak Anda.

Field untuk modelPricing

Claude Code menggunakan tarif sebuah baris persis seperti yang Anda tulis, tanpa menambahkan biaya tambahan fast mode atau tarif inferensi khusus AS. Jika Anda juga mengatur multiplier, Claude Code menerapkannya di atas tarif baris tersebut. Claude Code menghapus baris dengan tarif yang tidak dapat diurainya, atau multiplier yang tidak dapat diurainya, dan mempertahankan sisanya; lihat Memperbaiki file pengaturan yang rusak.

Model mana yang dikenai baris modelPricing

Claude Code menentukan model mana yang dikenai sebuah baris berdasarkan kunci baris tersebut:
  • ID model bawaan: kunci yang digunakan Claude Code sendiri untuk model bawaan, baik kunci tersebut adalah ID model itu sendiri, seperti claude-sonnet-4-6, atau ID Bedrock, Agent Platform, atau Foundry-nya. Claude Code menerapkan baris tersebut ke setiap ID snapshot bertanggal dan ID khusus penyedia dari model tersebut.
  • Kunci lainnya: kunci yang bukan ID model bawaan, seperti alias model gateway. Claude Code menerapkan baris tersebut hanya ke satu ID itu. Ketika ID model cocok persis dengan salah satu kunci Anda dan juga termasuk dalam baris yang dikunci oleh ID model bawaan, Claude Code menggunakan yang cocok persis.
  • Application inference profile Bedrock: setelah Claude Code me-resolve profile ke model yang dirutekannya, melalui map modelOverrides Anda atau lookup bedrock:GetInferenceProfile, Claude Code menerapkan baris model tersebut ke profile.

modelSettings

Simpan tingkat effort untuk setiap model yang Anda gunakan. Memerlukan Claude Code v2.1.251 atau yang lebih baru. Dalam sesi interaktif di mesin Anda, ketika Anda menyimpan low, medium, high, atau xhigh sebagai default Anda dengan /effort atau slider effort pada pemilih /model, Claude Code menulis tingkat tersebut di sini di bawah model yang Anda gunakan, sehingga Anda jarang mengedit kunci ini sendiri. Ketika Anda memilih salah satu tingkat tersebut di pemilih model ekstensi VS Code, Claude Code menyimpannya di sini dengan cara yang sama. Entri effortLevel mencantumkan sesi di mana /effort hanya berlaku untuk sesi tersebut. Edit kunci ini secara manual untuk mengubah atau menghapus tingkat yang Anda simpan. effortLevel milik model di sini diutamakan daripada effortLevel tingkat atas di file pengaturan yang sama. Lintas file, Claude Code me-resolve setiap model secara terpisah: file pengaturan dengan prioritas tertinggi yang mengatur effortLevel untuk model tersebut atau effortLevel tingkat atas yang berlaku untuk model tersebut yang menentukan, sehingga effortLevel di pengaturan terkelola memiliki prioritas lebih tinggi daripada tingkat yang Anda simpan di pengaturan user. Menyesuaikan tingkat effort mencantumkan hal lain yang dapat menimpa tingkat tersimpan, seperti --effort saat peluncuran. Untuk membatasi effort satu model alih-alih mengatur tingkatnya, tambahkan field maxEffortLevel ke entri model tersebut. Field ini memerlukan Claude Code v2.1.267 atau yang lebih baru.
  • Cakupan: Any file
  • Tipe: objek yang memetakan nama model ke objek dengan satu atau beberapa field berikut:
    • effortLevel: salah satu dari "low", "medium", "high", atau "xhigh"
    • maxEffortLevel: tingkat effort tertinggi yang dapat digunakan model
    • autoCompactWindow: jumlah token dari 100000 hingga 1000000, atau "auto" untuk window yang disesuaikan untuk model tersebut. /autocompact menyimpan di sini. Untuk model tersebut, nilai ini diutamakan daripada autoCompactWindow tingkat atas di file pengaturan yang sama. Memerlukan Claude Code v2.1.288 atau yang lebih baru
  • Default: tidak diatur
Claude Code menulis setiap entri di bawah nama kanonis model, seperti claude-opus-5-5, dan mencocokkan alias, ID bersufiks tanggal, [1m], serta ID khusus penyedia yang dikenali dari model tersebut ke entri yang sama. Contoh ini mempertahankan Opus 5.5 pada high sementara model lain menggunakan tingkat tersimpan atau default masing-masing:
settings.json
Jalankan /effort auto untuk menghapus tingkat tersimpan untuk model yang Anda gunakan. Claude Code membiarkan entri lain dan effortLevel tingkat atas apa pun tetap di tempatnya.

outputStyle

Pilih gaya output berdasarkan nama. Gaya output adalah kumpulan instruksi tersimpan yang mengubah peran, nada, dan format output Claude, seperti gaya bawaan Explanatory dan Learning atau gaya yang Anda tulis sendiri. Jika Anda mengubah kunci ini selama sesi, Claude menggunakan gaya baru mulai dari pesan Anda berikutnya. Untuk biaya pesan tersebut dalam prompt caching, lihat Mengubah gaya output. Sebelum v2.1.251, perubahan hanya berlaku setelah Anda menjalankan /clear atau memulai sesi baru.
  • Cakupan: Any file
  • Tipe: string, nama gaya output bawaan atau kustom
  • Default: tidak diatur, sehingga Claude Code menggunakan gaya default
Contoh ini memilih gaya bawaan Explanatory, yang menambahkan wawasan edukatif di antara tugas:
settings.json

promptCacheTtl

Pilih berapa lama prompt cache menyimpan percakapan utama. Kunci ini berlaku untuk giliran interaktif, -p, dan Agent SDK Anda, bersama dengan helper yang dijalankan Claude Code secara inline bersamanya. Masa berlaku satu jam menjaga cache tetap hangat selama jeda yang lebih lama, dan API menagih setiap penulisan cache dengan tarif yang lebih tinggi dibandingkan masa berlaku lima menit. Memerlukan Claude Code v2.1.242 atau yang lebih baru. Contoh ini mempertahankan percakapan utama pada masa berlaku satu jam dan membiarkan subagent pada lima menit:
settings.json
Untuk biaya setiap masa berlaku, lihat Masa berlaku cache.

showThinkingSummaries

Lihat ringkasan extended thinking Claude dalam sesi interaktif. Atur ini jika Anda menginginkan ringkasan lengkap ketika Anda memperluas thinking dengan Ctrl+O. Ketika tidak diatur atau false, Anthropic API menyunting thinking block dan Claude Code menampilkan stub yang diciutkan.
  • Cakupan: Any file
  • Tipe: Boolean
    • true: Anda melihat ringkasan thinking lengkap ketika Anda memperluas thinking dengan Ctrl+O
    • false: Anthropic API menyunting thinking block dan Claude Code menampilkan stub yang diciutkan
  • Default: false
settings.json
Penyuntingan hanya mengubah apa yang Anda lihat, bukan apa yang dihasilkan model. Untuk mengurangi pengeluaran thinking, turunkan budget atau nonaktifkan thinking sebagai gantinya.

subagentPromptCacheTtl

Pilih berapa lama prompt cache menyimpan permintaan yang dibuat Claude Code di luar percakapan utama. Kunci ini berlaku untuk subagent, workflow, dan permintaan latar belakang serta helper milik Claude Code sendiri, seperti compaction dan judul sesi. Masa berlaku satu jam menjaga cache tetap hangat selama jeda yang lebih lama, dan API menagih setiap penulisan cache dengan tarif yang lebih tinggi dibandingkan masa berlaku lima menit. Memerlukan Claude Code v2.1.242 atau yang lebih baru. Contoh ini memberikan masa berlaku satu jam kepada subagent dan permintaan lain di luar percakapan utama:
settings.json
Kunci ini mencakup permintaan yang tidak dicakup promptCacheTtl, jadi atur keduanya untuk memilih masa berlaku bagi setiap permintaan yang dibuat Claude Code. Untuk perbedaan cache subagent dengan cache percakapan utama, lihat Subagent dan cache.

switchModelsOnFlag

Pilih apa yang terjadi ketika pengklasifikasi keamanan menandai permintaan: beralih ke model fallback dan melanjutkan, atau berhenti sejenak agar Anda dapat memilih antara beralih dan mengedit prompt.
  • Cakupan: Any file. Muncul di /config sebagai Switch models when a message is flagged, dengan opsi Switch automatically dan Ask each time.
  • Tipe: Boolean
    • true: Claude Code beralih ke model fallback dan melanjutkan
    • false: dalam sesi interaktif, Claude Code berhenti sejenak agar Anda dapat memilih antara beralih dan mengedit prompt; di tempat dialog tidak dapat ditampilkan, seperti eksekusi -p, permintaan yang ditandai berakhir sebagai error
  • Default: tidak diatur. Claude Code beralih secara otomatis, meskipun mungkin bertanya terlebih dahulu dalam sesi interaktif
settings.json
Lihat Bertanya sebelum beralih.

ultracode

Mulai sesi dengan ultracode aktif. Dengan opsi ini aktif, Claude merencanakan workflow untuk setiap tugas substantif alih-alih menunggu Anda memintanya. Claude merencanakan workflow hanya ketika dynamic workflows diaktifkan untuk Anda dan model Anda mendukung effort xhigh. Kunci ini tidak mengubah tingkat effort sesi: ultracode berjalan pada tingkat mana pun yang digunakan sesi. Claude Code membaca kunci ini tetapi tidak pernah menulisnya: /effort ultracode mengaktifkan ultracode hanya untuk sesi saat ini.
  • Cakupan: Any file
  • Tipe: Boolean
    • true: sesi dimulai dengan ultracode aktif ketika dynamic workflows diaktifkan untuk Anda dan model Anda mendukung xhigh
    • false: sesi dimulai dengan ultracode mati
  • Default: tidak diatur, sehingga ultracode mati
  • Override per sesi: /effort ultracode mengaktifkan ultracode untuk satu sesi tanpa kunci ini, dan /effort ultracode off mematikannya untuk satu sesi ketika kunci ini true. Flag --effort ultracode juga mengaktifkannya untuk satu sesi, pada effort xhigh
settings.json
Tingkat effort sesi berasal dari effortLevel, modelSettings, dan sumber effort lainnya, dan batas effort seperti maxEffortLevel menurunkan tingkat tersebut tanpa mematikan ultracode. Hal ini dan bentuk /effort ultracode off memerlukan Claude Code v2.1.284 atau yang lebih baru. Sebelum v2.1.284, ultracode: true menjalankan sesi pada effort xhigh, dan batas effort di bawah xhigh membuat ultracode tetap mati. Permintaan kontrol apply_flag_settings Agent SDK juga menerima kunci ini.

Pengaturan izin

Tentukan apa yang dapat dilakukan Claude tanpa bertanya, mode izin default untuk sesi baru, dan apa yang diizinkan pengklasifikasi auto mode. Untuk sintaks aturan dan model izin, lihat Konfigurasi izin.

allowManagedPermissionRulesOnly

Jadikan pengaturan terkelola satu-satunya sumber pengaturan aturan izin. Claude Code kemudian mengabaikan aturan allow, ask, dan deny dalam file pengguna, proyek, lokal, dan --settings, mengabaikan --allowedTools, menyembunyikan pilihan selalu-izinkan dalam dialog izin, dan berhenti menyimpan aturan baru. Ketika pengaturan induk dari host penyematan berlaku, Claude Code memperlakukan mereka sebagai bagian dari tingkat terkelola. Claude Code menghapus aturan allow dan additionalDirectories mereka, dan mempertahankan aturan deny dan ask mereka kecuali aturan Read dan Edit yang polanya dimulai dengan !. Host tidak dapat mengukir jalur dari aturan terkelola dengan aturan !, terlepas dari apakah Anda menetapkan kunci ini. Aturan --disallowedTools dan aturan deny dan ask sesi saat ini masih berlaku, termasuk setelah Claude Code memuat ulang pengaturan di tengah sesi. Mereka hanya membatasi, jadi mereka tidak dapat memperluas apa yang diberikan aturan terkelola. Sebelum v2.1.257, Claude Code menghapus aturan baris perintah dan sesi tersebut pada pemuatan ulang pengaturan pertama. Untuk apa yang dapat diukir pola ! dalam aturan --disallowedTools atau sesi, lihat aturan Read dan Edit. Ketika Anda menetapkan kunci ini, Claude Code v2.1.282 atau lebih baru juga mengabaikan frontmatter allowed-tools dalam skill dan file .claude/commands/ dari sumber-sumber berikut: Skill dari pengaturan terkelola dan skill bawaan tetap mempertahankan allowed-tools mereka. Plugin @inline di luar sesi Desktop tersebut juga tetap mempertahankannya, kecuali plugin yang bernama anthropic-skills. disallowed-tools milik skill tetap berlaku. Untuk apa yang dilihat pengembang ketika Claude Code mengabaikan field tersebut, lihat Ketika hanya aturan izin terkelola yang berlaku.
  • Scope: Managed
  • Type: Boolean
    • true: pengaturan terkelola menjadi satu-satunya sumber pengaturan aturan izin
    • false: Claude Code menerapkan aturan izin dari file pengguna, proyek, lokal, dan --settings selain yang terkelola
  • Default: tidak diatur, jadi Claude Code menerapkan aturan izin dari pengaturan pengguna, proyek, dan lokal serta dari --settings, selain yang terkelola
managed-settings.json
Kunci ini tidak mengunci allowlist server MCP; untuk itu, atur allowManagedMcpServersOnly. Lihat Pengaturan hanya terkelola.

autoMode

Tambahkan aturan Anda sendiri ke apa yang diblokir dan diizinkan oleh pengklasifikasi auto mode. Gunakan untuk memberi tahu pengklasifikasi repo, bucket, dan domain mana yang dipercaya organisasi Anda, sehingga berhenti memblokir operasi internal sehari-hari. Pengklasifikasi dilengkapi dengan aturan allow dan deny bawaan. Sertakan string literal "$defaults" dalam array untuk mempertahankan aturan bawaan tersebut pada posisi itu dan tambahkan milik Anda di sekitarnya; tinggalkan untuk menggantinya dengan milik Anda. Contoh ini mempertahankan aturan soft_deny bawaan, melalui "$defaults", dan menambahkan satu lagi yang memblokir terraform apply:
settings.json
Ketika lebih dari satu file tersebut menetapkan array yang sama, Claude Code menggabungkan entri. Untuk format aturan dan bagaimana setiap array diterapkan, lihat Konfigurasi auto mode.

autoMode.classifyAllShell

Kirim setiap perintah Bash dan PowerShell melalui pengklasifikasi auto mode saat auto mode aktif. Secara default, auto mode hanya menangguhkan aturan allow yang dapat menjalankan kode arbitrer: aturan untuk seluruh tool dan aturan wildcard seperti Bash(*), dan awalan interpreter atau shell-wrapper seperti Bash(python *). Perintah yang cocok dengan aturan allow lain, seperti Bash(npm test), melewati pengklasifikasi kecuali membawa domain yang diizinkan per-perintah. Ketika melewati, argumen destruktif yang tidak diantisipasi awalan aturan dapat lolos tanpa terlihat. Menetapkan kunci ini menangguhkan setiap aturan allow shell untuk sesi sehingga pengklasifikasi melihat setiap perintah. Memerlukan Claude Code v2.1.193 atau lebih baru.
  • Scope: User or managed. Dibaca di mana pun autoMode dibaca.
  • Type: Boolean
    • true: saat auto mode aktif, Claude Code mengirim setiap perintah Bash dan PowerShell melalui pengklasifikasi dan menangguhkan aturan allow shell Anda; di luar auto mode aturan masih berlaku
    • false: auto mode hanya menangguhkan aturan allow yang dapat menjalankan kode arbitrer, seperti Bash(*) dan Bash(python *); perintah yang cocok dengan aturan allow lain melewati pengklasifikasi kecuali membawa domain yang diizinkan per-perintah, dan setiap perintah shell lainnya melaluinya
  • Default: false
settings.json
Kunci ini bekerja secara berbeda dalam sesi Code Mode. Lihat Arahkan semua perintah shell melalui pengklasifikasi.

disableAutoMode

Hapus auto mode dari siklus Shift+Tab. Setiap sesi yang sebaliknya akan dimulai dalam auto mode, baik dari --permission-mode auto, file pengaturan, atau default bawaan, dimulai dalam default sebagai gantinya. Administrator menetapkannya dalam pengaturan terkelola untuk mencegah pengembang di organisasi mereka menggunakan auto mode.
  • Scope: Any file. Paling berguna dalam pengaturan terkelola, di mana pengguna tidak dapat menimpanya. Juga diterima di bawah permissions sebagai permissions.disableAutoMode.
  • Type: string "disable"
  • Default: tidak diatur
settings.json

permissions

Kontrol tool mana yang dapat digunakan Claude tanpa bertanya, tool mana yang meminta konfirmasi, dan tool mana yang diblokir. Atur juga mode izin default untuk sesi baru. Setiap kunci permissions.* di bawah bersarang di bawah objek ini.
  • Scope: Any file
  • Type: objek dengan allow, ask, deny, additionalDirectories, blockReadsOutsideWorkingDirectories, blockWritesOutsideWorkingDirectories, defaultMode, denyInsteadOfPrompting, disableBypassPermissionsMode, dan disableAutoMode
  • Default: tidak diatur
Contoh ini menyetujui perintah npm run tanpa bertanya, meminta konfirmasi sebelum git push, memblokir pembacaan .env, dan memulai sesi dalam acceptEdits:
settings.json
Tiga array aturan berbagi satu sintaks; lihat Sintaks aturan izin di bawah permissions.allow. Untuk bagaimana aturan izin dari file berbeda digabungkan, lihat bagaimana aturan izin digabungkan di seluruh cakupan; untuk bagaimana kunci pengaturan secara umum digabungkan, lihat Prioritas pengaturan pada panduan pengaturan.

useAutoModeDuringPlan

Pilih apakah Claude Code menggunakan pengklasifikasi auto mode untuk meninjau perintah shell dalam plan mode. Dengan default true, pengklasifikasi meninjau setiap perintah selama perencanaan ketika auto mode tersedia dan Anda tidak melihat permintaan izin, kecuali untuk penghapusan jalur kritis. Atur false untuk mendapatkan permintaan izin untuk setiap perintah di luar set read-only bawaan. Muncul dalam /config sebagai Use auto mode during plan.
  • Scope: User, local, or managed. Repositori tidak dapat mematikannya untuk Anda.
    • false di salah satu file ini atau di --settings mematikannya, kecuali Anda mengecualikan file pengguna atau lokal tersebut dengan opsi seperti --setting-sources. Mengabaikan file yang dikecualikan memerlukan Claude Code v2.1.314 atau lebih baru
  • Type: Boolean
    • true: sama dengan tidak diatur; ketika auto mode tersedia, pengklasifikasi meninjau perintah shell selama perencanaan
    • false: Anda mendapatkan permintaan izin untuk setiap perintah di luar set read-only bawaan
  • Default: true
settings.json

permissions.allow

Daftar penggunaan tool yang disetujui Claude Code tanpa bertanya kepada Anda. Dalam aturan MCP, * hanya dapat muncul dalam nama tool setelah awalan mcp__<server>__, seperti mcp__github__get_*; tidak dapat muncul dalam nama server.
  • Scope: Any file
  • Type: array string aturan izin
  • Default: tidak diatur
  • Per-session overrides: --allowedTools menambahkan aturan allow untuk satu sesi, dan aturan deny dari file pengaturan apa pun masih memblokir tool yang dinamainya
Contoh ini menyetujui git diff dan memungkinkan Claude Code membaca .zshrc Anda tanpa bertanya:
settings.json
Claude Code menerapkan aturan allow dari .claude/settings.json proyek hanya setelah Anda menerima dialog kepercayaan workspace untuk folder itu.

Sintaks aturan izin

Aturan izin mengikuti format Tool atau Tool(specifier). Claude Code mengevaluasi aturan deny terlebih dahulu, kemudian ask, kemudian allow, dan kecocokan pertama memutuskan terlepas dari seberapa spesifik setiap aturan; lihat urutan evaluasi aturan izin. Setiap baris menunjukkan satu bentuk aturan dan apa yang cocok dengannya. Untuk sintaks aturan lengkap, termasuk perilaku wildcard, pola khusus tool untuk aturan Read, Edit, WebFetch, MCP, dan Agent, serta keterbatasan keamanan pola Bash, lihat Sintaks aturan izin.

permissions.ask

Daftar penggunaan tool yang meminta konfirmasi Anda bahkan dalam mode izin yang sebaliknya akan menyetujuinya, seperti acceptEdits atau bypassPermissions. Dalam mode dontAsk Claude Code menolak penggunaan tool yang cocok alih-alih meminta konfirmasi.
  • Scope: Any file
  • Type: array string aturan izin
  • Default: tidak diatur
settings.json

permissions.deny

Daftar penggunaan tool yang diblokir Claude Code. Gunakan untuk file yang menyimpan kunci API, rahasia, atau nilai lingkungan: Claude Code mengecualikan file yang cocok dari penemuan file dan hasil pencarian, menolak pembacaannya, dan memblokir tool Edit dan Write pada jalur yang cocok. Aturan deny Read dan Edit berlaku untuk tool file bawaan Claude, untuk perintah file yang dikenali Claude Code dalam Bash, seperti cat, head, tail, sed, dan tee, dan untuk target pengalihan Bash seperti > file dan < file; aturan tersebut tidak berlaku untuk perintah yang membaca file tanpa menamakannya, seperti grep -r pattern ., atau untuk subprocess arbitrer, jadi untuk penegakan tingkat OS aktifkan sandbox.
  • Scope: Any file
  • Type: array string aturan izin
  • Default: tidak diatur
  • Per-session overrides: --disallowedTools menambahkan aturan deny untuk satu sesi bersama kunci ini
Contoh ini menolak pembacaan file .env, direktori secrets, dan file kredensial, serta memblokir perintah curl:
settings.json
Nama tool menerima pola glob, jadi "*" memblokir setiap tool dan "mcp__*" memblokir setiap tool MCP. Claude Code mengabaikan aturan deny untuk tool EndConversation selama tool lain masih tersedia untuk Claude. Aturan deny Bash cocok dengan perintah seperti yang ditulis Claude, jadi Bash(curl *) tidak menghentikan /usr/bin/curl atau sh -c 'curl …'; lihat apa yang tidak cocok dengan aturan Bash. Kunci ini menggantikan konfigurasi ignorePatterns yang sudah deprecated.

permissions.additionalDirectories

Berikan akses file kepada Claude ke direktori di luar direktori tempat Anda memulai, sebagai direktori kerja tambahan. Sebagian besar konfigurasi .claude/ tidak ditemukan dari direktori ini.
  • Scope: Any file, dengan batasan pada akses tulis sandbox yang diberikan oleh entri proyek dan lokal
  • Type: array jalur direktori
  • Default: tidak diatur
  • Per-session overrides: --add-dir dan /add-dir menambahkan direktori untuk satu sesi bersama kunci ini
settings.json
Seperti aturan allow, entri dalam .claude/settings.json proyek berlaku hanya setelah Anda menerima dialog kepercayaan workspace untuk folder itu.

permissions.blockReadsOutsideWorkingDirectories

Buat tool file Claude menolak pembacaan di luar direktori kerja Anda dalam setiap mode izin, termasuk bypassPermissions. Claude Code menolak panggilan Read, Grep, Glob, dan LSP pada jalur tersebut dan memberi tahu Claude untuk meminta Anda menambahkan direktori dengan /add-dir. File yang dibutuhkan Claude Code sendiri tetap dapat dibaca, seperti skill, plugin, aturan, agent, perintah Anda, dan file memori CLAUDE.md di bawah ~/.claude/. Memerlukan Claude Code v2.1.257 atau lebih baru. Claude Code tidak menolak perintah shell dengan cara yang sama: Perintah Bash yang tidak dapat dilacak oleh parser shell, seperti yang mengubah direktori lebih dari sekali atau menjalankan subshell, meminta konfirmasi Anda bahkan dalam auto mode dan mode bypassPermissions. Permintaan izin muncul bahkan ketika perintah tidak menamai jalur apa pun di luar direktori kerja. Permintaan izin ini tidak berlaku ketika perintah berjalan dalam sandbox dan sandbox memberlakukan blokir. Claude Code juga menulis true di sini ketika Anda memilih untuk memblokir pembacaan tersebut pada permintaan izin auto mode sebelum pembacaan pertama di luar direktori kerja.
  • Scope: Any file. true di file apa pun berlaku, jadi repositori dapat mengaktifkan blokir untuk dirinya sendiri tetapi tidak dapat mengangkat blokir Anda.
  • Type: Boolean
    • true: tool file Claude menolak pembacaan di luar direktori kerja
    • false: sama dengan tidak diatur; blokir masih berlaku jika file lain menetapkan true
  • Default: tidak diatur, jadi pembacaan di luar direktori kerja mengikuti mode izin Anda
settings.json
Untuk mengangkat blokir, hapus kunci dari setiap file pengaturan yang menetapkannya, kemudian mulai ulang setiap sesi yang sedang berjalan. Direktori yang Anda tambahkan dengan --add-dir, /add-dir, atau additionalDirectories dalam pengaturan pengguna atau terkelola Anda dihitung sebagai direktori kerja untuk blokir. Direktori yang ditambahkan hanya dalam pengaturan repositori tidak dihitung: yang ada di .claude/settings.json, dan yang ada di .claude/settings.local.json kecuali git melaporkan file itu sebagai tidak dilacak. Dalam direktori yang bukan repositori git, atau ketika git melacak file tersebut, Claude Code memperlakukan .claude/settings.local.json sebagai pengaturan repositori, jadi letakkan direktori yang ingin tetap dapat dibaca dalam pengaturan pengguna Anda sebagai gantinya. Ketika autoMemoryDirectory berasal dari .claude/settings.json proyek, atau dari .claude/settings.local.json yang diperlakukan sebagai disediakan repositori, Claude Code tidak memuat auto memory apa pun dari direktori itu dan tidak menyimpan apa pun ke dalamnya.

Perintah sandboxed di bawah blokir

Ketika sandboxing aktif, blokir juga mencakup perintah sandboxed. Claude Code menolak akses baca perintah tersebut ke direktori home Anda dan ke akar lain yang menyimpan file pengguna: /Users, /home, /root, /Volumes, /mnt, /media, /run/media, dan /srv. Kemudian Claude Code membuka kembali direktori kerja, worktree yang dibuat Claude Code dalam sesi, direktori temp sesi, dan bagian dari ~/.claude yang dibutuhkan perintah, seperti skill dan plugin. Saat blokir berlaku, entri allowRead dan allowWrite dari pengaturan repositori tidak dihitung. Ketika direktori kerja sesi adalah git worktree yang ditautkan, termasuk yang dimasuki Claude Code di tengah sesi, direktori .git umum repositori tetap dapat dibaca dan ditulis oleh perintah sandboxed, sehingga git terus bekerja di sana. Dalam kasus-kasus ini blokir tidak menjangkau perintah sandboxed, sementara tool file Claude terus memberlakukannya: Di bawah blokir, Claude Code membuka kembali file konfigurasi git global Anda untuk perintah sandboxed sehingga git tetap mempertahankan identitas dan pengaturan Anda:
  • ~/.gitconfig
  • File config, ignore, dan attributes di bawah $XDG_CONFIG_HOME/git, yang default ke ~/.config/git
  • File yang dinamai konfigurasi git global Anda melalui [include], [includeIf], core.excludesFile, atau core.attributesFile
Claude Code menilai setiap file secara terpisah. Ketika file terletak di tempat perintah sandboxed dapat menulis, secara langsung atau melalui symlink, Claude Code tidak membuka kembali file yang dinamainya. Di Linux dan WSL2, file konfigurasi yang merupakan symlink dapat tetap tidak dapat dibaca di jalurnya sendiri, dan git kemudian berjalan tanpanya. ~/.git-credentials dan $XDG_CONFIG_HOME/git/credentials tetap diblokir. Jika file yang dibuka kembali menyimpan rahasia, seperti token http.extraHeader, tambahkan jalurnya ke sandbox.filesystem.denyRead. Entri denyRead yang mencakup file selalu diutamakan daripada pembukaan kembali ini.

permissions.blockWritesOutsideWorkingDirectories

Buat tool Write, Edit, dan NotebookEdit menolak jalur di luar direktori kerja Anda dalam setiap mode izin, termasuk bypassPermissions, kecuali beberapa file milik Claude Code sendiri. Kunci ini tidak membatasi perintah shell, tool MCP, atau program yang dijalankan hook. Untuk membatasi tempat perintah shell menulis, aktifkan sandboxing. Memerlukan Claude Code v2.1.314 atau lebih baru. Setelah kunci ini aktif, Claude Code juga menghapus tool EnterWorktree dan ExitWorktree atau menolak panggilan ke tool tersebut. Untuk tetap bekerja di worktree, ikuti Claude tidak memiliki tool EnterWorktree.
  • Scope: Any file. true di file apa pun yang dimuat sesi berlaku, jadi repositori dapat mengaktifkan blokir untuk dirinya sendiri tetapi tidak dapat mengangkat blokir Anda. Dalam sesi cloud, Claude Code mungkin tidak menerapkan kunci ini, karena tool file berjalan dalam kontainer yang merupakan batas itu sendiri.
  • Type: Boolean
    • true: mengaktifkan blokir
    • false: sama dengan tidak diatur; blokir masih berlaku jika file lain menetapkan true
  • Default: tidak diatur, jadi penulisan di luar direktori kerja mengikuti mode izin Anda. Blokir juga aktif selama Claude Code tidak dapat membaca objek permissions dalam pengaturan terkelola Anda.
settings.json
Untuk menguji blokir, minta Claude menggunakan tool Write untuk membuat file di luar direktori kerja Anda, seperti ~/block-test.txt jika direktori home Anda bukan salah satunya. Claude Code menolak panggilan tersebut, dan penolakannya menyatakan bahwa pengaturan memblokir penulisan di luar direktori kerja. Untuk mengangkat blokir, hapus kunci dari setiap file pengaturan yang menetapkannya, kemudian mulai ulang Claude Code.

Apa yang ditolak blokir penulisan dan apa yang tetap dapat ditulis

Beberapa file milik Claude Code sendiri tetap dapat ditulis, seperti file rencana, scratchpad, direktori tmp milik sesi latar belakang, dan file .md dalam auto memory proyek ini. Selain file Anda sendiri di luar direktori kerja, blokir menolak penulisan ke:
  • File pengaturan Claude Code: Claude Code menolak penulisan ini di dalam direktori kerja juga, karena file pengaturan dapat mengangkat blokir. Edit file pengaturan sendiri.
  • Direktori yang hanya ditambahkan oleh pengaturan repositori: direktori yang dicantumkan additionalDirectories hanya di .claude/settings.json, atau di .claude/settings.local.json kecuali git melaporkan file itu sebagai tidak dilacak
  • Worktree milik subagent: pengeditan file oleh subagent isolation: worktree ditolak ketika worktree-nya berada di luar direktori kerja
  • Auto memory di direktori yang dipilih repositori: direktori yang dinamai autoMemoryDirectory dalam pengaturan repositori
File pengaturan tetap ditolak apa pun yang Anda tambahkan. Untuk meloloskan penulisan dalam kasus-kasus lainnya, tambahkan direktori kerja. /add-dir memerlukan direktori yang sudah ada, jadi sebutkan direktori .claude/worktrees di root repositori untuk worktree subagent.

Loloskan satu direktori melalui blokir baca atau tulis

Untuk memungkinkan Claude menjangkau satu direktori di luar proyek saat blockReadsOutsideWorkingDirectories atau blockWritesOutsideWorkingDirectories bernilai true, tambahkan direktori tersebut sebagai direktori kerja. Jalankan /add-dir <directory> dalam sesi, berikan --add-dir <directory> saat Anda memulai Claude Code, atau cantumkan di bawah additionalDirectories dalam pengaturan pengguna atau terkelola Anda. Tidak ada aturan allow yang dapat meloloskan tool file Claude melalui kedua blokir tersebut.

permissions.defaultMode

Atur mode izin default untuk sesi baru. Ketika Anda membiarkannya tidak diatur, default bawaan untuk surface Anda berlaku.
  • Scope: Any file. auto dan bypassPermissions tidak berlaku dari pengaturan proyek atau lokal, jadi atur keduanya dalam ~/.claude/settings.json sebagai gantinya. Sebelum v2.1.257, bypassPermissions berlaku dari file apa pun. Untuk percakapan yang dimulai ekstensi VS Code, Claude Code hanya membaca nilai pengguna, terkelola, dan --settings.
  • Type: string, salah satu dari:
    • "default": Claude Code hanya menjalankan pembacaan tanpa bertanya
    • "acceptEdits": Claude Code juga menjalankan pengeditan file dan perintah sistem file umum seperti mkdir dan mv tanpa bertanya
    • "plan": Claude Code membaca dan merencanakan tetapi memblokir pengeditan sampai Anda menyetujui rencana
    • "auto": Claude Code berjalan tanpa permintaan izin sehari-hari; sebelum tindakan seperti perintah shell dan permintaan jaringan berjalan, pengklasifikasi latar belakang memeriksa bahwa tindakan tersebut selaras dengan permintaan Anda
    • "dontAsk": Claude Code secara otomatis menolak setiap panggilan yang sebaliknya akan meminta konfirmasi, meskipun mod yang Anda instal masih dapat menyetujui sebagian dari panggilan tersebut. Pembacaan file di dalam direktori kerja Anda, tindakan lain yang tidak memerlukan persetujuan, dan tool yang sudah disetujui sebelumnya masih berjalan, kecuali pembacaan dari jalur jaringan
    • "bypassPermissions": Claude Code menjalankan semuanya tanpa bertanya
    • "manual": alias untuk "default"
  • Default: tidak diatur
  • Per-session overrides: --permission-mode, dan ekuivalennya --dangerously-skip-permissions untuk bypassPermissions, diutamakan daripada kunci ini untuk satu sesi
settings.json
Aturan izin berlapis di atas setiap mode: aturan deny memblokir dalam setiap mode, termasuk bypassPermissions. Lihat Mode izin. Dalam sesi cloud, Claude Code hanya menghormati acceptEdits, plan, default, dan auto dari kunci ini. Untuk percakapan yang dimulai ekstensi VS Code, lihat pengaturan mana yang dibaca ekstensi untuk mode izin awal.

permissions.denyInsteadOfPrompting

Atur ini ke true agar sesi tetap berjalan ketika tidak ada orang yang dapat menjawab permintaan izin. Claude Code menolak panggilan tool yang sebaliknya akan menunggu permintaan izin, dan giliran berlanjut. Memerlukan Claude Code v2.1.319 atau lebih baru. Panggilan tetap dijalankan jika aturan allow, mode izin Anda, atau pengklasifikasi auto mode menyetujuinya. Untuk mengizinkan sebagian besar panggilan yang sebaliknya akan meminta konfirmasi, jawab dari hook PermissionRequest.
  • Scope: User or managed, dan --settings. Repositori tidak dapat menetapkannya untuk Anda.
  • Type: Boolean
    • true: Claude Code menolak panggilan yang sebaliknya akan meminta konfirmasi
    • false: sama dengan tidak diatur; panggilan tetap ditolak jika sumber lain di antara sumber ini menetapkan true
  • Default: tidak diatur, jadi panggilan yang memerlukan persetujuan meminta konfirmasi Anda
Dalam ~/.claude/settings.json, contoh ini memulai sesi dalam auto mode dan menolak apa pun yang masih akan kembali ke permintaan izin:
settings.json
Kunci ini berlaku dalam eksekusi -p, sesi terminal interaktif, ekstensi VS Code, sesi lokal di aplikasi Desktop, subagent, dan tim agent. Untuk menolak apa yang akan meminta konfirmasi dalam satu eksekusi non-interaktif saja, berikan --permission-prompts none dengan -p.

Apa lagi yang dihentikan denyInsteadOfPrompting

Dengan pengaturan ini aktif, Claude Code juga menghentikan permintaan jawaban berikut:
  • Tool pertanyaan dan rencana: Claude Code tidak menyertakan AskUserQuestion, EnterPlanMode, dan ExitPlanMode, sehingga sesi dalam plan mode tidak dapat keluar darinya dengan sendirinya. Rekan tim dalam tim agent tetap memiliki EnterPlanMode dan ExitPlanMode
  • Elisitasi MCP: Claude Code membatalkan permintaan elisitasi kecuali hook Elicitation menjawabnya
  • Host izin: Claude Code tidak bertanya kepada callback canUseTool atau --permission-prompt-tool Anda. Untuk menyetujui panggilan dari kode, jawab dari hook PermissionRequest. Beberapa panggilan ditolak sebelum hook mana pun ditanya, seperti penghapusan jalur kritis dalam mode auto yang tidak dicakup aturan ask mana pun.
  • Pemberitahuan penagihan pengklasifikasi: di mana pemberitahuan tentang permintaan pengklasifikasi yang ditagih akan membuka dialog, Claude Code tidak menampilkannya dan menolak tindakan yang memerlukan permintaan tersebut
Sesi masih dapat menunggu dialog kepercayaan workspace dan persetujuan server MCP proyek. Jawab keduanya sebelum Anda membiarkan sesi berjalan.

Pesan dari denyInsteadOfPrompting

Pesan-pesan ini melaporkan panggilan yang ditolak. Pesan tersebut bukan permintaan izin, jadi tidak ada yang menunggu jawaban Anda. Penolakan yang dibaca Claude dapat diawali dengan teks ini:
Dalam output stream-json, eksekusi yang memancarkan pesan permission_denied melaporkan decision_reason ini:
Dalam auto mode dengan pengaturan ini aktif, giliran berakhir setelah 20 panggilan berturut-turut yang diblokir pengklasifikasi atau ditolak pemeriksaan keamanan, dan Anda melihat pesan ini:
Eksekusi -p melaporkan giliran tersebut sebagai error_during_execution.

permissions.disableBypassPermissionsMode

Cegah siapa pun memasuki mode bypassPermissions. Claude Code kemudian menolak flag --dangerously-skip-permissions, dan mengabaikan permissionMode: bypassPermissions dalam definisi agent, sehingga subagent berjalan dengan mode izin sesi induk.
  • Scope: Any file. Biasanya diatur dalam pengaturan terkelola untuk menegakkan kebijakan organisasi.
  • Type: string "disable"
  • Default: tidak diatur
  • Per-session overrides: kunci ini diutamakan daripada --dangerously-skip-permissions, yang ditolak Claude Code saat kunci diatur
settings.json
Sebelum v2.1.223, Claude Code menerapkan mode izin frontmatter bahkan dengan bypass dinonaktifkan.

skipAutoPermissionPrompt

Lewati pemberitahuan satu kali yang menjelaskan auto mode yang ditampilkan Claude Code ketika Anda pertama kali memasuki auto mode sendiri, misalnya melalui pengaturan Anda sendiri atau pemilih mode, bukan ketika default bawaan memulai sesi di dalamnya. Claude Code menampilkan pemberitahuan itu sekali dan kemudian mencatat bahwa pemberitahuan itu sudah ditampilkan, jadi kunci ini hanya penting di tempat pemberitahuan belum muncul.
  • Scope: User or managed. Repositori tidak dapat menetapkannya untuk Anda.
  • Type: Boolean
    • true: Claude Code melewati pemberitahuan
    • false: sama dengan tidak diatur; pemberitahuan muncul sekali kecuali file lain di antara file ini menetapkan true
  • Default: tidak diatur, jadi pemberitahuan muncul sekali
settings.json

skipDangerousModePermissionPrompt

Lewati dialog konfirmasi yang ditampilkan Claude Code sebelum sesi memasuki mode bypassPermissions, baik dari --dangerously-skip-permissions atau dari defaultMode: "bypassPermissions". Claude Code menulis true di sini dalam pengaturan pengguna Anda ketika Anda menerima dialog itu sekali.
  • Scope: User, local, or managed, dan file yang diberikan dengan --settings. Sesi latar belakang hanya menghitung pengaturan pengguna dan terkelola. Repositori yang tidak dipercaya tidak dapat melewati dialog untuk Anda.
  • Type: Boolean
    • true: Claude Code melewati dialog konfirmasi sebelum sesi memasuki mode bypassPermissions
    • false: sama dengan tidak diatur; dialog muncul kecuali file lain di antara file ini menetapkan true
  • Default: tidak diatur, jadi dialog muncul
settings.json

Pengaturan sandbox

Isolasi perintah yang dijalankan Claude dari sistem file, jaringan, dan kredensial Anda. Untuk cara kerja sandboxing dan persyaratan platform, lihat Sandboxing.

sandbox

Isolasi perintah Bash yang dijalankan Claude dari sistem file dan jaringan Anda dengan sandboxing. Aktifkan sandbox dengan enabled, lalu persempit atau perluas apa yang dapat disentuh oleh perintah yang di-sandbox dengan sub-objek filesystem, network, dan credentials. Sandbox berjalan di macOS, Linux, dan WSL2.
  • Cakupan: Any file
  • Tipe: objek dengan enabled, failIfUnavailable, autoAllowBashIfSandboxed, excludedCommands, allowUnsandboxedCommands, enableWeakerNestedSandbox, enableWeakerNetworkIsolation, allowAppleEvents, allowNestedUserNamespaces, bwrapPath, socatPath, ignoreViolations, dan ripgrep, ditambah objek filesystem, network, dan credentials
  • Default: tidak diatur, sehingga Claude Code menjalankan perintah tanpa sandbox
Ini mengaktifkan sandbox, melewati permintaan izin untuk perintah yang di-sandbox, menjalankan docker di luar sandbox, membuka dua path tulis tambahan, menyembunyikan file kredensial AWS Anda, dan mengizinkan GitHub serta npm terlebih dahulu:
settings.json
Ketika pengaturan terkelola mengatur kunci Boolean seperti enabled atau failIfUnavailable, nilai tersebut menimpa apa pun yang diatur oleh developer. Claude Code menggabungkan kunci array di seluruh cakupan pengaturan yang dimuat sesi, sehingga developer dapat menambahkan entri; lihat Mencegah developer memperluas kebijakan untuk penguncian yang khusus berasal dari pengaturan terkelola. Untuk mewajibkan sandbox bagi organisasi, lihat Menegakkan sandboxing dengan pengaturan terkelola.

sandbox.enabled

Aktifkan sandboxing untuk perintah Bash. Saat Anda memilih mode di panel /sandbox, Claude Code menulis kunci ini ke .claude/settings.local.json untuk proyek saat ini; atur di ~/.claude/settings.json untuk men-sandbox setiap proyek.
settings.json
Di Linux dan WSL2, sandbox memerlukan bubblewrap dan socat; lihat Menyiapkan Linux dan WSL2. Ketika sandbox tidak dapat dimulai, Claude Code menjalankan perintah tanpa sandbox, kecuali jika Anda juga mengatur failIfUnavailable.

sandbox.failIfUnavailable

Buat Claude Code keluar dengan error saat startup ketika sandbox.enabled bernilai true tetapi sandbox tidak dapat dimulai karena platform tidak mendukungnya atau pemeriksaan dependensi gagal. Tanpa kunci ini, Claude Code menjalankan perintah tanpa sandbox. Deployment terkelola yang mewajibkan sandboxing sebagai gerbang keamanan dapat menggunakan pengaturan ini. Di platform yang tidak didukung sandbox, Claude Code tidak dapat dimulai saat kunci ini aktif. Lihat Menegakkan sandboxing dengan pengaturan terkelola.
  • Cakupan: Any file, dengan batasan pada pengaturan proyek dan lokal
  • Tipe: Boolean
    • true: Claude Code keluar dengan error saat startup ketika sandbox.enabled bernilai true tetapi sandbox tidak dapat dimulai. Jika sandbox lolos pemeriksaan tersebut lalu gagal diinisialisasi, sesi tetap berjalan dan Claude Code menolak setiap perintah yang di-sandbox
    • false: Claude Code menjalankan perintah tanpa sandbox ketika sandbox tidak dapat dimulai
  • Default: false
Ini mengaktifkan sandbox untuk mesin terkelola dan mengatur failIfUnavailable ke true:
managed-settings.json
Lihat Menegakkan sandboxing dengan pengaturan terkelola.

sandbox.autoAllowBashIfSandboxed

Izinkan Claude Code menjalankan perintah Bash yang di-sandbox tanpa permintaan izin. Perintah yang tidak dapat berjalan di sandbox tetap melalui alur izin biasa, dan aturan deny serta aturan ask yang dibatasi pada konten seperti Bash(git push *) tetap berlaku; aturan ask Bash polos dilewati untuk perintah yang di-sandbox. Atur ke false untuk juga mengirim perintah yang di-sandbox melalui alur izin biasa, yang oleh tab Mode di /sandbox disebut mode izin reguler.
  • Cakupan: Any file
  • Tipe: Boolean
    • true: Claude Code menjalankan perintah Bash yang di-sandbox tanpa permintaan izin, kecuali dalam kasus yang dijelaskan di Mode auto-allow; CLAUDE_CODE_SUBPROCESS_ENV_SCRUB mematikan auto-allow
    • false: perintah yang di-sandbox melalui alur izin biasa, sehingga aturan allow dan mode izin Anda yang menentukan. Tab Mode di /sandbox menyebut ini mode izin reguler
  • Default: true
Ini mempertahankan sandbox tetap aktif dan mengirim perintah yang di-sandbox melalui alur izin biasa:
settings.json
Lihat Mode auto-allow untuk hal-hal yang masih memicu permintaan izin dalam mode auto-allow dan bagaimana perilakunya dalam plan mode.

sandbox.excludedCommands

Sebutkan perintah yang dijalankan Claude Code di luar sandbox, seperti alat yang tidak berfungsi di dalamnya. Setiap entri menggunakan sintaks yang sama dengan isi aturan izin Bash(...): perintah persis, prefiks seperti docker *, atau pola wildcard. Pola tanpa wildcard adalah pencocokan persis, sehingga docker hanya cocok dengan docker tanpa argumen. Entri Anda mengeluarkan panggilan Bash dari sandbox hanya ketika entri tersebut mencakup setiap perintah di dalamnya, dan beberapa bentuk panggilan tetap di-sandbox bahkan dalam kondisi itu. Entri docker * saja tidak mengeluarkan npm ci && docker build . dari sandbox.
settings.json
Claude Code mempertahankan panggilan Bash tetap di-sandbox ketika panggilan tersebut memiliki salah satu bentuk berikut, di antara bentuk lainnya:
  • Perintah yang diawali dengan sudo, eval, atau xargs
  • cd, pushd, atau popd, di mana pun letaknya dalam panggilan
  • Substitusi perintah, subshell, atau blok alur kontrol seperti if atau for
  • Pengalihan (redirection), seperti docker build . > build.log atau heredoc <<EOF, selain yang hanya menduplikasi file descriptor, seperti yang dilakukan 2>&1
  • Nama perintah yang berasal dari variabel
  • git clone, git init, git worktree add, git worktree move, atau git bundle create dengan argumen path yang absolut, diawali dengan ~, atau berisi segmen ..
Sebagai contoh, cd build && docker compose up tetap di-sandbox di bawah entri docker *, dan menambahkan entri cd tidak mengubahnya. Di bawah entri git *, git clone <url> vendor/lib berjalan di luar sandbox, tetapi git clone <url> ~/tools tetap di-sandbox. Clone menulis seluruh pohon file, mungkin termasuk file yang dapat dieksekusi, ke mana pun path tujuannya mengarah. Perintah yang dikecualikan tetap melalui alur izin biasa. Pengecualian adalah kemudahan, bukan batas keamanan: ketika sebuah alat hanya perlu menulis ke lokasi tertentu, filesystem.allowWrite mempertahankannya tetap di-sandbox. Entri dari cakupan pengaturan yang dimuat sesi digabungkan menjadi satu daftar, kecuali jika sandbox diwajibkan admin. Selama sandbox diwajibkan admin, Claude Code mengabaikan entri di .claude/settings.json dan .claude/settings.local.json, sehingga repositori yang di-clone tidak dapat mengeluarkan perintah dari sandbox. Entri di pengaturan terkelola, --settings, dan ~/.claude/settings.json Anda tetap berlaku, dan tidak ada penguncian khusus pengaturan terkelola yang mencakup daftar ini.

sandbox.allowUnsandboxedCommands

Izinkan Claude mencoba ulang perintah di luar sandbox dengan parameter dangerouslyDisableSandbox setelah sandbox memblokirnya. Ketika bernilai false, Claude Code mengabaikan parameter tersebut. Selama sandbox berjalan, perintah yang dijalankan Claude kemudian di-sandbox kecuali jika cocok dengan entri excludedCommands. Tab Overrides di /sandbox menampilkan status tersebut sebagai Strict sandbox mode. Nilai false di pengaturan terkelola mengaktifkan strict sandbox mode untuk developer yang dicakupnya.
  • Cakupan: Any file, dengan sebuah batasan pada pengaturan proyek dan lokal
  • Tipe: Boolean
    • true: Claude dapat mencoba ulang perintah di luar sandbox dengan parameter dangerouslyDisableSandbox setelah sandbox memblokirnya
    • false: Claude Code mengabaikan parameter tersebut, sehingga selama sandbox berjalan, perintah yang dijalankan Claude di-sandbox kecuali jika cocok dengan entri excludedCommands
  • Default: true
Ini menegakkan strict sandbox mode untuk semua orang yang dicakup oleh pengaturan terkelola:
managed-settings.json
Nilai false dari pengaturan terkelola atau --settings juga membuat sandbox diwajibkan admin. Nilai false di pengaturan pengguna Anda tetap bertahan terhadap nilai true dari proyek, tetapi tidak membuat sandbox diwajibkan admin. Bertahan terhadap nilai proyek memerlukan Claude Code v2.1.285 atau lebih baru. Siapa yang menyetujui retry tanpa sandbox bergantung pada mode izin dan aturan allow Anda. Lihat Jalan keluar retry tanpa sandbox. Untuk melihat kapan perintah yang Anda ketik sendiri di prompt shell mode ! berjalan di-sandbox, lihat strict sandbox mode.

sandbox.filesystem

Kontrol path mana yang dapat dibaca dan ditulis oleh perintah yang di-sandbox. Secara default, perintah tersebut dapat menulis ke direktori kerja, direktori temp per pengguna, dan direktori yang Anda tambahkan dengan --add-dir, /add-dir, atau permissions.additionalDirectories, serta dapat membaca bagian sistem file lainnya, termasuk file kredensial. Perluas atau persempit hal itu dengan empat daftar path, atau matikan lapisan sistem file dengan disabled. Lihat Isolasi sistem file untuk batas default.
  • Cakupan: Any file
  • Tipe: objek dengan array allowWrite, denyWrite, denyRead, dan allowRead, ditambah Boolean allowManagedReadPathsOnly dan disabled
  • Default: tidak diatur, sehingga batas baca dan tulis default berlaku
Ini memungkinkan perintah yang di-sandbox menulis ke direktori build dan kubeconfig Anda, serta menyembunyikan file kredensial AWS Anda:
settings.json
Claude Code menegakkan daftar-daftar ini pada batas sandbox OS, sehingga daftar tersebut berlaku untuk setiap subproses yang dimulai oleh perintah yang di-sandbox, seperti kubectl, terraform, atau npm. Claude Code menambahkan aturan izin Anda ke daftar yang sama: aturan allow dan deny Edit ke allowWrite dan denyWrite, aturan deny Read ke denyRead, dan aturan allow dan deny WebFetch(domain:...) ke daftar domain network. Kecuali jika suatu penguncian berlaku, Claude Code menggabungkan daftar-daftar ini di seluruh file pengaturan yang dimuat sesi. allowManagedReadPathsOnly membatasi allowRead hanya pada entri dari pengaturan terkelola, dan allowManagedDomainsOnly melakukan hal yang sama untuk domain yang diizinkan. Penguncian repositori mengecualikan entri dari file pengaturan repositori. Mengonfigurasi sandboxing membahas sumber yang Anda kecualikan dengan --setting-sources. Saat Anda mengedit daftar selama sesi, Claude Code menerapkan perubahan tersebut pada sesi yang sedang berjalan.

Prefiks path sandbox

Path di allowWrite, denyWrite, denyRead, allowRead, dan credentials.files di-resolve berdasarkan prefiksnya: Prefiks //path untuk path absolut juga berfungsi. Jika Anda menggunakan /path dengan satu garis miring dengan harapan resolusi relatif terhadap proyek, ganti ke ./path. Sintaks ini berbeda dari aturan izin Read dan Edit, yang menggunakan //path untuk path absolut dan /path untuk path relatif terhadap proyek: path sistem file sandbox menggunakan konvensi standar, sehingga /tmp/build adalah path absolut. Claude Code menghapus garis miring di akhir path direktori, sehingga ~/.aws dan ~/.aws/ cocok dengan direktori yang sama. Sebelum v2.1.224, Claude Code meneruskan garis miring di akhir tersebut ke sandbox, dan Claude masih dapat membaca atau menulis path di bawah entri denyRead atau denyWrite yang ditulis dengan garis miring di akhir.
Tempat wildcard berfungsi di path sandbox
Wildcard *, ?, dan ** berfungsi di keempat daftar path sandbox.filesystem di macOS, dan di lebih sedikit tempat di Linux dan WSL2: Di ~/keys/*.pem, wildcard muncul setelah nama direktori pertama, yaitu home untuk direktori home /home/alice:
Di Linux dan WSL2, tab Config dari /sandbox dalam sesi memperingatkan tentang aturan izin Edit yang berisi wildcard selain /** di akhir. Wildcard tersebut tidak berfungsi untuk perintah yang di-sandbox. Tambahkan setiap path yang seharusnya dicakup aturan tersebut, atau direktori yang menampungnya, ke allowWrite untuk aturan allow atau ke denyWrite untuk aturan deny.
Nama direktori dengan kurung siku, kurung kurawal, atau kurung biasa
Untuk mengizinkan atau memblokir direktori yang namanya berisi kurung siku, tulis nama tersebut apa adanya, seperti ./app/[slug]. Dalam entri tersebut, [slug] adalah nama asli direktori, termasuk kurung sikunya: