/config saat menggunakan REPL interaktif, yang membuka antarmuka Pengaturan bertab di mana Anda dapat melihat informasi status dan memodifikasi opsi konfigurasi.
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
| Cakupan | Lokasi | Siapa yang terpengaruh | Dibagikan dengan tim? |
|---|---|---|---|
| Managed | Pengaturan yang dikelola server, plist / registry, atau managed-settings.json tingkat sistem | Semua pengguna di mesin | Ya (digunakan oleh IT) |
| User | Direktori ~/.claude/ | Anda, di semua proyek | Tidak |
| Project | .claude/ di repositori | Semua kolaborator di repositori ini | Ya (dikomit ke git) |
| Local | .claude/settings.local.json | Anda, hanya di repositori ini | Tidak (diabaikan git) |
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 dikonfigurasi dalam beberapa cakupan, cakupan yang lebih spesifik memiliki 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
Apa yang menggunakan cakupan
Cakupan berlaku untuk banyak fitur Claude Code:| Fitur | Lokasi pengguna | Lokasi proyek | Lokasi lokal |
|---|---|---|---|
| Settings | ~/.claude/settings.json | .claude/settings.json | .claude/settings.local.json |
| Subagents | ~/.claude/agents/ | .claude/agents/ | Tidak ada |
| MCP servers | ~/.claude.json | .mcp.json | ~/.claude.json (per-proyek) |
| Plugins | ~/.claude/settings.json | .claude/settings.json | .claude/settings.local.json |
| CLAUDE.md | ~/.claude/CLAUDE.md | CLAUDE.md atau .claude/CLAUDE.md | Tidak ada |
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. Claude Code akan mengonfigurasi git untuk mengabaikan.claude/settings.local.jsonsaat dibuat.
-
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 server Anthropic melalui konsol admin Claude.ai. 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(digunakan melalui profil konfigurasi di Jamf, Kandji, atau alat MDM lainnya) - 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 preferensi Anda (tema, pengaturan notifikasi, mode editor), 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.
Pengaturan yang tersedia
settings.json mendukung sejumlah opsi:
| Kunci | Deskripsi | Contoh |
|---|---|---|
apiKeyHelper | Skrip khusus, yang akan dieksekusi dalam /bin/sh, untuk menghasilkan nilai auth. Nilai ini akan dikirim sebagai header X-Api-Key dan Authorization: Bearer untuk permintaan model | /bin/generate_temp_api_key.sh |
autoMemoryDirectory | Direktori khusus untuk penyimpanan memori otomatis. Menerima jalur yang diperluas ~/. Tidak diterima dalam pengaturan proyek (.claude/settings.json) untuk mencegah repo bersama dari pengalihan penulisan memori ke lokasi sensitif. Diterima dari pengaturan kebijakan, lokal, dan pengguna | "~/my-memory-dir" |
cleanupPeriodDays | Sesi yang tidak aktif lebih lama dari periode ini dihapus saat startup (default: 30 hari). Pengaturan ke 0 menghapus semua transkrip yang ada saat startup dan menonaktifkan persistensi sesi sepenuhnya. File .jsonl baru tidak ditulis, /resume tidak menunjukkan percakapan, dan hooks menerima transcript_path kosong. | 20 |
companyAnnouncements | Pengumuman untuk ditampilkan kepada pengguna saat startup. Jika beberapa pengumuman disediakan, mereka akan diputar secara acak. | ["Welcome to Acme Corp! Review our code guidelines at docs.acme.com"] |
env | Variabel lingkungan yang akan diterapkan ke setiap sesi | {"FOO": "bar"} |
attribution | Sesuaikan atribusi untuk komit git dan pull request. Lihat Pengaturan atribusi | {"commit": "🤖 Generated with Claude Code", "pr": ""} |
includeCoAuthoredBy | Usang: Gunakan attribution sebagai gantinya. Apakah akan menyertakan baris co-authored-by Claude dalam komit git dan pull request (default: true) | false |
includeGitInstructions | Sertakan instruksi alur kerja komit dan PR bawaan dalam prompt sistem Claude (default: true). Atur ke false untuk menghapus instruksi ini, misalnya saat menggunakan skills alur kerja git Anda sendiri. Variabel lingkungan CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS memiliki prioritas atas pengaturan ini saat diatur | false |
permissions | Lihat tabel di bawah untuk struktur izin. | |
autoMode | Sesuaikan apa yang diblokir dan diizinkan oleh pengklasifikasi mode otomatis. Berisi array aturan prosa environment, allow, dan soft_deny. Lihat Konfigurasikan pengklasifikasi mode otomatis. Tidak dibaca dari pengaturan proyek bersama | {"environment": ["Trusted repo: github.example.com/acme"]} |
disableAutoMode | Atur ke "disable" untuk mencegah mode otomatis diaktifkan. Menghapus auto dari siklus Shift+Tab dan menolak --permission-mode auto saat startup. Paling berguna dalam pengaturan yang dikelola di mana pengguna tidak dapat menimpanya | "disable" |
useAutoModeDuringPlan | Apakah plan mode menggunakan semantik mode otomatis saat mode otomatis tersedia. Default: true. Tidak dibaca dari pengaturan proyek bersama. Muncul di /config sebagai “Use auto mode during plan” | false |
hooks | Konfigurasikan perintah khusus untuk dijalankan pada acara siklus hidup. Lihat dokumentasi hooks untuk format | Lihat hooks |
disableAllHooks | Nonaktifkan semua hooks dan status line khusus apa pun | true |
allowManagedHooksOnly | (Pengaturan yang dikelola saja) Cegah pemuatan hooks pengguna, proyek, dan plugin. Hanya memungkinkan hooks yang dikelola dan hooks SDK. Lihat Konfigurasi Hook | true |
allowedHttpHookUrls | Daftar putih pola URL yang dapat ditargetkan oleh HTTP hooks. Mendukung * sebagai wildcard. Saat diatur, hooks dengan URL yang tidak cocok diblokir. Tidak terdefinisi = tidak ada pembatasan, array kosong = blokir semua HTTP hooks. Array digabungkan di seluruh sumber pengaturan. Lihat Konfigurasi Hook | ["https://hooks.example.com/*"] |
httpHookAllowedEnvVars | Daftar putih nama variabel lingkungan yang dapat diinterpolasi oleh HTTP hooks ke dalam header. Saat diatur, allowedEnvVars efektif setiap hook adalah persimpangan dengan daftar ini. Tidak terdefinisi = tidak ada pembatasan. Array digabungkan di seluruh sumber pengaturan. Lihat Konfigurasi Hook | ["MY_TOKEN", "HOOK_SECRET"] |
allowManagedPermissionRulesOnly | (Pengaturan yang dikelola saja) Cegah pengaturan pengguna dan proyek dari mendefinisikan aturan izin allow, ask, atau deny. Hanya aturan dalam pengaturan yang dikelola yang berlaku. Lihat Pengaturan khusus yang dikelola | true |
allowManagedMcpServersOnly | (Pengaturan yang dikelola saja) Hanya allowedMcpServers dari pengaturan yang dikelola yang dihormati. deniedMcpServers masih digabungkan dari semua sumber. Pengguna masih dapat menambahkan MCP servers, tetapi hanya daftar putih yang ditentukan admin yang berlaku. Lihat Konfigurasi MCP yang Dikelola | true |
model | Timpa model default untuk digunakan untuk Claude Code | "claude-sonnet-4-6" |
availableModels | Batasi model mana yang dapat dipilih pengguna melalui /model, --model, alat Config, atau ANTHROPIC_MODEL. Tidak mempengaruhi opsi Default. Lihat Batasi pemilihan model | ["sonnet", "haiku"] |
modelOverrides | Peta ID model Anthropic ke ID model spesifik penyedia seperti ARN profil inferensi Bedrock. Setiap entri pemilih model menggunakan nilai yang dipetakan saat memanggil API penyedia. Lihat Timpa ID model per versi | {"claude-opus-4-6": "arn:aws:bedrock:..."} |
effortLevel | Pertahankan tingkat usaha di seluruh sesi. Menerima "low", "medium", atau "high". Ditulis secara otomatis saat Anda menjalankan /effort low, /effort medium, atau /effort high. Didukung di Opus 4.6 dan Sonnet 4.6 | "medium" |
otelHeadersHelper | Skrip untuk menghasilkan header OpenTelemetry dinamis. Berjalan saat startup dan secara berkala (lihat Header dinamis) | /bin/generate_otel_headers.sh |
statusLine | Konfigurasikan status line khusus untuk menampilkan konteks. Lihat dokumentasi statusLine | {"type": "command", "command": "~/.claude/statusline.sh"} |
fileSuggestion | Konfigurasikan skrip khusus untuk pelengkapan otomatis file @. Lihat Pengaturan saran file | {"type": "command", "command": "~/.claude/file-suggestion.sh"} |
respectGitignore | Kontrol apakah pemilih file @ menghormati pola .gitignore. Saat true (default), file yang cocok dengan pola .gitignore dikecualikan dari saran | false |
outputStyle | Konfigurasikan gaya output untuk menyesuaikan prompt sistem. Lihat dokumentasi gaya output | "Explanatory" |
agent | Jalankan thread utama sebagai subagent bernama. Menerapkan prompt sistem subagent, pembatasan tool, dan model. Lihat Panggil subagents secara eksplisit | "code-reviewer" |
forceLoginMethod | Gunakan claudeai untuk membatasi login ke akun Claude.ai, console untuk membatasi login ke akun Claude Console (penagihan penggunaan API) | claudeai |
forceLoginOrgUUID | Tentukan UUID organisasi untuk memilihnya secara otomatis selama login, melewati langkah pemilihan organisasi. Memerlukan forceLoginMethod untuk diatur | "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" |
enableAllProjectMcpServers | Secara otomatis menyetujui semua MCP servers yang ditentukan dalam file .mcp.json proyek | true |
enabledMcpjsonServers | Daftar MCP servers spesifik dari file .mcp.json untuk menyetujui | ["memory", "github"] |
disabledMcpjsonServers | Daftar MCP servers spesifik dari file .mcp.json untuk menolak | ["filesystem"] |
channelsEnabled | (Pengaturan yang dikelola saja) Izinkan channels untuk pengguna Team dan Enterprise. Tidak diatur atau false memblokir pengiriman pesan channel terlepas dari apa yang dilewatkan pengguna ke --channels | true |
allowedChannelPlugins | (Pengaturan yang dikelola saja) Daftar putih plugin channel yang dapat mendorong pesan. Menggantikan daftar putih Anthropic default saat diatur. Tidak terdefinisi = kembali ke default, array kosong = blokir semua plugin channel. Memerlukan channelsEnabled: true. Lihat Batasi plugin channel mana yang dapat dijalankan | [{ "marketplace": "claude-plugins-official", "plugin": "telegram" }] |
allowedMcpServers | Saat diatur dalam managed-settings.json, daftar putih MCP servers yang dapat dikonfigurasi pengguna. Tidak terdefinisi = tidak ada pembatasan, array kosong = lockdown. Berlaku untuk semua cakupan. Daftar hitam memiliki prioritas. Lihat Konfigurasi MCP yang Dikelola | [{ "serverName": "github" }] |
deniedMcpServers | Saat diatur dalam managed-settings.json, daftar hitam MCP servers yang secara eksplisit diblokir. Berlaku untuk semua cakupan termasuk servers yang dikelola. Daftar hitam memiliki prioritas atas daftar putih. Lihat Konfigurasi MCP yang Dikelola | [{ "serverName": "filesystem" }] |
strictKnownMarketplaces | Saat diatur dalam managed-settings.json, daftar putih marketplace plugin yang dapat ditambahkan pengguna. Tidak terdefinisi = tidak ada pembatasan, array kosong = lockdown. Berlaku untuk penambahan marketplace saja. Lihat Pembatasan marketplace yang dikelola | [{ "source": "github", "repo": "acme-corp/plugins" }] |
blockedMarketplaces | (Pengaturan yang dikelola saja) Daftar hitam sumber marketplace. Sumber yang diblokir diperiksa sebelum mengunduh, jadi mereka tidak pernah menyentuh sistem file. Lihat Pembatasan marketplace yang dikelola | [{ "source": "github", "repo": "untrusted/plugins" }] |
pluginTrustMessage | (Pengaturan yang dikelola saja) Pesan khusus ditambahkan ke peringatan kepercayaan plugin yang ditampilkan sebelum instalasi. Gunakan ini untuk menambahkan konteks spesifik organisasi, misalnya untuk mengonfirmasi bahwa plugin dari marketplace internal Anda telah disaring. | "All plugins from our marketplace are approved by IT" |
awsAuthRefresh | Skrip khusus yang memodifikasi direktori .aws (lihat konfigurasi kredensial lanjutan) | aws sso login --profile myprofile |
awsCredentialExport | Skrip khusus yang menampilkan JSON dengan kredensial AWS (lihat konfigurasi kredensial lanjutan) | /bin/generate_aws_grant.sh |
alwaysThinkingEnabled | Aktifkan pemikiran yang diperluas secara default untuk semua sesi. Biasanya dikonfigurasi melalui perintah /config daripada mengedit langsung | true |
plansDirectory | Sesuaikan di mana file rencana disimpan. Jalur relatif terhadap akar proyek. Default: ~/.claude/plans | "./plans" |
showClearContextOnPlanAccept | Tampilkan opsi “clear context” pada layar penerimaan rencana. Default ke false. Atur ke true untuk mengembalikan opsi | true |
spinnerVerbs | Sesuaikan kata kerja aksi yang ditampilkan dalam spinner dan pesan durasi giliran. Atur mode ke "replace" untuk menggunakan hanya kata kerja Anda, atau "append" untuk menambahkannya ke default | {"mode": "append", "verbs": ["Pondering", "Crafting"]} |
language | Konfigurasikan bahasa respons pilihan Claude (misalnya, "japanese", "spanish", "french"). Claude akan merespons dalam bahasa ini secara default. Juga menetapkan bahasa voice dictation | "japanese" |
voiceEnabled | Aktifkan push-to-talk voice dictation. Ditulis secara otomatis saat Anda menjalankan /voice. Memerlukan akun Claude.ai | true |
autoUpdatesChannel | Saluran rilis untuk diikuti untuk pembaruan. Gunakan "stable" untuk versi yang biasanya sekitar satu minggu lama dan melewati versi dengan regresi besar, atau "latest" (default) untuk rilis terbaru | "stable" |
spinnerTipsEnabled | Tampilkan tips dalam spinner saat Claude bekerja. Atur ke false untuk menonaktifkan tips (default: true) | false |
spinnerTipsOverride | Timpa tips spinner dengan string khusus. tips: array string tip. excludeDefault: jika true, hanya tampilkan tips khusus; jika false atau tidak ada, tips khusus digabungkan dengan tips bawaan | { "excludeDefault": true, "tips": ["Use our internal tool X"] } |
prefersReducedMotion | Kurangi atau nonaktifkan animasi UI (spinners, shimmer, efek flash) untuk aksesibilitas | true |
fastModePerSessionOptIn | Saat true, mode cepat tidak bertahan di seluruh sesi. Setiap sesi dimulai dengan mode cepat mati, memerlukan pengguna untuk mengaktifkannya dengan /fast. Preferensi mode cepat pengguna masih disimpan. Lihat Memerlukan opt-in per sesi | true |
teammateMode | Bagaimana rekan tim agent ditampilkan: auto (memilih panel terpisah di tmux atau iTerm2, dalam proses sebaliknya), in-process, atau tmux. Lihat atur agent teams | "in-process" |
feedbackSurveyRate | Probabilitas (0–1) bahwa survei kualitas sesi muncul saat memenuhi syarat. Atur ke 0 untuk menekan sepenuhnya. Berguna saat menggunakan Bedrock, Vertex, atau Foundry di mana tingkat sampel default tidak berlaku | 0.05 |
Pengaturan konfigurasi global
Pengaturan ini disimpan dalam~/.claude.json daripada settings.json. Menambahkannya ke settings.json akan memicu kesalahan validasi skema.
| Kunci | Deskripsi | Contoh |
|---|---|---|
autoConnectIde | Secara otomatis terhubung ke IDE yang sedang berjalan saat Claude Code dimulai dari terminal eksternal. Default: false. Muncul di /config sebagai Auto-connect to IDE (external terminal) saat berjalan di luar terminal VS Code atau JetBrains | true |
autoInstallIdeExtension | Secara otomatis instal ekstensi IDE Claude Code saat berjalan dari terminal VS Code. Default: true. Muncul di /config sebagai Auto-install IDE extension saat berjalan di dalam terminal VS Code atau JetBrains. Anda juga dapat menetapkan variabel lingkungan CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL | false |
editorMode | Mode binding kunci untuk prompt input: "normal" atau "vim". Default: "normal". Ditulis secara otomatis saat Anda menjalankan /vim. Muncul di /config sebagai Key binding mode | "vim" |
showTurnDuration | Tampilkan pesan durasi giliran setelah respons, misalnya “Cooked for 1m 6s”. Default: true. Muncul di /config sebagai Show turn duration | false |
terminalProgressBarEnabled | Tampilkan bilah kemajuan terminal di terminal yang didukung: ConEmu, Ghostty 1.2.0+, dan iTerm2 3.6.6+. Default: true. Muncul di /config sebagai Terminal progress bar | false |
Pengaturan worktree
Konfigurasikan bagaimana--worktree membuat dan mengelola git worktrees. Gunakan pengaturan ini untuk mengurangi penggunaan disk dan waktu startup di monorepo besar.
| Kunci | Deskripsi | Contoh |
|---|---|---|
worktree.symlinkDirectories | Direktori untuk symlink dari repositori utama ke setiap worktree untuk menghindari duplikasi direktori besar di disk. Tidak ada direktori yang disymlink secara default | ["node_modules", ".cache"] |
worktree.sparsePaths | Direktori untuk diperiksa di setiap worktree melalui git sparse-checkout (mode cone). Hanya jalur yang terdaftar yang ditulis ke disk, yang lebih cepat di monorepo besar | ["packages/my-app", "shared/utils"] |
Pengaturan izin
| Kunci | Deskripsi | Contoh |
|---|---|---|
allow | Array aturan izin untuk memungkinkan penggunaan tool. Lihat Sintaks aturan izin di bawah untuk detail pencocokan pola | [ "Bash(git diff *)" ] |
ask | Array aturan izin untuk meminta konfirmasi saat penggunaan tool. Lihat Sintaks aturan izin di bawah | [ "Bash(git push *)" ] |
deny | Array aturan izin untuk menolak penggunaan tool. Gunakan ini untuk mengecualikan file sensitif dari akses Claude Code. Lihat Sintaks aturan izin dan Batasan izin Bash | [ "WebFetch", "Bash(curl *)", "Read(./.env)", "Read(./secrets/**)" ] |
additionalDirectories | Direktori kerja tambahan yang dapat diakses Claude | [ "../docs/" ] |
defaultMode | Mode izin default saat membuka Claude Code | "acceptEdits" |
disableBypassPermissionsMode | Atur ke "disable" untuk mencegah mode bypassPermissions diaktifkan. Ini menonaktifkan flag baris perintah --dangerously-skip-permissions. Paling berguna dalam pengaturan yang dikelola di mana pengguna tidak dapat menimpanya | "disable" |
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 menang.
Contoh cepat:
| Aturan | Efek |
|---|---|
Bash | Cocok dengan semua perintah Bash |
Bash(npm run *) | Cocok dengan perintah yang dimulai dengan npm run |
Read(./.env) | Cocok dengan membaca file .env |
WebFetch(domain:example.com) | Cocok dengan permintaan fetch ke example.com |
Pengaturan sandbox
Konfigurasikan perilaku sandboxing lanjutan. Sandboxing mengisolasi perintah bash dari sistem file dan jaringan Anda. Lihat Sandboxing untuk detail.| Kunci | Deskripsi | Contoh |
|---|---|---|
enabled | Aktifkan bash sandboxing (macOS, Linux, dan WSL2). Default: false | true |
failIfUnavailable | Keluar dengan kesalahan saat startup jika sandbox.enabled adalah true tetapi sandbox tidak dapat dimulai (dependensi yang hilang, platform yang tidak didukung, atau pembatasan platform). Saat false (default), peringatan ditampilkan dan perintah berjalan tanpa sandbox. Dimaksudkan untuk penyebaran pengaturan yang dikelola yang memerlukan sandboxing sebagai gerbang keras | true |
autoAllowBashIfSandboxed | Secara otomatis menyetujui perintah bash saat sandboxed. Default: true | true |
excludedCommands | Perintah yang harus dijalankan di luar sandbox | ["git", "docker"] |
allowUnsandboxedCommands | Izinkan perintah dijalankan di luar sandbox melalui parameter dangerouslyDisableSandbox. Saat diatur ke false, pintu keluar dangerouslyDisableSandbox sepenuhnya dinonaktifkan dan semua perintah harus dijalankan sandboxed (atau berada dalam excludedCommands). Berguna untuk kebijakan perusahaan yang memerlukan sandboxing ketat. Default: true | false |
filesystem.allowWrite | Jalur tambahan di mana perintah sandboxed dapat menulis. Array digabungkan di seluruh semua cakupan pengaturan: jalur pengguna, proyek, dan yang dikelola digabungkan, bukan diganti. Juga digabungkan dengan jalur dari aturan izin Edit(...) allow. Lihat prefiks jalur sandbox di bawah. | ["/tmp/build", "~/.kube"] |
filesystem.denyWrite | Jalur di mana perintah sandboxed tidak dapat menulis. Array digabungkan di seluruh semua cakupan pengaturan. Juga digabungkan dengan jalur dari aturan izin Edit(...) deny. | ["/etc", "/usr/local/bin"] |
filesystem.denyRead | Jalur di mana perintah sandboxed tidak dapat membaca. Array digabungkan di seluruh semua cakupan pengaturan. Juga digabungkan dengan jalur dari aturan izin Read(...) deny. | ["~/.aws/credentials"] |
filesystem.allowRead | Jalur untuk mengizinkan kembali pembacaan dalam region denyRead. Memiliki prioritas atas denyRead. Array digabungkan di seluruh semua cakupan pengaturan. Gunakan ini untuk membuat pola akses baca khusus workspace. | ["."] |
filesystem.allowManagedReadPathsOnly | (Pengaturan yang dikelola saja) Hanya jalur allowRead dari pengaturan yang dikelola yang dihormati. Entri allowRead dari pengaturan pengguna, proyek, dan lokal diabaikan. Default: false | true |
network.allowUnixSockets | Jalur soket Unix yang dapat diakses dalam sandbox (untuk agen SSH, dll.) | ["~/.ssh/agent-socket"] |
network.allowAllUnixSockets | Izinkan semua koneksi soket Unix dalam sandbox. Default: false | true |
network.allowLocalBinding | Izinkan pengikatan ke port localhost (macOS saja). Default: false | true |
network.allowedDomains | Array domain untuk memungkinkan lalu lintas jaringan keluar. Mendukung wildcard (misalnya, *.example.com). | ["github.com", "*.npmjs.org"] |
network.allowManagedDomainsOnly | (Pengaturan yang dikelola saja) Hanya allowedDomains dan aturan allow WebFetch(domain:...) dari pengaturan yang dikelola yang dihormati. Domain dari pengaturan pengguna, proyek, dan lokal diabaikan. Domain yang tidak diizinkan diblokir secara otomatis tanpa meminta pengguna. Domain yang ditolak masih dihormati dari semua sumber. Default: false | true |
network.httpProxyPort | Port proxy HTTP yang digunakan jika Anda ingin membawa proxy Anda sendiri. Jika tidak ditentukan, Claude akan menjalankan proxy-nya sendiri. | 8080 |
network.socksProxyPort | Port proxy SOCKS5 yang digunakan jika Anda ingin membawa proxy Anda sendiri. Jika tidak ditentukan, Claude akan menjalankan proxy-nya sendiri. | 8081 |
enableWeakerNestedSandbox | Aktifkan sandbox yang lebih lemah untuk lingkungan Docker tanpa hak istimewa (Linux dan WSL2 saja). Mengurangi keamanan. Default: false | true |
enableWeakerNetworkIsolation | (macOS saja) Izinkan akses ke layanan kepercayaan TLS sistem (com.apple.trustd.agent) dalam sandbox. Diperlukan untuk tools berbasis Go seperti gh, gcloud, dan terraform untuk memverifikasi sertifikat TLS saat menggunakan httpProxyPort dengan proxy MITM dan CA khusus. Mengurangi keamanan dengan membuka jalur eksfiltrasi data potensial. Default: false | true |
Prefiks jalur sandbox
Jalur dalamfilesystem.allowWrite, filesystem.denyWrite, filesystem.denyRead, dan filesystem.allowRead mendukung prefiks ini:
| Prefiks | Arti | Contoh |
|---|---|---|
/ | Jalur absolut dari akar sistem file | /tmp/build tetap /tmp/build |
~/ | Relatif terhadap direktori home | ~/.kube menjadi $HOME/.kube |
./ atau tidak ada prefiks | Relatif terhadap akar proyek untuk pengaturan proyek, atau ke ~/.claude untuk pengaturan pengguna | ./output dalam .claude/settings.json diselesaikan ke <project-root>/output |
//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
| Kunci | Deskripsi |
|---|---|
commit | Atribusi untuk komit git, termasuk trailer apa pun. String kosong menyembunyikan atribusi komit |
pr | Atribusi untuk deskripsi pull request. String kosong menyembunyikan atribusi pull request |
Pengaturan
attribution memiliki prioritas atas pengaturan includeCoAuthoredBy yang usang. Untuk menyembunyikan semua atribusi, atur commit dan pr ke string kosong.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:
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 pengguna, hooks proyek, dan hooks plugin diblokir
* sebagai wildcard untuk pencocokan. Saat array didefinisikan, HTTP hooks yang menargetkan URL yang tidak cocok diblokir secara diam-diam.
allowedEnvVars efektif setiap hook adalah persimpangan dari daftar sendiri dan pengaturan ini.
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, prioritas adalah: yang dikelola server > kebijakan tingkat MDM/OS > file-based (
managed-settings.d/*.json+managed-settings.json) > registry HKCU (Windows saja). Hanya satu sumber yang dikelola yang digunakan; sumber tidak digabungkan di seluruh tingkat. Dalam tingkat berbasis file, file drop-in dan file dasar digabungkan bersama.
-
Argumen baris perintah
- Penggantian sementara untuk sesi tertentu
-
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
Bash(npm run *) tetapi pengaturan bersama proyek menolaknya, pengaturan proyek memiliki prioritas dan perintah diblokir.
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.Verifikasi pengaturan aktif
Jalankan/status di dalam Claude Code untuk melihat sumber pengaturan mana yang aktif dan dari mana asalnya. Output menunjukkan setiap lapisan konfigurasi (yang dikelola, pengguna, proyek) bersama dengan asalnya, seperti Enterprise managed settings (remote), Enterprise managed settings (plist), Enterprise managed settings (HKLM), atau Enterprise managed settings (file). Jika file pengaturan berisi kesalahan, /status melaporkan masalah sehingga Anda dapat memperbaikinya.
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, dengan pengaturan yang lebih spesifik menambah atau menimpa yang lebih luas
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
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 (tidak dikomit)
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)
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. 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/sistem file (sumber yang diblokir tidak pernah dieksekusi)
- Menggunakan pencocokan tepat untuk spesifikasi sumber (termasuk
ref,pathuntuk sumber git), kecualihostPattern, yang menggunakan pencocokan regex
undefined(default): Tidak ada pembatasan - pengguna dapat menambahkan marketplace apa pun- Array kosong
[]: Lockdown lengkap - pengguna tidak dapat menambahkan marketplace baru apa pun - Daftar sumber: Pengguna hanya dapat menambahkan marketplace yang cocok dengan tepat
hostPattern menggunakan pencocokan regex terhadap host marketplace.
- Repositori GitHub:
repo (diperlukan), ref (opsional: cabang/tag/SHA), path (opsional: subdirektori)
- Repositori Git:
url (diperlukan), ref (opsional: cabang/tag/SHA), 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
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:
| Aspek | strictKnownMarketplaces | extraKnownMarketplaces |
|---|---|---|
| Tujuan | Penegakan kebijakan organisasi | Kenyamanan tim |
| File pengaturan | managed-settings.json saja | File pengaturan apa pun |
| Perilaku | Blokir penambahan yang tidak ada dalam daftar putih | Instal otomatis marketplace yang hilang |
| Saat diterapkan | Sebelum operasi jaringan/sistem file | Setelah prompt kepercayaan pengguna |
| Dapat ditimpa | Tidak (prioritas tertinggi) | Ya (oleh pengaturan prioritas lebih tinggi) |
| Format sumber | Objek sumber langsung | Marketplace bernama dengan sumber bersarang |
| Kasus penggunaan | Pembatasan kepatuhan, keamanan | Onboarding, standardisasi |
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 hanya berlaku untuk menambahkan marketplace BARU; marketplace yang sebelumnya diinstal tetap dapat diakses
- Pengaturan yang dikelola memiliki prioritas tertinggi dan tidak dapat ditimpa
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 (perintah, 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
- Troubleshooting: solusi untuk masalah konfigurasi umum