Skip to main content
Claude Code menawarkan berbagai pengaturan untuk mengonfigurasi perilakunya sesuai kebutuhan Anda. Anda dapat mengonfigurasi Claude Code dengan menjalankan perintah /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
Cakupan User paling baik untuk:
  • 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)
Cakupan Project paling baik untuk:
  • Pengaturan bersama tim (izin, hooks, MCP servers)
  • Plugins yang harus dimiliki seluruh tim
  • Standardisasi tooling di seluruh kolaborator
Cakupan Local paling baik untuk:
  • 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:
  1. Managed (tertinggi): tidak dapat ditimpa oleh apa pun
  2. Argumen baris perintah: penggantian sesi sementara
  3. Local: menimpa pengaturan proyek dan pengguna
  4. Project: menimpa pengaturan pengguna
  5. User (terendah): berlaku ketika tidak ada yang menentukan pengaturan
Misalnya, jika pengaturan pengguna Anda menetapkan 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

File settings.json adalah mekanisme resmi untuk mengonfigurasi Claude Code melalui pengaturan hierarki:
  • Pengaturan pengguna didefinisikan dalam ~/.claude/settings.json dan berlaku untuk semua proyek.
  • Pengaturan proyek disimpan di direktori proyek Anda:
    • .claude/settings.json untuk pengaturan yang diperiksa ke dalam kontrol sumber dan dibagikan dengan tim Anda
    • .claude/settings.local.json untuk 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 izin allow miliknya 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 mencerminkan managed-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\ClaudeCode dengan nilai Settings (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)
    • Berbasis file: managed-settings.json dan managed-mcp.json digunakan ke direktori sistem:
      • macOS: /Library/Application Support/ClaudeCode/
      • Linux dan WSL: /etc/claude-code/
      • Windows: C:\Program Files\ClaudeCode\
      Jalur Windows warisan C:\ProgramData\ClaudeCode\managed-settings.json tidak lagi didukung sejak v2.1.75. Administrator yang menggunakan pengaturan ke lokasi tersebut harus memigrasikan file ke C:\Program Files\ClaudeCode\managed-settings.json.
      Pengaturan yang dikelola berbasis file juga mendukung direktori drop-in di managed-settings.d/ dalam direktori sistem yang sama bersama managed-settings.json. Ini memungkinkan tim terpisah untuk menggunakan fragmen kebijakan independen tanpa mengoordinasikan pengeditan ke file tunggal. Mengikuti konvensi systemd, managed-settings.json digabungkan terlebih dahulu sebagai dasar, kemudian semua file *.json dalam 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, misalnya 10-telemetry.json dan 20-security.json.
    Lihat pengaturan yang dikelola dan Konfigurasi MCP yang Dikelola untuk detail. Repositori ini mencakup template penyebaran pemula untuk Jamf, Iru (Kandji), Intune, dan Group Policy. Gunakan ini sebagai titik awal dan sesuaikan dengan kebutuhan Anda.
    Penyebaran yang dikelola juga dapat membatasi penambahan marketplace plugin menggunakan strictKnownMarketplaces. 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
Baris $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 termasuk permissions, 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 /model untuk beralih di tengah sesi
  • outputStyle: bagian dari prompt sistem, yang dibangun kembali pada /clear atau 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 -p cetak ringkasan ke stderr.
  • claude doctor mencantumkan setiap entri yang tidak valid dengan sumber dan bidangnya.
Validasi perubahan kebijakan dengan menjalankan 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 format Tool 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 dalam filesystem.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:
Pembatasan sistem file dan jaringan dapat dikonfigurasi dalam dua cara yang digabungkan bersama:
  • 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 Edit untuk mengontrol akses tools file Claude, aturan deny Read untuk memblokir pembacaan, dan aturan allow/deny WebFetch untuk 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:
Nama model dalam trailer mencerminkan model aktif untuk sesi. Atribusi pull request default:
Contoh:
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.
Perintah berjalan dengan variabel lingkungan yang sama seperti hooks, termasuk CLAUDE_PROJECT_DIR. Ini menerima JSON melalui stdin dengan bidang query:
Keluarkan jalur file yang dipisahkan baris baru ke stdout (saat ini dibatasi hingga 15):
Contoh:
Pengaturan footerLinksRegexes 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
Dengan ini dikonfigurasi, saat 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. Pengaturan allowManagedHooksOnly 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 enabledPlugins dimuat. Ini memungkinkan administrator mendistribusikan hooks yang disaring melalui marketplace organisasi sambil memblokir segalanya. Kepercayaan diberikan oleh ID plugin@marketplace penuh, jadi plugin dengan nama yang sama dari marketplace berbeda tetap diblokir
  • Hooks pengguna, hooks proyek, dan semua plugin hooks lainnya diblokir
Batasi URL HTTP hook: Batasi URL mana yang dapat ditargetkan oleh HTTP hooks. Mendukung * 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.
Batasi variabel lingkungan HTTP hook: Batasi nama variabel lingkungan mana yang dapat diinterpolasi oleh HTTP hooks ke dalam nilai header. allowedEnvVars efektif setiap hook adalah persimpangan dari daftar sendiri dan pengaturan ini.

Hitung pengaturan yang dikelola dengan policy helper

