/config, yang membuka antarmuka Pengaturan bertab di mana Anda dapat melihat informasi status dan memodifikasi opsi konfigurasi. Mulai dari v2.1.181, Anda dapat mengubah satu opsi tanpa membuka antarmuka dengan melewatkan key=value ke /config, misalnya /config verbose=true.
Cakupan konfigurasi
Claude Code menggunakan sistem cakupan untuk menentukan di mana konfigurasi berlaku dan siapa yang membagikannya. Memahami cakupan membantu Anda memutuskan cara mengonfigurasi Claude Code untuk penggunaan pribadi, kolaborasi tim, atau penyebaran perusahaan.Cakupan yang tersedia
Kapan menggunakan setiap cakupan
Cakupan Managed adalah untuk:- Kebijakan keamanan yang harus diterapkan di seluruh organisasi
- Persyaratan kepatuhan yang tidak dapat ditimpa
- Konfigurasi standar yang digunakan oleh IT/DevOps
- Preferensi pribadi yang Anda inginkan di mana-mana (tema, pengaturan editor)
- Tools dan plugins yang Anda gunakan di semua proyek
- Kunci API dan autentikasi (disimpan dengan aman)
- Pengaturan bersama tim (izin, hooks, MCP servers)
- Plugins yang harus dimiliki seluruh tim
- Standardisasi tooling di seluruh kolaborator
- Penggantian pribadi untuk proyek tertentu
- Pengaturan pengujian sebelum dibagikan dengan tim
- Pengaturan spesifik mesin yang tidak akan berfungsi untuk orang lain
Bagaimana cakupan berinteraksi
Ketika pengaturan yang sama muncul dalam beberapa cakupan, Claude Code menerapkannya dalam urutan prioritas:- Managed (tertinggi): tidak dapat ditimpa oleh apa pun
- Argumen baris perintah: penggantian sesi sementara
- Local: menimpa pengaturan proyek dan pengguna
- Project: menimpa pengaturan pengguna
- User (terendah): berlaku ketika tidak ada yang menentukan pengaturan
spinnerTipsEnabled ke true dan pengaturan proyek menetapkannya ke false, nilai proyek berlaku. Aturan izin berperilaku berbeda karena mereka menggabungkan di seluruh cakupan daripada menimpa. Lihat Preseden pengaturan.
Apa yang menggunakan cakupan
Cakupan berlaku untuk banyak fitur Claude Code:
Di Windows, jalur yang ditampilkan sebagai
~/.claude diselesaikan ke %USERPROFILE%\.claude.
File pengaturan
Filesettings.json adalah mekanisme resmi untuk mengonfigurasi Claude Code melalui pengaturan hierarki:
-
Pengaturan pengguna didefinisikan dalam
~/.claude/settings.jsondan berlaku untuk semua proyek. -
Pengaturan proyek disimpan di direktori proyek Anda:
-
.claude/settings.jsonuntuk pengaturan yang diperiksa ke dalam kontrol sumber dan dibagikan dengan tim Anda -
.claude/settings.local.jsonuntuk pengaturan yang tidak diperiksa, berguna untuk preferensi pribadi dan eksperimen. Ketika Claude Code membuat.claude/settings.local.json, Claude Code mengonfigurasi git untuk mengabaikan file tersebut. Jika Anda membuat file sendiri, tambahkan ke gitignore secara manual. Karena file ini milik Anda daripada repositori, aturan izinallowmiliknya berlaku tanpa langkah kepercayaan workspace yang diperlukan oleh aturan allow.claude/settings.json. Jika repositori menyediakan file, misalnya dengan melakukan commit, kepercayaan workspace masih berlaku.
-
-
Pengaturan Managed: Untuk organisasi yang memerlukan kontrol terpusat, Claude Code mendukung beberapa mekanisme pengiriman untuk pengaturan yang dikelola. Semua menggunakan format JSON yang sama dan tidak dapat ditimpa oleh pengaturan pengguna atau proyek:
- Pengaturan yang dikelola server: dikirimkan dari jarak jauh saat sign-in, baik dari server Anthropic melalui konsol admin claude.ai atau dari Claude apps gateway yang di-host sendiri. Lihat pengaturan yang dikelola server.
-
Kebijakan tingkat MDM/OS: dikirimkan melalui manajemen perangkat asli di macOS dan Windows:
- macOS: domain preferensi terkelola
com.anthropic.claudecode. Kunci tingkat atas plist mencerminkanmanaged-settings.json, dengan pengaturan bersarang sebagai kamus dan array sebagai array plist. Terapkan melalui profil konfigurasi di Jamf, Iru (Kandji), atau alat MDM serupa. - Windows: kunci registry
HKLM\SOFTWARE\Policies\ClaudeCodedengan nilaiSettings(REG_SZ atau REG_EXPAND_SZ) berisi JSON (digunakan melalui Group Policy atau Intune) - Windows (tingkat pengguna):
HKCU\SOFTWARE\Policies\ClaudeCode(prioritas kebijakan terendah, hanya digunakan ketika tidak ada sumber tingkat admin)
- macOS: domain preferensi terkelola
-
Berbasis file:
managed-settings.jsondanmanaged-mcp.jsondigunakan ke direktori sistem:- macOS:
/Library/Application Support/ClaudeCode/ - Linux dan WSL:
/etc/claude-code/ - Windows:
C:\Program Files\ClaudeCode\
managed-settings.d/dalam direktori sistem yang sama bersamamanaged-settings.json. Ini memungkinkan tim terpisah untuk menggunakan fragmen kebijakan independen tanpa mengoordinasikan pengeditan ke file tunggal. Mengikuti konvensi systemd,managed-settings.jsondigabungkan terlebih dahulu sebagai dasar, kemudian semua file*.jsondalam direktori drop-in diurutkan secara alfabetis dan digabungkan di atas. File yang lebih baru menimpa yang lebih awal untuk nilai skalar; array digabungkan dan dihilangkan duplikatnya; objek digabungkan secara mendalam. File tersembunyi yang dimulai dengan.diabaikan. Gunakan prefiks numerik untuk mengontrol urutan penggabungan, misalnya10-telemetry.jsondan20-security.json. - macOS:
Penyebaran yang dikelola juga dapat membatasi penambahan marketplace plugin menggunakanstrictKnownMarketplaces. Untuk informasi lebih lanjut, lihat Pembatasan marketplace yang dikelola. -
Konfigurasi lainnya disimpan dalam
~/.claude.json. File ini berisi sesi OAuth, konfigurasi MCP server untuk cakupan pengguna dan lokal, status per-proyek (tools yang diizinkan, pengaturan kepercayaan), dan berbagai cache. MCP servers dengan cakupan proyek disimpan secara terpisah dalam.mcp.json.
Claude Code secara otomatis membuat cadangan file konfigurasi dengan stempel waktu dan menyimpan lima cadangan terbaru untuk mencegah kehilangan data.
Contoh settings.json
$schema dalam contoh di atas menunjuk ke skema JSON resmi untuk pengaturan Claude Code. Menambahkannya ke settings.json Anda memungkinkan pelengkapan otomatis dan validasi inline di VS Code, Cursor, dan editor lain yang mendukung validasi skema JSON.
Skema yang dipublikasikan diperbarui secara berkala dan mungkin tidak menyertakan pengaturan yang ditambahkan dalam rilis CLI terbaru, jadi peringatan validasi pada bidang yang baru didokumentasikan tidak harus berarti konfigurasi Anda tidak valid.
Saat pengeditan berlaku
Claude Code memantau file pengaturan Anda dan memuat ulang saat berubah, jadi pengeditan pada sebagian besar kunci berlaku untuk sesi yang sedang berjalan tanpa restart. Ini termasukpermissions, hooks, dan credential helpers seperti apiKeyHelper. Reload mencakup pengaturan pengguna, proyek, lokal, dan yang dikelola, dan hook ConfigChange diaktifkan untuk setiap perubahan yang terdeteksi.
Beberapa kunci dibaca sekali saat startup sesi dan berlaku pada restart berikutnya:
model: gunakan/modeluntuk beralih di tengah sesioutputStyle: bagian dari prompt sistem, yang dibangun kembali pada/clearatau restart
Entri tidak valid dalam pengaturan yang dikelola
Pengaturan yang dikelola diuraikan dengan toleran. Ketika konfigurasi yang dikelola berisi entri yang gagal validasi skema, Claude Code menghapus entri tersebut, mencatat peringatan, dan menegakkan setiap kebijakan yang valid yang tersisa. Satu kesalahan ketik tidak dapat menonaktifkan kebijakan organisasi Anda yang lainnya. Jalankan/doctor untuk membuat daftar entri yang dihapus dengan file sumber dan bidangnya.
Perilaku ini konsisten di ketiga mekanisme pengiriman: pengaturan yang dikelola server, kebijakan plist dan registry yang digunakan melalui MDM, dan file managed-settings.json. Memerlukan Claude Code v2.1.169 atau lebih baru.
Bidang penegakan keamanan ditangani per bidang daripada dihapus secara grosir saat ada tetapi tidak valid:
requiredMinimumVersion dan requiredMaximumVersion gagal terbuka dengan desain: nilai yang tidak valid dihapus daripada diterapkan, jadi push kebijakan yang buruk tidak dapat mencegah Claude Code dari memulai.
Kesalahan validasi muncul di tiga tempat:
- Sesi interaktif menampilkan dialog saat startup yang mencantumkan entri yang tidak valid.
- Jalankan headless dengan
-pcetak ringkasan ke stderr. claude doctormencantumkan setiap entri yang tidak valid dengan sumber dan bidangnya.
claude doctor pada mesin uji sebelum menggunakannya di seluruh armada.
Toleransi ini hanya berlaku untuk pengaturan yang dikelola. File pengaturan pengguna, proyek, dan lokal tetap ketat: file yang gagal validasi ditolak secara keseluruhan dan dilaporkan.
Pengaturan yang tersedia
settings.json mendukung sejumlah opsi:
Pengaturan konfigurasi global
Pengaturan ini disimpan dalam~/.claude.json daripada settings.json. Menambahkannya ke settings.json akan memicu kesalahan validasi skema.
Versi sebelum v2.1.119 juga menyimpan sejumlah kunci preferensi
/config di sini daripada dalam settings.json, termasuk theme, verbose, editorMode, autoCompactEnabled, dan preferredNotifChannel.Pengaturan worktree
Konfigurasikan bagaimana--worktree membuat dan mengelola git worktrees.
Untuk menyalin file yang diabaikan git seperti
.env ke worktrees baru, gunakan file .worktreeinclude di akar proyek Anda daripada pengaturan.
Pengaturan izin
Sintaks aturan izin
Aturan izin mengikuti formatTool atau Tool(specifier). Aturan dievaluasi secara berurutan: aturan deny terlebih dahulu, kemudian ask, kemudian allow. Aturan pertama yang cocok menentukan hasil terlepas dari spesifisitas aturan. Lihat urutan evaluasi aturan izin untuk detail.
Contoh cepat:
Untuk referensi sintaks aturan lengkap, termasuk perilaku wildcard, pola spesifik tool untuk Read, Edit, WebFetch, MCP, dan aturan Agent, dan batasan keamanan pola Bash, lihat Sintaks aturan izin.
Pengaturan sandbox
Konfigurasikan perilaku sandboxing lanjutan. Sandboxing mengisolasi perintah bash dari sistem file dan jaringan Anda. Lihat Sandboxing untuk detail.Prefiks jalur sandbox
Jalur dalamfilesystem.allowWrite, filesystem.denyWrite, filesystem.denyRead, filesystem.allowRead, dan credentials.files mendukung prefiks ini:
Prefiks
//path yang lebih lama untuk jalur absolut masih berfungsi. Jika Anda sebelumnya menggunakan /path tunggal mengharapkan resolusi relatif proyek, beralih ke ./path. Sintaks ini berbeda dari aturan izin Read dan Edit, yang menggunakan //path untuk absolut dan /path untuk relatif proyek. Jalur sistem file sandbox menggunakan konvensi standar: /tmp/build adalah jalur absolut.
Contoh konfigurasi:
- Pengaturan
sandbox.filesystem(ditampilkan di atas): Kontrol jalur pada batas sandbox tingkat OS. Pembatasan ini berlaku untuk semua perintah subprocess (misalnya,kubectl,terraform,npm), bukan hanya tools file Claude. - Aturan izin: Gunakan aturan allow/deny
Edituntuk mengontrol akses tools file Claude, aturan denyReaduntuk memblokir pembacaan, dan aturan allow/denyWebFetchuntuk mengontrol domain jaringan. Jalur dari aturan ini juga digabungkan ke dalam konfigurasi sandbox.
Pengaturan atribusi
Claude Code menambahkan atribusi ke komit git dan pull request. Ini dikonfigurasi secara terpisah:- Komit menggunakan git trailers (seperti
Co-Authored-By) secara default, yang dapat disesuaikan atau dinonaktifkan - Deskripsi pull request adalah teks biasa
Atribusi komit default:
Pengaturan
attribution memiliki prioritas atas pengaturan includeCoAuthoredBy yang usang. Untuk menyembunyikan semua atribusi, atur commit dan pr ke string kosong dan sessionUrl ke false.Pengaturan saran file
Konfigurasikan perintah khusus untuk pelengkapan otomatis jalur file@. Saran file bawaan menggunakan traversal sistem file cepat, tetapi monorepo besar mungkin mendapat manfaat dari pengindeksan spesifik proyek seperti indeks file yang telah dibangun sebelumnya atau tooling khusus.
CLAUDE_PROJECT_DIR. Ini menerima JSON melalui stdin dengan bidang query:
Lencana tautan footer
PengaturanfooterLinksRegexes merender lencana yang dapat diklik tambahan di footer di bawah kotak input. Gunakan untuk mengubah ID yang dicetak oleh CLI proyek, seperti tools review dan issue trackers, menjadi tautan sesi.
Regex pattern setiap entri dicocokkan dengan output giliran: hasil tool, termasuk konten file dan halaman yang diambil, dan respons Claude sendiri. Placeholder {name} dalam url dan label diisi dari grup penangkapan bernama dalam pola.
Contoh berikut merender lencana setiap kali kunci masalah seperti PROJ-1234 muncul dalam output giliran. Grup bernama (?<key>...) menangkap kunci, dan {key} menggantikannya ke dalam URL dan label:
~/.claude/settings.json
PROJ-1234 muncul dalam hasil tool atau dalam balasan Claude, chip PROJ-1234 muncul di footer menghubungkan ke https://issues.example.com/browse/PROJ-1234.
Batasan berikut berlaku untuk setiap entri:
Saat giliran selesai, Claude Code mencocokkan regex
pattern setiap entri dengan output giliran pada thread utama, jadi regex lambat memblokir UI sampai selesai. Quantifier bersarang seperti (a+)+$ dapat memakan waktu secara eksponensial terhadap input tertentu dan membekukan sesi, jadi jaga setiap pattern linear dan hindari bersarang + atau *.
Lencana footer render bersama status line khusus saat satu dikonfigurasi; tidak satupun menggantikan yang lain. Gunakan status line untuk baris yang didorong skrip yang menghitung kontennya sendiri dari data sesi, dan lencana footer untuk mengubah ID dari percakapan menjadi tautan tanpa skrip.
Konfigurasi hook
Pengaturan ini mengontrol hook mana yang diizinkan untuk dijalankan dan apa yang dapat diakses oleh HTTP hooks. PengaturanallowManagedHooksOnly hanya dapat dikonfigurasi dalam pengaturan yang dikelola. Daftar putih URL dan env var dapat diatur di tingkat pengaturan apa pun dan digabungkan di seluruh sumber.
Perilaku saat allowManagedHooksOnly adalah true:
- Hooks yang dikelola dan hooks SDK dimuat
- Hooks dari plugins yang dipaksa diaktifkan dalam pengaturan yang dikelola
enabledPluginsdimuat. Ini memungkinkan administrator mendistribusikan hooks yang disaring melalui marketplace organisasi sambil memblokir segalanya. Kepercayaan diberikan oleh IDplugin@marketplacepenuh, jadi plugin dengan nama yang sama dari marketplace berbeda tetap diblokir - Hooks pengguna, hooks proyek, dan semua plugin hooks lainnya diblokir
* sebagai wildcard untuk pencocokan. Saat array didefinisikan, HTTP hooks yang menargetkan URL yang tidak cocok diblokir secara diam-diam. Pencocokan nama host tidak peka huruf besar-kecil dan mengabaikan titik FQDN di akhir, mencocokkan semantik DNS.
allowedEnvVars efektif setiap hook adalah persimpangan dari daftar sendiri dan pengaturan ini.
Hitung pengaturan yang dikelola dengan policy helper
PengaturanpolicyHelper menunjuk ke executable yang menghitung pengaturan yang dikelola saat startup, sehingga admin dapat menurunkan kebijakan dari postur perangkat, identitas, atau layanan jarak jauh daripada file statis. Konfigurasikan dari MDM atau file managed-settings.json sistem. Claude Code mengabaikan policyHelper saat muncul dalam cakupan apa pun, termasuk pengaturan pengguna, pengaturan proyek, hive registry HKCU, dan pengaturan yang dikelola server.
Pengaturan menerima kunci ini:
Helper menulis amplop JSON ke stdout. Letakkan pengaturan di bawah kunci
managedSettings daripada di tingkat atas, karena objek pengaturan telanjang diuraikan dengan managedSettings tidak terdefinisi dan menerapkan tidak ada:
managedSettings, objek itu menggantikan pengaturan yang dikelola berbasis file untuk run. Saat helper keluar non-zero saat startup, Claude Code mencetak kesalahan dan menolak untuk memulai, jadi helper yang memerlukan ketahanan pemadaman harus melayani dari cache sendiri dan keluar 0.
Prioritas pengaturan
Pengaturan berlaku dalam urutan prioritas. Dari tertinggi ke terendah:-
Pengaturan yang dikelola (yang dikelola server, kebijakan tingkat MDM/OS, atau pengaturan yang dikelola)
- Kebijakan yang digunakan oleh IT melalui pengiriman server, profil konfigurasi MDM, kebijakan registry, atau file pengaturan yang dikelola
- Tidak dapat ditimpa oleh tingkat apa pun, termasuk argumen baris perintah
- Dalam tingkat yang dikelola, hanya satu sumber yang digunakan dan yang lain diabaikan daripada digabungkan. Prioritas, tertinggi terlebih dahulu:
- Output
policyHelper: ketika dikonfigurasi, ini adalah satu-satunya sumber yang dikelola yang digunakan - Remote (pengaturan yang dikelola server claude.ai atau kebijakan yang dikirimkan Claude apps gateway)
- Kebijakan tingkat MDM/OS
- Berbasis file (
managed-settings.d/*.jsondanmanaged-settings.json, digabungkan bersama) - Registry HKCU (Windows saja)
- Output
- Beberapa kunci adalah pengecualian, dihormati ketika sumber yang dikelola yang dikontrol admin apa pun menetapkannya daripada hanya sumber pemenang. Sumber registry HKCU yang dapat ditulis pengguna dikecualikan. Kunci pengecualian adalah:
- kunci sandbox lock
sandbox.network.allowManagedDomainsOnlydansandbox.filesystem.allowManagedReadPathsOnly, dengan daftar putih terkait mereka allowAllClaudeAiMcps- jalur binary sandbox
sandbox.bwrapPathdansandbox.socatPath forceRemoteSettingsRefresh
- kunci sandbox lock
- Host penyematan seperti Claude Desktop dapat memasok kebijakan melalui opsi SDK
managedSettings. Secara default ini diabaikan ketika ada sumber yang dikelola yang digunakan admin: pengaturan yang dikelola server, kebijakan MDM atau OS-level, atau file pengaturan yang dikelola. Fallback registry HKCU yang dapat ditulis pengguna tidak dihitung sebagai sumber yang dikelola yang digunakan admin. Administrator dapat memilih dengan menetapkanparentSettingsBehaviorke"merge". Nilai embedder disaring sehingga mereka dapat mengencangkan kebijakan yang dikelola tetapi tidak melonggarkannya.
-
Argumen baris perintah
- Penggantian sementara untuk sesi tertentu. JSON yang dilewatkan melalui
--settings <file-or-json>digabungkan dengan pengaturan berbasis file menggunakan aturan yang sama seperti lapisan lainnya: kunci yang diatur di sini menimpa kunci yang sama dalam pengaturan lokal, proyek, atau pengguna, dan menghilangkan kunci membiarkan nilai lapisan lebih rendah tetap ada
- Penggantian sementara untuk sesi tertentu. JSON yang dilewatkan melalui
-
Pengaturan proyek lokal (
.claude/settings.local.json)- Pengaturan proyek pribadi
-
Pengaturan proyek bersama (
.claude/settings.json)- Pengaturan proyek bersama tim dalam kontrol sumber
-
Pengaturan pengguna (
~/.claude/settings.json)- Pengaturan global pribadi
permissions.defaultMode ke acceptEdits dan pengaturan bersama proyek menetapkannya ke default, nilai proyek berlaku. Contoh di bawah mencakup bagaimana pengaturan bernilai array seperti aturan izin digabungkan sebagai gantinya.
Pengaturan array digabungkan di seluruh cakupan. Ketika pengaturan yang bernilai array yang sama (seperti
sandbox.filesystem.allowWrite atau permissions.allow) muncul dalam beberapa cakupan, array digabungkan dan dihilangkan duplikatnya, bukan diganti. Ini berarti cakupan prioritas lebih rendah dapat menambahkan entri tanpa menimpa yang ditetapkan oleh cakupan prioritas lebih tinggi, dan sebaliknya. Misalnya, jika pengaturan yang dikelola menetapkan allowWrite ke ["/opt/company-tools"] dan pengguna menambahkan ["~/.kube"], kedua jalur disertakan dalam konfigurasi akhir.Dua pengaturan array tidak digabungkan dengan cara ini:fallbackModeladalah rantai yang dipesan di mana posisi membawa makna: file dengan prioritas tertinggi yang mendefinisikannya memasok seluruh nilai.availableModels: saat sumber yang dikelola dengan prioritas tertinggi mendefinisikannya, daftar itu berlaku sebagainya dan entri pengguna, proyek, dan lokal tidak dapat memperluas. Di seluruh cakupan non-managed array digabungkan seperti biasa. Lihat Perilaku penggabungan.
Verifikasi pengaturan aktif
Jalankan/status di dalam Claude Code untuk melihat sumber pengaturan mana yang aktif. Di dalam menu, tab Status mencakup baris Setting sources yang mencantumkan setiap lapisan Claude Code yang dimuat untuk sesi saat ini, seperti User settings atau Project local settings. Ketika pengaturan yang dikelola berlaku, entri menunjukkan saluran pengiriman dalam tanda kurung, misalnya Enterprise managed settings (remote), (plist), (HKLM), (HKCU), atau (file). Lapisan muncul dalam daftar hanya saat sumber itu dimuat dengan setidaknya satu kunci, jadi daftar kosong berarti tidak ada sumber pengaturan yang ditemukan.
Baris Setting sources mengonfirmasi sumber mana yang sedang dibaca. Ini tidak menunjukkan lapisan mana yang memasok setiap kunci individual. Tab Config dalam dialog yang sama adalah editor untuk set toggle tetap seperti tema dan output verbose, bukan tampilan konten settings.json Anda.
Jika file pengaturan berisi kesalahan, seperti JSON tidak valid atau nilai yang gagal validasi, /status mencantumkan file yang terpengaruh. Jalankan /doctor untuk melihat detail untuk setiap kesalahan.
Poin kunci tentang sistem konfigurasi
- File memori (
CLAUDE.md): Berisi instruksi dan konteks yang dimuat Claude saat startup - File pengaturan (JSON): Konfigurasikan izin, variabel lingkungan, dan perilaku tool
- Skills: Prompt khusus yang dapat dipanggil dengan
/skill-nameatau dimuat oleh Claude secara otomatis - MCP servers: Perluas Claude Code dengan tools dan integrasi tambahan
- Prioritas: Konfigurasi tingkat lebih tinggi (Managed) menimpa yang tingkat lebih rendah (User/Project)
- Warisan: Pengaturan digabungkan di seluruh cakupan; nilai skalar dari cakupan prioritas lebih tinggi menimpa, dan array digabungkan, dengan dua pengecualian yang dijelaskan dalam Catatan penggabungan array
Prompt sistem
Prompt sistem internal Claude Code tidak dipublikasikan. Untuk menambahkan instruksi khusus, gunakan fileCLAUDE.md atau flag --append-system-prompt.
Mengecualikan file sensitif
Untuk mencegah Claude Code mengakses file yang berisi informasi sensitif seperti kunci API, rahasia, dan file lingkungan, gunakan pengaturanpermissions.deny dalam file .claude/settings.json Anda:
ignorePatterns yang usang. File yang cocok dengan pola ini dikecualikan dari penemuan file dan hasil pencarian, dan operasi baca pada file ini ditolak.
Konfigurasi subagent
Claude Code mendukung subagents AI khusus yang dapat dikonfigurasi di tingkat pengguna dan proyek. Subagents ini disimpan sebagai file Markdown dengan frontmatter YAML:- Subagents pengguna:
~/.claude/agents/, tersedia di semua proyek Anda - Subagents proyek:
.claude/agents/, spesifik untuk proyek Anda dan dapat dibagikan dengan tim Anda
Konfigurasi plugin
Claude Code mendukung sistem plugin yang memungkinkan Anda memperluas fungsionalitas dengan skills, agents, hooks, dan MCP servers. Plugin didistribusikan melalui marketplace dan dapat dikonfigurasi di tingkat pengguna dan repositori.Pengaturan plugin
Pengaturan terkait plugin dalamsettings.json:
enabledPlugins
Mengontrol plugin mana yang diaktifkan. Format: "plugin-name@marketplace-name": true/false. Plugin tanpa entri di cakupan apa pun kembali ke nilai defaultEnabled nya.
Cakupan:
- Pengaturan pengguna (
~/.claude/settings.json): Preferensi plugin pribadi - Pengaturan proyek (
.claude/settings.json): Plugin spesifik proyek yang dibagikan dengan tim - Pengaturan lokal (
.claude/settings.local.json): Penggantian per-mesin, diabaikan saat Claude Code membuatnya - Pengaturan yang dikelola (
managed-settings.json): Penggantian kebijakan organisasi yang memblokir instalasi di semua cakupan dan menyembunyikan plugin dari marketplace
Pengaturan proyek memiliki prioritas lebih tinggi daripada pengaturan pengguna, jadi mengatur plugin ke
false dalam ~/.claude/settings.json tidak menonaktifkan plugin yang diaktifkan oleh .claude/settings.json proyek. Untuk menolak plugin yang diaktifkan proyek di mesin Anda, atur ke false dalam .claude/settings.local.json sebagai gantinya.Plugin yang dipaksa diaktifkan oleh pengaturan yang dikelola tidak dapat dinonaktifkan dengan cara ini, karena pengaturan yang dikelola menggantikan pengaturan lokal.Mengaktifkan plugin dari sumber eksternal seperti repositori GitHub atau paket npm dalam .claude/settings.json proyek tidak menginstalnya untuk orang lain. Mulai dari Claude Code v2.1.195, setiap jalur yang memuat plugin meminta setiap pengguna untuk menginstal dan mempercayai plugin sebelum dijalankan.pluginConfigs
Menyimpan nilai opsi non-sensitif yang dikumpulkan oleh prompt userConfig plugin, diindeks berdasarkan ID plugin. Claude Code menulis kunci ini ke pengaturan pengguna saat Anda mengisi dialog konfigurasi plugin, sehingga Anda tidak perlu mengeditnya secara manual. Opsi sensitif disimpan di macOS Keychain sebagai gantinya, atau di ~/.claude/.credentials.json pada platform tanpa keychain yang didukung.
Contoh ini menyimpan satu opsi untuk plugin yang diinstal dari marketplace acme-tools:
pluginConfigs dibaca dari pengaturan pengguna, flag --settings, dan pengaturan yang dikelola saja. Entri dalam .claude/settings.json proyek atau .claude/settings.local.json diabaikan, karena nilai-nilai ini diganti ke dalam konfigurasi hook, MCP, dan LSP plugin, dan repositori yang dikloning tidak boleh dapat memasoknya. Sebelum v2.1.207, pengaturan proyek dan lokal juga dibaca.
extraKnownMarketplaces
Mendefinisikan marketplace tambahan yang harus tersedia untuk repositori. Biasanya digunakan dalam pengaturan tingkat repositori untuk memastikan anggota tim memiliki akses ke sumber plugin yang diperlukan.
Ketika repositori menyertakan extraKnownMarketplaces:
- Anggota tim diminta untuk menginstal marketplace saat mereka mempercayai folder
- Anggota tim kemudian diminta untuk menginstal plugin dari marketplace tersebut
- Pengguna dapat melewati marketplace atau plugin yang tidak diinginkan (disimpan dalam pengaturan pengguna)
- Instalasi menghormati batas kepercayaan dan memerlukan persetujuan eksplisit
github: Repositori GitHub (menggunakanrepo)git: URL git apa pun (menggunakanurl)directory: Jalur sistem file lokal (menggunakanpath, hanya untuk pengembangan)hostPattern: Pola regex untuk mencocokkan host marketplace (menggunakanhostPattern)settings: marketplace inline yang dideklarasikan langsung dalam settings.json tanpa repositori yang dihosting terpisah (menggunakannamedanplugins)
git bekerja dengan layanan hosting git apa pun, termasuk GitLab dan Bitbucket yang dihosting sendiri. Claude Code mengkloning repositori dengan autentikasi yang sama yang akan digunakan git clone di mesin tersebut: pembantu kredensial yang dikonfigurasi atau kunci SSH. Token penyedia seperti GITHUB_TOKEN hanya berlaku melalui pembantu kredensial yang membacanya. Lihat Repositori pribadi untuk detail pengaturan.
Untuk sumber github dan git, atur "skipLfs": true di dalam objek source (bersama repo atau url) untuk melewati unduhan Git LFS saat Claude Code mengkloning atau memperbarui repositori marketplace. File pointer LFS tetap sebagai pointer daripada mengunduh kontennya. Gunakan ini ketika repositori berisi objek LFS besar yang tidak terkait dengan konten plugin. Memerlukan Claude Code v2.1.153 atau lebih baru.
Setiap entri marketplace juga menerima Boolean autoUpdate opsional. Atur "autoUpdate": true bersama source untuk membuat Claude Code menyegarkan marketplace tersebut dan memperbarui plugin yang terinstal di latar belakang setelah startup. Jika dihilangkan, marketplace Anthropic resmi default ke true dan semua marketplace lainnya default ke false. Lihat Konfigurasi pembaruan otomatis.
Gunakan source: 'settings' untuk mendeklarasikan serangkaian plugin kecil inline tanpa menyiapkan repositori marketplace yang dihosting. Plugin yang terdaftar di sini harus mereferensikan sumber eksternal seperti GitHub atau npm. Anda masih perlu mengaktifkan setiap plugin secara terpisah dalam enabledPlugins.
strictKnownMarketplaces
Pengaturan yang dikelola saja: Mengontrol marketplace plugin mana yang diizinkan pengguna untuk ditambahkan dan menginstal plugin darinya. Pengaturan ini hanya dapat dikonfigurasi dalam pengaturan yang dikelola dan memberikan administrator kontrol ketat atas sumber marketplace.
Lokasi file pengaturan yang dikelola:
- macOS:
/Library/Application Support/ClaudeCode/managed-settings.json - Linux dan WSL:
/etc/claude-code/managed-settings.json - Windows:
C:\Program Files\ClaudeCode\managed-settings.json
- Hanya tersedia dalam pengaturan yang dikelola (
managed-settings.json) - Tidak dapat ditimpa oleh pengaturan pengguna atau proyek (prioritas tertinggi)
- Diterapkan sebelum operasi jaringan dan sistem file, sehingga sumber yang diblokir tidak pernah dijalankan
- Menggunakan pencocokan tepat untuk spesifikasi sumber (termasuk
ref,pathuntuk sumber git), kecualihostPatterndanpathPattern, yang menggunakan pencocokan regex
undefined(default): tidak ada pembatasan, sehingga pengguna dapat menambahkan marketplace apa pun- Array kosong
[]: lockdown lengkap, sehingga pengguna tidak dapat menambahkan marketplace baru apa pun - Daftar sumber: pengguna hanya dapat menambahkan marketplace yang cocok dengan tepat
hostPattern dan pathPattern menggunakan pencocokan regex terhadap host marketplace dan jalur sistem file masing-masing.
- Repositori GitHub:
repo (diperlukan), ref (opsional: cabang atau tag), path (opsional: subdirektori)
- Repositori Git:
url (diperlukan), ref (opsional: cabang atau tag), path (opsional: subdirektori)
- Marketplace berbasis URL:
url (diperlukan), headers (opsional: header HTTP untuk akses terautentikasi)
Marketplace berbasis URL hanya mengunduh file
marketplace.json. Mereka tidak mengunduh file plugin dari server. Plugin dalam marketplace berbasis URL harus menggunakan sumber eksternal (GitHub, npm, atau URL git) daripada jalur relatif. Untuk plugin dengan jalur relatif, gunakan marketplace berbasis Git sebagai gantinya. Lihat Troubleshooting untuk detail.- Paket NPM:
package (diperlukan, mendukung paket berscopus)
- Jalur file:
path (diperlukan: jalur absolut ke file marketplace.json)
- Jalur direktori:
path (diperlukan: jalur absolut ke direktori yang berisi .claude-plugin/marketplace.json)
- Pencocokan pola host:
hostPattern (diperlukan: pola regex untuk mencocokkan terhadap host marketplace)
Gunakan pencocokan pola host saat Anda ingin memungkinkan semua marketplace dari host tertentu tanpa menghitung setiap repositori secara individual. Ini berguna untuk organisasi dengan server GitHub Enterprise atau GitLab internal di mana pengembang membuat marketplace mereka sendiri.
Ekstraksi host berdasarkan jenis sumber:
github: selalu cocok dengangithub.comgit: mengekstrak nama host dari URL (mendukung format HTTPS dan SSH)url: mengekstrak nama host dari URLnpm,file,directory: tidak didukung untuk pencocokan pola host
- Pencocokan pola jalur:
pathPattern (diperlukan: pola regex yang dicocokkan terhadap bidang path dari sumber file dan directory)
Gunakan pencocokan pola jalur untuk memungkinkan marketplace berbasis sistem file bersama dengan pembatasan hostPattern untuk sumber jaringan. Atur ".*" untuk memungkinkan semua jalur lokal, atau pola yang lebih sempit untuk membatasi ke direktori tertentu.
Contoh konfigurasi:
Contoh: izinkan marketplace spesifik saja:
github dan git), ini termasuk semua bidang opsional:
repoatauurlharus cocok dengan tepat- Bidang
refharus cocok dengan tepat (atau keduanya tidak terdefinisi) - Bidang
pathharus cocok dengan tepat (atau keduanya tidak terdefinisi)
extraKnownMarketplaces:
Perbedaan format:
strictKnownMarketplaces menggunakan objek sumber langsung:
extraKnownMarketplaces memerlukan marketplace bernama:
strictKnownMarketplaces adalah gerbang kebijakan: mengontrol apa yang dapat ditambahkan pengguna tetapi tidak mendaftarkan marketplace apa pun. Untuk membatasi dan pra-mendaftarkan marketplace untuk semua pengguna, atur keduanya dalam managed-settings.json:
strictKnownMarketplaces yang diatur, pengguna masih dapat menambahkan marketplace yang diizinkan secara manual melalui /plugin marketplace add, tetapi tidak tersedia secara otomatis.
Catatan penting:
- Pembatasan diperiksa sebelum permintaan jaringan atau operasi sistem file apa pun
- Saat diblokir, pengguna melihat pesan kesalahan yang jelas menunjukkan sumber diblokir oleh kebijakan yang dikelola
- Pembatasan diterapkan pada penambahan marketplace dan pada instalasi plugin, pembaruan, penyegaran, dan pembaruan otomatis. Marketplace yang ditambahkan sebelum kebijakan ditetapkan tidak dapat digunakan untuk menginstal atau memperbarui plugin setelah sumbernya tidak lagi cocok dengan daftar putih
- Pengaturan yang dikelola memiliki prioritas tertinggi dan tidak dapat ditimpa
strictPluginOnlyCustomization
Pengaturan yang dikelola saja: memblokir skills, agents, hooks, dan MCP servers dari sumber pengguna dan proyek, sehingga mereka hanya dapat berasal dari plugin atau pengaturan yang dikelola. Gabungkan dengan strictKnownMarketplaces untuk mengontrol rantai pasokan kustomisasi penuh: daftar putih marketplace mengontrol plugin mana yang dapat diinstal pengguna, dan pengaturan ini memblokir semua yang tidak berasal dari plugin atau dari pengaturan yang dikelola.
Nilainya adalah true untuk mengunci keempat permukaan, atau array yang menamai permukaan yang akan dikunci:
Nama permukaan yang tidak dikenali oleh versi Claude Code diabaikan daripada gagal file pengaturan, jadi Anda dapat menambahkan nama permukaan baru sebelum semua klien diperbarui.
Mengelola plugin
Gunakan perintah/plugin untuk mengelola plugin secara interaktif:
- Jelajahi plugin yang tersedia dari marketplace
- Instal/copot plugin
- Aktifkan/nonaktifkan plugin
- Lihat detail plugin (skills, agents, hooks yang disediakan)
- Tambah/hapus marketplace
Variabel lingkungan
Variabel lingkungan memungkinkan Anda mengontrol perilaku Claude Code tanpa mengedit file pengaturan. Variabel apa pun juga dapat dikonfigurasi dalamsettings.json di bawah kunci env untuk menerapkannya ke setiap sesi atau mengulanginya ke tim Anda.
Lihat referensi variabel lingkungan untuk daftar lengkap.
Tools yang tersedia untuk Claude
Claude Code memiliki akses ke serangkaian tools untuk membaca, mengedit, mencari, menjalankan perintah, dan mengorkestrasi subagents. Nama tool adalah string tepat yang Anda gunakan dalam aturan izin dan pencocokan hook. Lihat referensi tools untuk daftar lengkap dan detail perilaku tool Bash.Lihat juga
- Permissions: sistem izin, sintaks aturan, pola spesifik tool, dan kebijakan yang dikelola
- Authentication: atur akses pengguna ke Claude Code
- Debug your configuration: diagnosis mengapa pengaturan, hook, atau server MCP tidak berlaku
- Troubleshoot installation and login: instalasi, autentikasi, dan masalah platform