Pengaturan policyHelper 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:
Saat helper memancarkan 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:
  1. 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/*.json dan managed-settings.json, digabungkan bersama)
      • Registry HKCU (Windows saja)
    • 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.allowManagedDomainsOnly dan sandbox.filesystem.allowManagedReadPathsOnly, dengan daftar putih terkait mereka
      • allowAllClaudeAiMcps
      • jalur binary sandbox sandbox.bwrapPath dan sandbox.socatPath
      • forceRemoteSettingsRefresh
    • 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 menetapkan parentSettingsBehavior ke "merge". Nilai embedder disaring sehingga mereka dapat mengencangkan kebijakan yang dikelola tetapi tidak melonggarkannya.
  2. 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
  3. Pengaturan proyek lokal (.claude/settings.local.json)
    • Pengaturan proyek pribadi
  4. Pengaturan proyek bersama (.claude/settings.json)
    • Pengaturan proyek bersama tim dalam kontrol sumber
  5. Pengaturan pengguna (~/.claude/settings.json)
    • Pengaturan global pribadi
Hierarki ini memastikan bahwa kebijakan organisasi selalu diterapkan sambil tetap memungkinkan tim dan individu untuk menyesuaikan pengalaman mereka. Prioritas yang sama berlaku apakah Anda menjalankan Claude Code dari CLI, ekstensi VS Code, atau IDE JetBrains. Misalnya, jika pengaturan pengguna Anda menetapkan 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:

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-name atau 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 file CLAUDE.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 pengaturan permissions.deny dalam file .claude/settings.json Anda:
Ini menggantikan konfigurasi 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
File subagent mendefinisikan asisten AI khusus dengan prompt khusus dan izin tool. Pelajari lebih lanjut tentang membuat dan menggunakan subagents dalam dokumentasi subagents.

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 dalam settings.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.
Contoh:

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:
  1. Anggota tim diminta untuk menginstal marketplace saat mereka mempercayai folder
  2. Anggota tim kemudian diminta untuk menginstal plugin dari marketplace tersebut
  3. Pengguna dapat melewati marketplace atau plugin yang tidak diinginkan (disimpan dalam pengaturan pengguna)
  4. Instalasi menghormati batas kepercayaan dan memerlukan persetujuan eksplisit
Contoh:
Jenis sumber marketplace:
  • github: Repositori GitHub (menggunakan repo)
  • git: URL git apa pun (menggunakan url)
  • directory: Jalur sistem file lokal (menggunakan path, hanya untuk pengembangan)
  • hostPattern: Pola regex untuk mencocokkan host marketplace (menggunakan hostPattern)
  • settings: marketplace inline yang dideklarasikan langsung dalam settings.json tanpa repositori yang dihosting terpisah (menggunakan name dan plugins)
Jenis sumber 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
Karakteristik kunci:
  • 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, path untuk sumber git), kecuali hostPattern dan pathPattern, yang menggunakan pencocokan regex
Perilaku daftar putih:
  • 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
Semua jenis sumber yang didukung: Daftar putih mendukung beberapa jenis sumber marketplace. Sebagian besar sumber menggunakan pencocokan tepat, sementara hostPattern dan pathPattern menggunakan pencocokan regex terhadap host marketplace dan jalur sistem file masing-masing.
  1. Repositori GitHub:
Bidang: repo (diperlukan), ref (opsional: cabang atau tag), path (opsional: subdirektori)
  1. Repositori Git:
Bidang: url (diperlukan), ref (opsional: cabang atau tag), path (opsional: subdirektori)
  1. Marketplace berbasis URL:
Bidang: 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.
  1. Paket NPM:
Bidang: package (diperlukan, mendukung paket berscopus)
  1. Jalur file:
Bidang: path (diperlukan: jalur absolut ke file marketplace.json)
  1. Jalur direktori:
Bidang: path (diperlukan: jalur absolut ke direktori yang berisi .claude-plugin/marketplace.json)
  1. Pencocokan pola host:
Bidang: 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 dengan github.com
  • git: mengekstrak nama host dari URL (mendukung format HTTPS dan SSH)
  • url: mengekstrak nama host dari URL
  • npm, file, directory: tidak didukung untuk pencocokan pola host
  1. Pencocokan pola jalur:
Bidang: 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:
Contoh: nonaktifkan semua penambahan marketplace:
Contoh: izinkan semua marketplace dari server git internal:
Persyaratan pencocokan tepat: Sumber marketplace harus cocok dengan tepat agar penambahan pengguna diizinkan. Untuk sumber berbasis git (github dan git), ini termasuk semua bidang opsional:
  • repo atau url harus cocok dengan tepat
  • Bidang ref harus cocok dengan tepat (atau keduanya tidak terdefinisi)
  • Bidang path harus cocok dengan tepat (atau keduanya tidak terdefinisi)
Contoh sumber yang tidak cocok:
Perbandingan dengan extraKnownMarketplaces: Perbedaan format: strictKnownMarketplaces menggunakan objek sumber langsung:
extraKnownMarketplaces memerlukan marketplace bernama:
Menggunakan keduanya bersama: 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:
Dengan hanya 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
Lihat Pembatasan marketplace yang dikelola untuk dokumentasi yang menghadap pengguna.

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:
Untuk setiap permukaan yang dikunci, Claude Code melewati sumber tingkat pengguna dan proyek dan hanya memuat sumber yang disediakan plugin dan yang dikelola: 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
Pelajari lebih lanjut tentang sistem plugin dalam dokumentasi plugins.

Variabel lingkungan

Variabel lingkungan memungkinkan Anda mengontrol perilaku Claude Code tanpa mengedit file pengaturan. Variabel apa pun juga dapat dikonfigurasi dalam settings.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