SpyBara
Go Premium

settings-reference.md 2026-11-11 22:59 UTC to 2026-11-12 21:00 UTC

This page contains 827 additions and 739 deletions.

2026
Mon 2 23:57 Tue 3 23:58 Wed 4 23:59 Thu 5 23:03 Fri 6 23:01 Sun 8 22:58 Mon 9 23:02 Thu 12 22:01

Semua pengaturan

Referensi lengkap untuk setiap kunci settings.json Claude Code: di mana masing-masing berada, tipe dan defaultnya, serta contoh siap tempel, dengan indeks setiap kunci.

Kembali ke indeks

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

Indeks pengaturan

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

Key Description Topic Scope
advisorModel Pilih model yang menjawab saat Claude bertanya kepada advisor tool Model dan respons File apa pun
agent Mulai setiap sesi sebagai subagent bernama dengan prompt, tool, dan modelnya Agent, sesi, dan worktree File apa pun
agentPushNotifEnabled Izinkan Claude mengirim notifikasi push ke ponsel Anda saat ia memutuskan untuk melakukannya Remote, desktop, dan notifikasi File apa pun
allowAllClaudeAiMcps Muat konektor claude.ai yang diambil sendiri oleh Claude Code bersama dengan managed-mcp.json yang di-deploy MCP Managed
allowClaudeInChromeWithManagedMcp Izinkan server bawaan Claude in Chrome berjalan bersama dengan managed-mcp.json yang di-deploy MCP Managed
allowedChannelPlugins Ganti allowlist default plugin channel yang dapat mengirim pesan Plugin dan skill Managed
allowedHttpHookUrls Batasi URL mana yang dapat dituju oleh hook HTTP Hook dan otomatisasi File apa pun
allowedMcpServers Allowlist server MCP mana yang dapat ditambahkan pengguna MCP File apa pun
allowedProviders Batasi penyedia API mana yang boleh digunakan sebuah mesin Autentikasi dan penyedia Managed
allowManagedHooksOnly Jalankan hanya hook yang di-deploy oleh organisasi Anda Hook dan otomatisasi Managed
allowManagedMcpServersOnly Jadikan allowlist MCP terkelola sebagai satu-satunya yang berlaku MCP Managed
allowManagedPermissionRulesOnly Jadikan pengaturan terkelola satu-satunya sumber pengaturan untuk aturan izin Pengaturan izin Managed
alwaysThinkingEnabled Matikan extended thinking untuk setiap sesi Model dan respons File apa pun
apiKeyHelper Hasilkan kredensial API dengan perintah Anda sendiri Autentikasi dan penyedia File apa pun
askUserQuestionTimeout Izinkan pertanyaan yang tidak dijawab berlanjut otomatis setelah waktu menganggur Antarmuka dan terminal User atau managed
appendPlugins Jalankan mod organisasi Anda setelah setiap mod yang diinstal pengguna Plugin dan skill User atau managed
attribution Sesuaikan atribusi yang ditambahkan Claude Code ke commit dan pull request Git dan atribusi File apa pun
attribution.commit Ubah atau sembunyikan trailer yang ditambahkan Claude Code ke commit Git dan atribusi File apa pun
attribution.pr Ubah atau sembunyikan baris atribusi dalam deskripsi pull request Git dan atribusi File apa pun
attribution.sessionUrl Hilangkan tautan sesi claude.ai dari commit cloud dan Remote Control Git dan atribusi File apa pun
autoCompactEnabled Matikan atau aktifkan compaction otomatis Memori dan konteks File apa pun
autoCompactWindow Tetapkan seberapa penuh konteks sebelum Claude Code melakukan compaction Memori dan konteks File apa pun
autoConnectIde Hubungkan ke IDE VS Code atau JetBrains yang sedang berjalan secara otomatis dari terminal eksternal Pengaturan global config Global config
autoContinueAtUsageLimit Tunggu di sesi yang terbuka dan lanjutkan tugas secara otomatis setelah batas penggunaan claude.ai diatur ulang Antarmuka dan terminal User atau managed
autoInstallIdeExtension Izinkan /ide menginstal ekstensi IDE dari terminal eksternal Pengaturan global config Global config
autoMemoryDirectory Simpan auto memory di direktori yang Anda pilih Memori dan konteks File apa pun
autoMemoryEnabled Matikan atau aktifkan auto memory Memori dan konteks File apa pun
autoMode Tambahkan aturan allow dan deny Anda sendiri ke pengklasifikasi auto mode Pengaturan izin User atau managed
autoMode.classifyAllShell Kirim setiap perintah shell melalui pengklasifikasi auto mode, bahkan yang cocok dengan aturan allow yang sempit Pengaturan izin User atau managed
autoScrollEnabled Ikuti output baru hingga ke bawah dalam rendering layar penuh Antarmuka dan terminal File apa pun
autoUpdatesChannel Ikuti saluran rilis stable alih-alih latest Pembaruan dan pembuatan versi File apa pun
availableModels Batasi model mana yang dapat dipilih orang Model dan respons File apa pun
availableModelsMatch Buat setiap entri ID model availableModels hanya mengizinkan versi yang disebutkannya Model dan respons Managed
awaySummaryEnabled Matikan rekap sesi yang ditampilkan saat Anda kembali ke terminal Remote, desktop, dan notifikasi File apa pun
awsAuthRefresh Segarkan kredensial Bedrock yang kedaluwarsa di .aws dengan perintah Anda sendiri Autentikasi dan penyedia File apa pun
awsCredentialExport Berikan kredensial Bedrock sebagai JSON dari perintah Anda sendiri Autentikasi dan penyedia File apa pun
axScreenReader Render output yang ramah pembaca layar Antarmuka dan terminal User atau managed
bashEditDiffEnabled Catat file yang berubah saat perintah Bash berjalan di setiap mode izin Antarmuka dan terminal User atau managed
bashOutputMaxChars Tetapkan seberapa banyak output perintah yang berhasil diterima Claude secara inline Memori dan konteks File apa pun
blockedMarketplaces Blokir sumber marketplace plugin untuk organisasi Anda Plugin dan skill Managed
browserExternalPageTools Jauhkan tool Claude dari halaman eksternal di panel Browser desktop Tool Managed
channelsEnabled Izinkan channel untuk organisasi Anda Plugin dan skill Managed
claudeInChromeDefaultEnabled Aktifkan integrasi Chrome saat sesi dimulai, di CLI interaktif dan ekstensi VS Code Pengaturan global config Global config
claudeMd Sisipkan instruksi CLAUDE.md tingkat organisasi dari pengaturan terkelola Memori dan konteks Managed
claudeMdExcludes Lewati file CLAUDE.md tertentu saat memori dimuat Memori dan konteks File apa pun
cleanupPeriodDays Pilih berapa hari Claude Code menyimpan transkrip sebelum menghapusnya Privasi dan telemetri File apa pun
companyAnnouncements Tampilkan pengumuman organisasi Anda saat startup Antarmuka dan terminal File apa pun
copyFullResponse Buat /copy menyalin respons lengkap tanpa menampilkan pemilih Pengaturan global config Global config
copyOnSelect Matikan penyalinan otomatis teks yang Anda pilih dengan mouse dalam rendering layar penuh dan agent view Pengaturan global config Global config
crossSessionInbound Pilih apakah Claude Code mengirimkan pesan dari sesi Anda yang lain, menampilkan pemberitahuan tanpa mengirimkannya, atau menolaknya Agent, sesi, dan worktree File apa pun
defaultShell Pilih apakah Bash atau PowerShell yang menjalankan perintah shell yang Anda ketik dengan awalan ! Antarmuka dan terminal File apa pun
defaultToAgentsView Buka agent view alih-alih percakapan baru saat Anda menjalankan claude tanpa argumen Pengaturan global config Global config
deniedMcpServers Blokir server MCP tertentu berdasarkan URL, perintah, atau nama MCP File apa pun
deniedModels Blokir model tertentu, bahkan yang diizinkan oleh availableModels Model dan respons Managed
desktopSessionCleanupPeriodDays Tetapkan batas usia dalam hari untuk transkrip Claude Desktop dan Cowork Privasi dan telemetri User atau managed
dialogExpiry Tetapkan berapa lama Claude Code menunggu Remote Control atau host SDK menjawab dialog yang diteruskan sebelum membatalkan dialog tersebut Antarmuka dan terminal User atau managed
diffTool Pilih apakah perubahan file yang diusulkan Claude terbuka di penampil diff VS Code atau JetBrains atau tetap di terminal Pengaturan global config Global config
disableAgentView Matikan agent latar belakang dan agent view Agent, sesi, dan worktree File apa pun
disableAllHooks Matikan hook, baris status kustom, dan perintah saran file @ kustom sekaligus Hook dan otomatisasi File apa pun
disableArtifact Deprecated; gunakan enableArtifact untuk mematikan tool Artifact Remote, desktop, dan notifikasi File apa pun
disableAutoMode Hapus auto mode dari siklus mode izin Pengaturan izin File apa pun
disableBrowserExternalNavigation Batasi panel Browser desktop ke localhost untuk orang dan Claude Tool Managed
disableBundledSkills Matikan skill dan alur kerja yang disertakan dengan Claude Code Plugin dan skill File apa pun
disableClaudeAiConnectors Matikan konektor claude.ai agar Claude Code tidak mengambilnya MCP File apa pun
disableCommandPluginSources Blokir plugin yang diinstal dengan menjalankan perintah yang dideklarasikan marketplace Plugin dan skill Managed
disableDeepLinkRegistration Hentikan Claude Code agar tidak mendaftarkan handler claude-cli:// Remote, desktop, dan notifikasi File apa pun
disableDesktopLocalSessions Matikan sesi Desktop Code yang berjalan di perangkat, menyisakan SSH ke host lain dan cloud Remote, desktop, dan notifikasi Managed
disabledMcpjsonServers Tolak server tertentu dari .mcp.json proyek MCP File apa pun
disableMobileSimulatorTools Blokir tool Claude di panel iOS Simulator desktop Tool Managed
disableRemoteControl Matikan Remote Control di semua tempat ia dapat dimulai Remote, desktop, dan notifikasi File apa pun
disableRemotePreviewScripts Matikan skrip dalam pratinjau HTML aplikasi desktop di sesi SSH dan WSL Remote, desktop, dan notifikasi Managed
disableSideloadFlags Tolak flag CLI yang melakukan sideload plugin, subagent, dan server MCP Enterprise dan pengaturan terkelola Managed
disableSkillShellExecution Hentikan skill dan perintah kustom agar tidak menjalankan shell inline Plugin dan skill File apa pun
disableWorkflows Matikan alur kerja dinamis untuk semua orang; gunakan enableWorkflows untuk diri Anda sendiri Hook dan otomatisasi File apa pun
editorMode Gunakan key binding vim di prompt input Antarmuka dan terminal File apa pun
effortLevel Tetapkan tingkat effort default untuk model yang tidak memiliki tingkat tersimpan sendiri Model dan respons File apa pun
emojiCompletionEnabled Matikan saran dan penggantian emoji :shortcode: di input prompt Antarmuka dan terminal File apa pun
enableAllProjectMcpServers Setujui setiap server dalam file .mcp.json proyek tanpa permintaan izin MCP File apa pun
enableArtifact Matikan tool Artifact dengan false di file apa pun; tidak ada file yang dapat menyalakannya kembali Remote, desktop, dan notifikasi File apa pun
enabledMcpjsonServers Setujui server tertentu dari .mcp.json proyek MCP File apa pun
enabledPlugins Aktifkan atau matikan plugin individual per cakupan Plugin dan skill File apa pun
enableWorkflows Aktifkan atau matikan alur kerja dinamis terhadap default paket Anda Hook dan otomatisasi File apa pun
enforceAvailableModels Jaga pilihan Default /model tetap di dalam allowlist availableModels Anda Model dan respons File apa pun
env Tetapkan environment variable untuk setiap sesi dan subprosesnya Memori dan konteks File apa pun
externalEditorContext Tampilkan respons terakhir Claude sebagai komentar saat Anda menekan Ctrl+G untuk mengedit Pengaturan global config Global config
extraKnownMarketplaces Daftarkan marketplace untuk repositori atau organisasi Plugin dan skill File apa pun
fallbackModel Sebutkan model cadangan untuk saat model utama kelebihan beban Model dan respons File apa pun
fastMode Aktifkan fast mode untuk sesi yang mendukungnya Model dan respons File apa pun
fastModePerSessionOptIn Wajibkan orang mengaktifkan fast mode di setiap sesi Model dan respons File apa pun
feedbackDrafts Kontrol apakah Claude mengantrekan draf umpan balik untuk Anda tinjau Privasi dan telemetri User atau managed
feedbackSurveyRate Ubah seberapa sering survei kualitas sesi muncul Privasi dan telemetri File apa pun
fileCheckpointingEnabled Matikan atau aktifkan snapshot file yang dipulihkan oleh /rewind Memori dan konteks File apa pun
fileSuggestion Sediakan autocomplete file @ dari perintah Anda sendiri Antarmuka dan terminal File apa pun
footerLinksRegexes Jadikan ID issue atau review dalam output sebagai tautan yang dapat diklik di bawah kotak input Antarmuka dan terminal User atau managed
forceLoginGatewayUrl Tetapkan URL gateway yang dihubungi layar login Autentikasi dan penyedia User atau managed
forceLoginMethod Batasi login ke claude.ai, Claude Console, atau gateway cloud Autentikasi dan penyedia File apa pun
forceLoginOrgUUID Kunci login claude.ai ke organisasi Anda; hanya pengaturan terkelola yang menegakkannya Autentikasi dan penyedia File apa pun
forceRemoteSettingsRefresh Blokir startup hingga pengaturan yang dikelola server diambil ulang Enterprise dan pengaturan terkelola Managed
gatewayInternalNetworks Izinkan /login menjangkau gateway cloud pada ruang IPv4 publik yang digunakan organisasi Anda secara internal Autentikasi dan penyedia Managed
gcpAuthRefresh Segarkan kredensial Google Cloud dengan perintah Anda sendiri Autentikasi dan penyedia File apa pun
hooks Jalankan perintah Anda sendiri sebagai hook pada titik-titik dalam siklus hidup Claude Code Hook dan otomatisasi File apa pun
httpHookAllowedEnvVars Batasi env var mana yang dapat dimasukkan hook HTTP ke dalam header Hook dan otomatisasi File apa pun
idleCompaction Hentikan Claude Code agar tidak melakukan compaction pada percakapan panjang yang Anda tinggalkan Memori dan konteks File apa pun
includeCoAuthoredBy Deprecated; gunakan attribution untuk menyembunyikan atau mengubah atribusi commit dan PR Git dan atribusi File apa pun
includeGitInstructions Hapus instruksi commit dan PR bawaan dari konteks Claude Git dan atribusi File apa pun
inputNeededNotifEnabled Dapatkan notifikasi push saat Claude menunggu Anda Remote, desktop, dan notifikasi File apa pun
isolatePeerMachines Tanyakan kepada Anda sebelum Claude mengirim pesan ke salah satu sesi Anda di mesin lain Agent, sesi, dan worktree File apa pun
keybindingFlavor Deprecated dan tidak berpengaruh; pintasan pengeditan kata selalu mengikuti konvensi readline Antarmuka dan terminal File apa pun
language Minta Claude merespons dalam bahasa selain bahasa Inggris Model dan respons File apa pun
leftArrowOpensAgents Matikan pintasan ← yang memindahkan sesi ke latar belakang dan membuka agent view Pengaturan global config Global config
managedMcpServers Sediakan server MCP jarak jauh untuk setiap pengguna bersama dengan server yang mereka tambahkan MCP Managed
managedSourcesBehavior Gabungkan setiap sumber terkelola yang Anda deploy alih-alih hanya menggunakan yang berprioritas tertinggi Enterprise dan pengaturan terkelola Managed
maxEffortLevel Batasi tingkat effort untuk setiap model atau per model, di setiap penyedia Model dan respons File apa pun
maxProseWidth Batasi lebar prosa dalam respons Claude di terminal yang lebar Antarmuka dan terminal File apa pun
minimumVersion Cegah pembaruan otomatis menginstal apa pun di bawah suatu versi Pembaruan dan pembuatan versi File apa pun
model Ubah model yang digunakan Claude Code saat dimulai Model dan respons File apa pun
modelOverrides Petakan ID model ke ID penyedia Anda, seperti ARN Bedrock Model dan respons File apa pun
modelPicker Pilih model mana yang dicantumkan pemilih /model, dengan urutan dan label Anda sendiri Model dan respons User atau managed
modelPricing Laporkan pengeluaran berdasarkan tarif kontrak organisasi Anda alih-alih harga daftar Model dan respons Managed
modelSettings Simpan tingkat effort atau jendela auto-compact per model, atau batasi effort satu model Model dan respons File apa pun
otelHeadersHelper Hasilkan header OpenTelemetry yang berotasi dengan perintah Anda sendiri Autentikasi dan penyedia File apa pun
outputStyle Ubah peran, nada, dan format output Claude dengan gaya output Model dan respons File apa pun
parentSettingsBehavior Terapkan atau abaikan pembatasan yang diteruskan host SDK atau IDE saat Anda men-deploy pengaturan terkelola Enterprise dan pengaturan terkelola Managed
permissionExplainerEnabled Dihapus di v2.1.257, bersama dengan penjelasan perintah Ctrl+E pada permintaan izin shell Pengaturan global config Global config
permissions Tetapkan aturan allow, ask, dan deny serta mode izin default Pengaturan izin File apa pun
permissions.additionalDirectories Berikan Claude akses file ke direktori di luar direktori saat ini Pengaturan izin File apa pun
permissions.allow Setujui penggunaan tool yang tercantum tanpa permintaan izin Pengaturan izin File apa pun
permissions.ask Selalu minta izin sebelum penggunaan tool yang tercantum Pengaturan izin File apa pun
permissions.blockReadsOutsideWorkingDirectories Buat tool file menolak pembacaan di luar direktori kerja di setiap mode izin Pengaturan izin File apa pun
permissions.blockWritesOutsideWorkingDirectories Buat tool Write, Edit, dan NotebookEdit menolak path di luar direktori kerja di setiap mode izin, kecuali beberapa file milik Claude Code sendiri Pengaturan izin File apa pun
permissions.defaultMode Tetapkan mode izin default untuk sesi baru Pengaturan izin File apa pun
permissions.deny Blokir penggunaan tool yang tercantum, termasuk pembacaan file yang menyimpan rahasia Pengaturan izin File apa pun
permissions.denyInsteadOfPrompting Tolak panggilan tool yang akan menunggu permintaan izin, sehingga sesi yang tidak diawasi siapa pun tetap berjalan Pengaturan izin User atau managed
permissions.disableBypassPermissionsMode Cegah siapa pun memasuki mode bypassPermissions Pengaturan izin File apa pun
plansDirectory Pilih tempat plan mode menulis file rencana Memori dan konteks File apa pun
pluginConfigs Simpan jawaban yang Anda berikan pada dialog konfigurasi plugin Plugin dan skill User atau managed
pluginSuggestionMarketplaces Pilih marketplace mana yang dapat memunculkan saran instalasi plugin di /plugin Plugin dan skill Managed
pluginTrustMessage Tambahkan teks Anda sendiri ke peringatan kepercayaan plugin Plugin dan skill Managed
policyHelper Jalankan executable yang menghitung pengaturan terkelola saat startup Enterprise dan pengaturan terkelola Managed
policyHelper.path Sebutkan executable helper yang dijalankan Claude Code Enterprise dan pengaturan terkelola Managed
policyHelper.refreshIntervalMs Jalankan ulang helper di latar belakang secara berkala Enterprise dan pengaturan terkelola Managed
policyHelper.timeoutMs Tetapkan berapa lama Claude Code menunggu helper Enterprise dan pengaturan terkelola Managed
preferredNotifChannel Pilih bel terminal atau notifikasi desktop untuk penyelesaian tugas Remote, desktop, dan notifikasi File apa pun
prefersReducedMotion Kurangi atau matikan animasi spinner, shimmer, dan flash Antarmuka dan terminal File apa pun
prependPlugins Jalankan mod organisasi Anda sebelum setiap mod yang diinstal pengguna Plugin dan skill User atau managed
processWrapper Jalankan proses latar belakang Claude Code melalui launcher korporat di macOS dan Linux Agent, sesi, dan worktree User atau managed
promptCacheTtl Pilih masa berlaku cache prompt untuk percakapan utama Model dan respons File apa pun
promptSuggestionEnabled Sembunyikan saran prompt berwarna abu-abu di kotak input Antarmuka dan terminal File apa pun
prStatusFooterEnabled Matikan lencana status review PR di footer prompt dan pemeriksaan pull request di baliknya Pengaturan global config Global config
prUrlTemplate Arahkan tautan PR ke tool code review internal alih-alih github.com Git dan atribusi File apa pun
remote.defaultEnvironmentId Pilih lingkungan cloud default untuk claude --cloud; ID ccpool_ yang di-host sendiri hanya dibaca dari pengaturan user dan managed serta --settings Remote, desktop, dan notifikasi File apa pun
remoteControlAtStartup Hubungkan Remote Control secara otomatis saat sesi dimulai Remote, desktop, dan notifikasi File apa pun
requiredMaximumVersion Tolak untuk dimulai pada versi yang lebih baru daripada yang diizinkan organisasi Anda Pembaruan dan pembuatan versi Managed
requiredMinimumVersion Tolak untuk dimulai pada versi yang lebih lama daripada yang diwajibkan organisasi Anda Pembaruan dan pembuatan versi Managed
respectGitignore Jauhkan file yang di-gitignore dari pemilih file @ Antarmuka dan terminal File apa pun
respondToBashCommands Hentikan Claude agar tidak merespons setelah perintah shell ! dijalankan Antarmuka dan terminal File apa pun
sandbox Isolasi perintah Bash dari filesystem dan jaringan Anda di macOS, Linux, dan WSL2 Pengaturan sandbox File apa pun
sandbox.allowAppleEvents Izinkan perintah yang di-sandbox mengirim Apple Events di macOS Pengaturan sandbox User atau managed
sandbox.allowNestedUserNamespaces Izinkan perintah yang di-sandbox membuat user namespace di Linux dan WSL2 Pengaturan sandbox User atau managed
sandbox.allowUnsandboxedCommands Izinkan Claude mencoba ulang perintah yang diblokir di luar sandbox, atau melarangnya Pengaturan sandbox File apa pun
sandbox.autoAllowBashIfSandboxed Jalankan perintah yang di-sandbox tanpa permintaan izin Pengaturan sandbox File apa pun
sandbox.bwrapPath Arahkan sandbox ke binary bubblewrap di luar PATH Pengaturan sandbox Managed
sandbox.credentials Sembunyikan atau samarkan file kredensial dan variabel di dalam sandbox Pengaturan sandbox File apa pun
sandbox.credentials.allowPlaintextInject Izinkan kredensial yang disamarkan menjangkau layanan HTTP biasa di jaringan pengujian tepercaya Pengaturan sandbox User atau managed
sandbox.credentials.awsPairs Tautkan variabel kunci AWS bernama kustom menjadi satu kredensial untuk penandatanganan ulang Pengaturan sandbox User atau managed
sandbox.credentials.envVars Hapus atau samarkan environment variable di dalam sandbox Pengaturan sandbox File apa pun
sandbox.credentials.files Blokir atau samarkan pembacaan file kredensial di dalam sandbox Pengaturan sandbox File apa pun
sandbox.credentials.sigv4 Pilih apakah permintaan streaming, presigned, atau AWS SigV4A gagal atau diteruskan Pengaturan sandbox User atau managed
sandbox.enabled Aktifkan sandboxing Bash di macOS, Linux, dan WSL2 Pengaturan sandbox File apa pun
sandbox.enableWeakerNestedSandbox Jalankan sandbox Linux di dalam container tanpa hak istimewa Pengaturan sandbox File apa pun
sandbox.enableWeakerNetworkIsolation Izinkan gh, gcloud, dan terraform memverifikasi TLS di balik proxy MITM di dalam sandbox di macOS Pengaturan sandbox File apa pun
sandbox.excludedCommands Sebutkan perintah yang dapat dijalankan Claude Code di luar sandbox Pengaturan sandbox File apa pun
sandbox.failIfUnavailable Tolak untuk dimulai saat sandbox tidak dapat dimulai, alih-alih berjalan tanpa sandbox Pengaturan sandbox File apa pun
sandbox.filesystem Kontrol path mana yang dapat dibaca dan ditulis oleh perintah yang di-sandbox Pengaturan sandbox File apa pun
sandbox.filesystem.allowManagedReadPathsOnly Hentikan developer agar tidak membuka kembali path baca yang diblokir organisasi Anda Pengaturan sandbox Managed
sandbox.filesystem.allowRead Buka kembali pembacaan di dalam wilayah yang diblokir denyRead Pengaturan sandbox File apa pun
sandbox.filesystem.allowWrite Tambahkan path yang dapat ditulis oleh perintah yang di-sandbox Pengaturan sandbox File apa pun
sandbox.filesystem.denyRead Blokir perintah yang di-sandbox agar tidak membaca path tertentu Pengaturan sandbox File apa pun
sandbox.filesystem.denyWrite Blokir perintah yang di-sandbox agar tidak menulis ke path tertentu Pengaturan sandbox File apa pun
sandbox.filesystem.disabled Matikan isolasi filesystem sambil tetap mempertahankan isolasi jaringan Pengaturan sandbox User atau managed
sandbox.ignoreViolations Bungkam laporan pelanggaran untuk path yang memang diperkirakan akan diperiksa oleh sebuah perintah Pengaturan sandbox File apa pun
sandbox.network Kontrol host, port, dan socket mana yang dapat dijangkau perintah yang di-sandbox Pengaturan sandbox File apa pun
sandbox.network.allowAllUnixSockets Izinkan perintah yang di-sandbox terhubung ke setiap Unix socket Pengaturan sandbox File apa pun
sandbox.network.allowedDomains Izinkan domain sebelumnya agar perintah yang di-sandbox tidak meminta izin untuknya Pengaturan sandbox File apa pun
sandbox.network.allowLocalBinding Izinkan perintah yang di-sandbox mendengarkan port jaringan dan terhubung ke localhost di macOS Pengaturan sandbox File apa pun
sandbox.network.allowMachLookup Izinkan tool macOS yang di-sandbox seperti iOS Simulator atau Playwright menjangkau layanan XPC-nya Pengaturan sandbox File apa pun
sandbox.network.allowManagedDomainsOnly Kunci allowlist jaringan ke pengaturan terkelola Pengaturan sandbox Managed
sandbox.network.allowUnixSockets Cantumkan path Unix socket yang dapat digunakan perintah yang di-sandbox di macOS Pengaturan sandbox File apa pun
sandbox.network.deniedDomains Blokir domain untuk perintah yang di-sandbox, bahkan di dalam wildcard yang diizinkan Pengaturan sandbox File apa pun
sandbox.network.httpProxyPort Arahkan lalu lintas HTTP sandbox melalui proxy Anda sendiri Pengaturan sandbox File apa pun
sandbox.network.socksProxyPort Arahkan lalu lintas SOCKS sandbox melalui proxy Anda sendiri Pengaturan sandbox File apa pun
sandbox.network.strictAllowlist Tolak host di luar allowlist alih-alih meminta izin Pengaturan sandbox User atau managed
sandbox.network.tlsTerminate Minta proxy sandbox mengakhiri TLS agar dapat membaca permintaan HTTPS Pengaturan sandbox User atau managed
sandbox.ripgrep Gunakan binary ripgrep Anda sendiri di dalam sandbox Pengaturan sandbox User atau managed
sandbox.socatPath Arahkan proxy sandbox ke binary socat di luar PATH Pengaturan sandbox Managed
showClearContextOnPlanAccept Tampilkan opsi "clear context" di layar penerimaan rencana Antarmuka dan terminal File apa pun
showThinkingSummaries Lihat ringkasan thinking Claude alih-alih stub yang diciutkan Model dan respons File apa pun
showTurnDuration Sembunyikan durasi "Cooked for" setelah setiap respons Antarmuka dan terminal File apa pun
skillListingBudgetFraction Cadangkan lebih banyak atau lebih sedikit konteks untuk daftar skill Memori dan konteks File apa pun
skillListingMaxDescChars Batasi panjang deskripsi setiap skill dalam daftar skill Memori dan konteks File apa pun
skillOverrides Sembunyikan atau ciutkan skill tanpa mengedit SKILL.md-nya Plugin dan skill File apa pun
skipAutoPermissionPrompt Lewati pemberitahuan satu kali yang ditampilkan Claude Code saat Anda pertama kali memasuki auto mode sendiri, bukan melalui default bawaan Pengaturan izin User atau managed
skipDangerousModePermissionPrompt Lewati dialog konfirmasi sebelum mode bypassPermissions Pengaturan izin User, local, atau managed
skipWebFetchPreflight Lewati pemeriksaan hostname WebFetch saat Anthropic tidak dapat dijangkau Privasi dan telemetri File apa pun
spellcheck Garis bawahi kata yang salah eja di input prompt dengan pemeriksa ejaan yang Anda instal Antarmuka dan terminal User atau managed
spinnerTipsEnabled Sembunyikan tips di spinner saat Claude bekerja Antarmuka dan terminal File apa pun
spinnerTipsOverride Tambahkan tips Anda sendiri ke rotasi spinner, atau ganti tips bawaan Antarmuka dan terminal File apa pun
spinnerVerbs Tambahkan atau ganti kata kerja yang ditampilkan saat giliran berjalan Antarmuka dan terminal File apa pun
sshConfigs Tambahkan koneksi SSH ke pemilih lingkungan Desktop Remote, desktop, dan notifikasi User atau managed
sshHostAllowlist Batasi host mana yang dapat dijangkau sesi SSH Desktop Remote, desktop, dan notifikasi Managed
sshHostCommands Tambahkan koneksi SSH yang host-nya berasal dari perintah ke pemilih lingkungan Desktop Remote, desktop, dan notifikasi User atau managed
statusLine Jalankan perintah Anda sendiri untuk merender baris status di bawah prompt Antarmuka dan terminal File apa pun
strictKnownMarketplaces Allowlist sumber marketplace yang dapat ditambahkan pengguna dan menjadi sumber instalasi Plugin dan skill Managed
strictPluginOnlyCustomization Blokir skill, agent, hook, dan server MCP dari sumber user dan project Plugin dan skill Managed
strictPluginOnlyCustomization.agents Blokir agent dari sumber user dan project Plugin dan skill Managed
strictPluginOnlyCustomization.hooks Blokir hook dari sumber user dan project Plugin dan skill Managed
strictPluginOnlyCustomization.mcp Blokir server MCP dari sumber user dan project Plugin dan skill Managed
strictPluginOnlyCustomization.skills Blokir skill dari sumber user dan project Plugin dan skill Managed
subagentPromptCacheTtl Pilih masa berlaku cache prompt untuk subagent dan permintaan lain di luar percakapan utama Model dan respons File apa pun
subagentStatusLine Tulis ulang baris dalam tampilan tugas subagent dengan perintah Anda sendiri Antarmuka dan terminal File apa pun
switchModelsOnFlag Beralih model secara otomatis atau jeda saat pengklasifikasi keamanan menandai sebuah permintaan Model dan respons File apa pun
syncClaudeAiPlugins Berhenti memuat plugin yang diaktifkan di akun claude.ai Anda dan berhenti mengunduh yang baru Plugin dan skill User, local, atau managed
syncClaudeAiSkills Berhenti memuat skill yang diaktifkan di akun claude.ai Anda dan berhenti mengunduh yang baru Plugin dan skill User, local, atau managed
syntaxHighlightingDisabled Matikan penyorotan sintaks di diff dan blok kode Antarmuka dan terminal File apa pun
taskOutputMaxChars Dihapus di v2.1.277, bersama dengan tool TaskOutput yang ukurannya diatur olehnya Memori dan konteks File apa pun
teammateDefaultModel Dihapus di v2.1.234; lihat Tentukan teammate dan model untuk cara Claude Code memilih model teammate Pengaturan global config Global config
teammateMode Pilih cara teammate tim agent ditampilkan Agent, sesi, dan worktree File apa pun
terminalProgressBarEnabled Sembunyikan progress bar terminal di terminal yang mendukungnya Antarmuka dan terminal File apa pun
terminalTitleFromRename Hentikan /rename dan --name agar tidak mengubah judul tab terminal Antarmuka dan terminal File apa pun
theme Pilih tema warna antarmuka, bawaan atau kustom Antarmuka dan terminal File apa pun
timeFormat Tampilkan waktu di antarmuka dalam format 12 jam atau 24 jam, dalam UTC, atau dengan pola strftime Antarmuka dan terminal File apa pun
timeZone Tampilkan waktu di antarmuka dalam zona waktu selain zona waktu sistem Anda Antarmuka dan terminal File apa pun
tui Pilih renderer terminal layar penuh atau klasik Antarmuka dan terminal File apa pun
ultracode Minta Claude merencanakan alur kerja untuk setiap tugas substantif tanpa diminta Model dan respons File apa pun
useAutoModeDuringPlan Izinkan pengklasifikasi auto mode meninjau perintah shell dalam plan mode; tetapkan false untuk mendapatkan permintaan izin sebagai gantinya Pengaturan izin User, local, atau managed
verbose Tampilkan output tool lengkap alih-alih ringkasan yang dipotong; viewMode diutamakan jika keduanya ditetapkan Antarmuka dan terminal File apa pun
viewMode Mulai setiap sesi dalam tampilan default, verbose, atau focus Antarmuka dan terminal File apa pun
vimInsertModeRemaps Petakan urutan mode INSERT dua tombol seperti jj ke Escape Antarmuka dan terminal User atau managed
voice Aktifkan dikte suara dan pilih mode tahan atau ketuk Antarmuka dan terminal File apa pun
voiceEnabled Aktifkan dikte suara dengan bentuk kunci tunggal yang lebih lama Antarmuka dan terminal File apa pun
wheelScrollAccelerationEnabled Matikan akselerasi roda mouse dalam rendering layar penuh Antarmuka dan terminal File apa pun
workflowKeywordTriggerEnabled Izinkan kata ultracode dalam prompt memulai alur kerja; tetapkan false untuk mengetiknya tanpa memulai alur kerja Hook dan otomatisasi File apa pun
workflowSizeGuideline Tetapkan jumlah agent yang dituju Claude dalam alur kerja dinamis Hook dan otomatisasi File apa pun
worktree Konfigurasikan cara Claude Code membuat worktree git Agent, sesi, dan worktree File apa pun
worktree.baseRef Buat branch worktree baru dari branch default remote atau HEAD lokal Anda Agent, sesi, dan worktree File apa pun
worktree.bgIsolation Izinkan sesi latar belakang mengedit salinan kerja tanpa worktree Agent, sesi, dan worktree File apa pun
worktree.location Pilih tempat sesi SSH Desktop membuat worktree-nya di mesin jarak jauh Agent, sesi, dan worktree User
worktree.sparsePaths Checkout hanya direktori yang Anda butuhkan di setiap worktree Agent, sesi, dan worktree File apa pun
worktree.symlinkDirectories Buat symlink direktori besar ke setiap worktree alih-alih menduplikasinya Agent, sesi, dan worktree File apa pun
wslInheritsWindowsSettings Minta WSL membaca pengaturan terkelola dari rantai kebijakan Windows Enterprise dan pengaturan terkelola Managed

Model dan respons

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

advisorModel

Pilih model mana yang menjawab ketika Claude memanggil advisor tool sisi server. Hapus nilainya untuk mematikan advisor. Advisor harus setidaknya sama mampunya dengan model utama Anda. Lihat Memilih model advisor untuk pasangan yang diterima dan apa yang terjadi ketika Anda memilih pasangan yang tidak diterima.

Anda biasanya tidak mengedit kunci ini secara manual. Jalankan /advisor untuk membuka pemilih yang menampilkan pilihan saat ini, model yang dapat menjadi advisor, dan No advisor. Claude Code menyimpan pilihan Anda ke kunci ini di ~/.claude/settings.json. Jika Anda memilih dari klien Remote Control atau dalam sesi yang terhubung ke worker jarak jauh, pilihan tersebut hanya berlaku untuk sesi itu dan tidak mengubah kunci ini.

Jika akun Anda memerlukan persetujuan kredit penggunaan, terima terlebih dahulu dengan menjalankan /model fable. Sebelum Anda melakukannya, memilih Fable di /advisor tidak menyimpan apa pun dan Claude Code meminta Anda menjalankan /model fable terlebih dahulu.

  • Cakupan: Any file
  • Tipe: string, salah satu alias "fable", "opus", atau "sonnet", yang di-resolve ke versi default Claude Code saat ini dari keluarga model tersebut, atau ID model lengkap seperti "claude-opus-5-5"
  • Default: tidak diatur, sehingga advisor mati
  • Override per sesi: --advisor diutamakan daripada kunci ini untuk satu sesi. CLAUDE_CODE_DISABLE_ADVISOR_TOOL mematikan advisor, dan kunci ini tidak dapat menyalakannya kembali
{
  "advisorModel": "opus"
}

Kunci ini tidak berpengaruh pada penyedia yang advisor-nya tidak tersedia, seperti Amazon Bedrock. Pada Claude Platform on AWS, kunci ini memerlukan Claude Code v2.1.300 atau yang lebih baru. "fable" memerlukan akses Fable.

alwaysThinkingEnabled

Matikan extended thinking untuk setiap sesi dengan mengatur ini ke false. Thinking aktif secara default, sehingga true tidak mengubah apa pun. Kebanyakan orang mengatur ini melalui /config daripada mengedit file.

Pada model yang selalu melakukan thinking, seperti Opus 5.5, Sonnet 5.5, Haiku 5.5, dan model Fable, false tidak berpengaruh. Pada penyedia pihak ketiga Claude Code menghilangkan parameter thinking alih-alih mematikan thinking, sehingga model adaptive-reasoning mungkin tetap melakukan thinking. Dengan thinking dimatikan pada Anthropic API, Claude Code mengirim effort high alih-alih tingkat yang lebih tinggi ke model yang diketahuinya tidak menerima kombinasi tersebut, seperti Opus 5.

  • Cakupan: Any file
  • Tipe: Boolean
    • true: tidak berpengaruh; thinking sudah aktif
    • false: Claude Code mematikan extended thinking untuk setiap sesi
  • Default: tidak diatur, sehingga thinking aktif untuk model yang mendukungnya
  • Override per sesi: MAX_THINKING_TOKENS diutamakan daripada kunci ini untuk satu sesi: 0 mematikan thinking, dengan batasan model dan penyedia yang sama seperti false, dan nilai positif menyalakan thinking bahkan ketika kunci ini false. Pada model adaptive-reasoning, angka itu sendiri diabaikan
{
  "alwaysThinkingEnabled": false
}

availableModels

Batasi model mana yang dapat dipilih orang untuk sesi utama, subagent, skills, dan advisor. Daftar terkelola membatasi /model, --model, dan kunci model di file milik developer sendiri; model di luar daftar tidak dapat dipilih. Dengan pencocokan prefiks default, ini tidak menyentuh opsi Default dengan sendirinya; pasangkan dengan enforceAvailableModels untuk itu.

  • Cakupan: Any file. Deploy di pengaturan terkelola untuk memberlakukannya bagi organisasi.
  • Tipe: array alias atau ID model
  • Default: tidak diatur, sehingga setiap model tersedia

Contoh ini hanya mengizinkan orang memilih model Sonnet dan Haiku:

{
  "availableModels": ["sonnet", "haiku"]
}

Entri ID model seperti "claude-opus-5" juga mengizinkan versi yang lebih baru yang memperluasnya, seperti Opus 5.5. Untuk memblokir salah satu versi tersebut, gunakan deniedModels. Agar setiap entri ID model hanya mengizinkan versi yang disebutkannya, gunakan availableModelsMatch. Lihat Membatasi pemilihan model. Untuk ID penyedia pihak ketiga, lihat Menyematkan model untuk deployment pihak ketiga.

availableModelsMatch

Pilih cara entri availableModels mencocokkan ID model. Secara default, entri ID model juga mengizinkan versi yang lebih baru yang memperluasnya, sehingga "claude-opus-5" mengizinkan Opus 5.5. Dengan "exact", setiap entri ID model hanya mengizinkan versi yang disebutkannya, sehingga versi yang lebih baru dari model tersebut tetap diblokir sampai Anda mencantumkannya. Memerlukan Claude Code v2.1.283 atau yang lebih baru.

  • Cakupan: Managed. Claude Code mengabaikan kunci ini di pengaturan user, project, dan local serta di --settings, dengan peringatan
  • Tipe: string, salah satu dari:
    • "prefix": entri ID model mengizinkan versinya dan ID model apa pun yang memperluasnya dengan segmen lain
    • "exact": entri ID model hanya mengizinkan versi yang disebutkannya, sehingga "claude-opus-5" mengizinkan Opus 5 tetapi tidak claude-opus-5-5. Entri seperti "claude-opus-4-5" juga mengizinkan ID model Anthropic bertanggalnya claude-opus-4-5-20251101. Alias keluarga seperti "opus" tetap mengizinkan seluruh keluarga, dan entri best, opusplan, serta default diabaikan
  • Default: "prefix"

Contoh ini mengizinkan Opus 5 dan Sonnet 5 tanpa rilis yang lebih baru dari keduanya:

{
  "availableModels": ["claude-opus-5", "claude-sonnet-5"],
  "availableModelsMatch": "exact"
}

Dengan "exact", opsi Default juga dibatasi pada model yang tercantum setiap kali daftar menyebutkan setidaknya satu model atau keluarga. Lihat Memblokir model atau versi tertentu.

deniedModels

Blokir model tertentu, dengan atau tanpa allowlist availableModels dan bahkan ketika daftar tersebut mengizinkannya. Claude Code menyembunyikan model yang diblokir dari pemilih /model, dan model tersebut tidak dapat dipilih di mana pun availableModels diberlakukan. Sesi pada opsi Default juga tidak menjalankan model yang diblokir, seperti yang dijelaskan di Memblokir model atau versi tertentu. Memerlukan Claude Code v2.1.283 atau yang lebih baru.

  • Cakupan: Managed. Claude Code mengabaikan kunci ini di pengaturan user, project, dan local serta di --settings, dengan peringatan
  • Tipe: array alias atau ID model
    • Alias keluarga seperti "opus" memblokir setiap model dalam keluarga tersebut
    • ID model seperti "claude-opus-5-5" memblokir versi tersebut dalam setiap penulisan, termasuk ID bertanggal dan ID khusus penyedia
    • ID model tanpa versi minor, seperti "claude-opus-5", juga memblokir versi minor yang lebih baru seperti Opus 5.5. Tulis "claude-opus-5-0" untuk memblokir Opus 5 saja
    • Entri best, opusplan, dan default diabaikan
  • Default: tidak diatur, sehingga tidak ada model yang diblokir

Contoh ini mengizinkan model Opus dan Sonnet serta memblokir Opus 5.5:

{
  "availableModels": ["opus", "sonnet"],
  "deniedModels": ["claude-opus-5-5"]
}

Lihat Memblokir model atau versi tertentu.

effortLevel

Atur tingkat effort default untuk model yang belum Anda simpan tingkatnya. Tingkat yang lebih rendah lebih cepat dan lebih murah untuk tugas yang sederhana, dan tingkat yang lebih tinggi bernalar lebih mendalam pada masalah yang kompleks.

Ketika Anda menjalankan /effort low, medium, high, atau xhigh dalam sesi interaktif di mesin Anda, Claude Code menyimpan tingkat tersebut untuk model aktif di bawah modelSettings alih-alih menulis kunci ini. Sebelum v2.1.251, /effort menulis kunci ini.

Dalam file pengaturan yang sama, Claude Code menggunakan tingkat tersimpan milik model alih-alih kunci ini. modelSettings menjelaskan prioritas lintas file.

Dalam sesi yang terhubung ke worker jarak jauh, dalam eksekusi -p, dan di Agent SDK, /effort hanya berlaku untuk sesi tersebut. Menyesuaikan tingkat effort mencantumkan pilihan interaktif yang juga hanya berlaku untuk sesi tersebut. Pesan yang dicetak /effort menyebutkan mana yang terjadi.

  • Cakupan: Any file
  • Tipe: string, salah satu dari:
    • "low": penalaran paling sedikit, untuk tugas singkat, terbatas, dan sensitif terhadap latensi yang tidak sensitif terhadap kecerdasan
    • "medium": mengurangi penggunaan token untuk pekerjaan yang sensitif terhadap biaya yang dapat mengorbankan sebagian kecerdasan
    • "high": menyeimbangkan penggunaan token dan kecerdasan
    • "xhigh": penalaran lebih mendalam dengan pengeluaran token yang lebih tinggi
  • Default: tidak diatur
  • Override per sesi: --effort diutamakan daripada kunci ini untuk satu sesi, dan CLAUDE_CODE_EFFORT_LEVEL diutamakan daripada keduanya
{
  "effortLevel": "xhigh"
}

Di file pengaturan user Anda, ~/.claude/settings.json, kunci ini adalah bentuk lama yang ditulis /effort sebelum menyimpan tingkat per model, dan kunci ini tetap berlaku di tempat sebelumnya berlaku, pada Opus 5, Fable 5.1, dan model yang lebih lama. Opus 5.5 dan model yang dirilis setelahnya mengabaikannya dan dimulai pada default masing-masing sampai Anda menyimpan tingkat untuk model tersebut, yang ditulis /effort di bawah modelSettings. Di pengaturan project, local, dan terkelola, serta dengan --settings, kunci ini berlaku untuk setiap model.

enforceAvailableModels

Pemilih /model memiliki opsi Default, dan pengaturan model default menjelaskan model yang menjadi hasil resolve-nya. Allowlist availableModels membatasi model yang dapat Anda sebutkan, tetapi dengan pencocokan prefiks default, allowlist tersebut tidak memetakan ulang default tipe akun Anda, sehingga Default masih dapat di-resolve ke model di luar daftar. Kunci ini menutup celah tersebut. Memerlukan Claude Code v2.1.175 atau yang lebih baru.

Ketika organisasi Anda men-deploy pengaturan terkelola apa pun, Claude Code membaca kunci ini hanya dari sumber terkelola dan mengabaikannya di file Anda yang lain.

Untuk cara kunci ini berlaku pada pemeriksaan model saat startup, lihat Amazon Bedrock dan Google Cloud's Agent Platform.

  • Cakupan: Any file
  • Tipe: Boolean
    • true: ketika Default akan di-resolve ke model di luar availableModels, Claude Code me-resolve-nya ke model tersedia pertama dalam daftar
    • false: kunci ini tidak mengubah cara Default di-resolve
  • Default: false

Contoh ini membatasi pilihan bernama ke model Sonnet dan Haiku dan membuat Default di-resolve ke yang pertama di antara keduanya yang tersedia:

{
  "availableModels": ["sonnet", "haiku"],
  "enforceAvailableModels": true
}

Kunci ini tidak berpengaruh ketika availableModels tidak diatur atau kosong. Lihat Memberlakukan allowlist untuk model Default. Memerlukan Claude Code v2.1.175 atau yang lebih baru.

fallbackModel

Sebutkan model cadangan yang akan dicoba Claude Code, secara berurutan, ketika model utama Anda kelebihan beban atau tidak tersedia. Claude Code beralih ke model tersedia berikutnya dalam rantai untuk sisa giliran dan menampilkan pemberitahuan. Tanpa rantai, Claude Code mencoba ulang model yang sama lalu menampilkan error dari server, dan Anda mencoba ulang atau beralih model sendiri.

Peralihan berarti satu giliran dengan prompt cache yang dingin pada model fallback; pesan Anda berikutnya mencoba model utama terlebih dahulu lagi.

  • Cakupan: Any file
  • Tipe: array alias atau ID model; "default" diperluas menjadi model default
  • Default: tidak diatur, sehingga permintaan yang gagal tidak dicoba ulang pada model lain
  • Override per sesi: --fallback-model diutamakan daripada kunci ini untuk satu sesi

Contoh ini mencoba Sonnet 5 terlebih dahulu, lalu Haiku 4.5, ketika model utama Anda gagal:

{
  "fallbackModel": ["claude-sonnet-5", "claude-haiku-4-5"]
}

Tidak seperti kebanyakan pengaturan array, kunci ini tidak digabungkan lintas file pengaturan: file dengan prioritas tertinggi yang mendefinisikannya menyediakan seluruh rantai. Jika file project Anda mengatur ["claude-sonnet-5"] dan file user Anda mengatur ["claude-haiku-4-5"], rantainya hanya ["claude-sonnet-5"]. Claude Code menyimpan paling banyak tiga model berbeda yang diizinkan dari daftar dan mengabaikan sisanya. Lihat Rantai model fallback.

fastMode

Aktifkan fast mode untuk sesi di mana fitur ini tersedia, untuk pekerjaan interaktif seperti iterasi cepat atau debugging langsung di mana Anda menginginkan kecepatan dengan biaya per token yang lebih tinggi. Anda biasanya tidak mengedit kunci ini secara manual. Menjalankan /fast menulis fastMode: true ke ~/.claude/settings.json, dan menjalankannya lagi untuk mematikan fast mode akan menghapus kunci tersebut.

Pada Anthropic API, hanya Fable 5.2, Opus 5.5, Opus 5, dan Opus 4.8 yang mendukung fast mode. Menjalankan /fast dari model lain akan mengalihkan Anda ke Opus, dan beralih ke model yang tidak didukung akan mematikan fast mode. Lihat Beralih model saat fast mode aktif. Pada Google Cloud's Agent Platform, /fast mengalihkan Anda ke Fable 5.2 sebagai gantinya dan tidak menulis kunci ini, dan Claude Code mengabaikan true yang tersimpan.

{
  "fastMode": true
}

fastModePerSessionOptIn

Biasanya, menjalankan /fast menyimpan fastMode ke pengaturan user seseorang, sehingga sesi baru pada model yang didukung dimulai dengan fast mode aktif. Pada Fable 5.2, hal itu hanya terjadi jika mereka mengaktifkannya saat menggunakan Fable 5.2. Agar setiap orang menjalankan /fast di setiap sesi yang menginginkannya, atur kunci ini ke true. Claude Code membiarkan fastMode di file mereka, sehingga mematikan kunci ini memulihkan perilaku lama.

Owner pada paket Team atau Enterprise dapat men-deploy-nya ke seluruh organisasi melalui pengaturan terkelola server. Ketika pengaturan terkelola mengatur kunci ini, /fast on ditolak di luar sesi terminal interaktif dan melaporkan bahwa organisasi Anda telah menonaktifkan fast mode. Hal itu mencakup mode non-interaktif, ekstensi VS Code, dan sesi cloud.

  • Cakupan: Any file
  • Tipe: Boolean
    • true: fastMode: true yang tersimpan tidak lagi mengaktifkan fast mode saat sesi dimulai, sehingga setiap orang menjalankan /fast di setiap sesi yang menginginkannya; fastMode: true yang diberikan dengan --settings tetap berlaku untuk sesi tersebut kecuali pengaturan terkelola mengatur kunci ini
    • false: fastMode: true yang tersimpan berfungsi seperti yang dijelaskan fastMode
  • Default: false
{
  "fastModePerSessionOptIn": true
}

Lihat Mewajibkan opt-in per sesi.

language

Buat Claude merespons dalam bahasa selain bahasa Inggris secara default. Tidak ada daftar tetap untuk respons: Claude Code meneruskan nilai apa adanya ke Claude sebagai instruksi untuk selalu merespons dalam bahasa tersebut, sehingga nama bahasa apa pun yang dapat dibaca Claude akan berfungsi. Claude Code tidak memeriksa nilainya, sehingga nama yang salah eja sampai ke Claude sebagaimana ditulis alih-alih menghasilkan error. Nilai yang sama mengatur bahasa untuk dikte suara, yang memang memiliki daftar tetap bahasa dikte yang didukung, dan untuk judul sesi yang dibuat otomatis.

  • Cakupan: Any file
  • Tipe: string, nama bahasa apa pun, seperti "japanese", "spanish", atau "french"; Claude Code tidak memvalidasinya
  • Default: tidak diatur; judul sesi kemudian mengikuti bahasa percakapan Anda
{
  "language": "japanese"
}

maxEffortLevel

Batasi tingkat effort yang dapat digunakan sesi, dengan tetap menyediakan tingkat yang lebih rendah. Tingkat yang lebih tinggi akan berjalan pada batas tersebut, termasuk yang berasal dari /effort, pemilih /model, --effort, CLAUDE_CODE_EFFORT_LEVEL, frontmatter effort milik skill atau subagent, atau default milik model itu sendiri. Claude Code menerapkan batas itu sendiri sebelum setiap permintaan, sehingga batas tersebut berlaku di setiap penyedia, termasuk Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry. Memerlukan Claude Code v2.1.267 atau yang lebih baru.

  • Cakupan: Any file. Deploy di pengaturan terkelola untuk memberlakukannya bagi organisasi. Ketika beberapa cakupan mengatur batas, batas terendah yang berlaku, sehingga batas yang diatur di satu cakupan tidak dapat dinaikkan dari cakupan lain
  • Tipe: string, salah satu dari "low", "medium", "high", "xhigh", atau "max". Nilai "max" tidak mengatur batas
  • Default: tidak diatur, sehingga tidak ada batas yang berlaku
  • Batas per model: tambahkan maxEffortLevel ke entri modelSettings milik model. Entri tersebut menggantikan kunci ini untuk model itu hanya dalam sumber pengaturan yang mengatur keduanya, seperti pengaturan user Anda atau satu sumber terkelola. Atur "max" di sana untuk membebaskan model dari batas sumber tersebut; Claude Code tetap menerapkan batas dari sumber lain

Contoh ini membatasi setiap model pada medium dan membebaskan Sonnet 4.6:

{
  "maxEffortLevel": "medium",
  "modelSettings": {
    "claude-sonnet-4-6": {
      "maxEffortLevel": "max"
    }
  }
}

Ketika organisasi Anda juga mengatur batas effort untuk suatu model, batas yang lebih rendah dari keduanya yang berlaku.

model

Atur model yang digunakan setiap sesi baru, sehingga Anda tidak perlu memilihnya dengan /model setiap kali. Mengaturnya di sini tidak menghalangi Anda beralih di tengah sesi. Jika admin Anda mengatur model default organisasi untuk menimpa pilihan user, Anda mendapatkan model tersebut bahkan ketika Anda mengatur kunci ini di pengaturan user, project, atau local.

  • Cakupan: Any file
  • Tipe: string, alias model atau ID model lengkap
  • Default: tidak diatur, sehingga Claude Code menggunakan model default akun Anda
  • Override per sesi: --model diutamakan daripada ANTHROPIC_MODEL, dan keduanya diutamakan daripada kunci ini untuk satu sesi, termasuk daripada model terkelola; daftar availableModels tetap berlaku untuk pilihan tersebut
{
  "model": "claude-sonnet-5"
}

Nilai di sini memiliki prioritas lebih tinggi daripada ANTHROPIC_DEFAULT_MODEL, yang hanya digunakan Claude Code ketika tidak ada hal lain yang memilih model.

modelOverrides

Petakan ID model Anthropic ke ID model khusus penyedia, seperti ARN inference profile Amazon Bedrock. Setiap entri pemilih model kemudian menggunakan nilai yang dipetakan saat memanggil API penyedia. Administrator menggunakan ini pada Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry untuk merutekan setiap versi model ke inference profile, nama versi, atau deployment tertentu untuk tata kelola, alokasi biaya, atau perutean regional.

  • Cakupan: Any file
  • Tipe: objek yang memetakan ID model ke ID model penyedia
  • Default: tidak diatur

Contoh ini merutekan setiap panggilan untuk Opus 4.6 ke inference profile Bedrock yang disebutkan:

{
  "modelOverrides": {
    "claude-opus-4-6": "arn:aws:bedrock:us-east-1:123456789012:inference-profile/example"
  }
}

Lihat Menimpa ID model per versi.

modelPicker

Cantumkan model yang ditawarkan pemilih /model, dalam urutan yang Anda tulis dan dengan label yang Anda pilih, sehingga pemilih mencantumkan model yang dijalankan organisasi Anda, setelah jajaran bawaan atau sebagai penggantinya. model setiap baris diambil apa adanya, sehingga menerima apa pun yang diterima --model: alias seperti opus, ID model Anthropic, atau ID berformat penyedia untuk Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, atau LLM gateway. Memerlukan Claude Code v2.1.242 atau yang lebih baru.

  • Cakupan: User or managed. Claude Code membaca kunci ini dari pengaturan terkelola, --settings, dan pengaturan user, serta mengabaikannya di pengaturan project dan local sehingga repositori yang Anda clone tidak dapat melabeli ulang pemilih. Yang tertinggi dari ketiganya yang mengatur kunci ini menyediakan seluruh jajaran, dan Claude Code tidak pernah menggabungkan jajaran dari dua sumber.
  • Tipe: objek dengan array baris options dan Boolean replaceBuiltInOptions opsional
  • Default: tidak diatur, sehingga pemilih menampilkan jajaran bawaan

Contoh ini menambahkan dua deployment Bedrock setelah jajaran bawaan, dengan nama yang dikenali tim Anda:

{
  "modelPicker": {
    "options": [
      { "model": "us.anthropic.claude-opus-4-8", "label": "Opus (production)" },
      {
        "model": "us.anthropic.claude-sonnet-4-6",
        "label": "Sonnet (production)",
        "description": "Day-to-day work"
      }
    ]
  }
}

Field untuk modelPicker

Kunci ini menerima dua field, satu untuk baris itu sendiri dan satu untuk menentukan apakah baris tersebut menggantikan jajaran bawaan atau menambahkannya.

Field Tipe Fungsinya
options array baris, masing-masing dengan model wajib dan label, description, serta behavesAs opsional Baris yang ditampilkan pemilih, dalam urutan ini, kecuali baris yang berwarna abu-abu dipindahkan ke bawah. Tanpa label, Claude Code memberi judul baris dengan nama bawaan untuk model yang dikenalinya, atau ID model jika tidak, dan tanpa description ia menulis baris kedua yang generik
replaceBuiltInOptions Boolean, default false Atur ke true untuk hanya menampilkan baris-baris ini, Default, dan baris untuk model yang sudah digunakan sesi. Biarkan tidak diatur untuk menambahkan baris-baris ini setelah jajaran bawaan

Entri di options juga dapat membawa string behavesAs opsional di samping model-nya, yang memerlukan v2.1.257 atau yang lebih baru. Atur ke ID model yang sudah dikenali versi Claude Code Anda, seperti claude-opus-4-8, pada entri yang model-nya lebih baru dari versi Anda. Claude Code kemudian menerapkan kemampuan dan default effort model yang dikenal tersebut ke entri alih-alih memperlakukan modelnya sebagai tidak dikenal. Label entri dan ID model yang dikirim Claude Code dalam permintaan tidak berubah.

Dengan replaceBuiltInOptions aktif, Claude Code menyembunyikan setiap baris lainnya: jajaran bawaan, baris yang ditambahkannya untuk entri availableModels, model yang ditemukan penemuan gateway, dan ANTHROPIC_CUSTOM_MODEL_OPTION. Dengan opsi ini mati, Claude Code melewati model tercantum yang sudah dicakup jajaran bawaan. Label mengubah apa yang ditampilkan pemilih, bukan model mana yang dijalankan Claude Code.

Allowlist availableModels tetap berlaku untuk baris-baris ini. Sebelum Anda menambahkan model tercantum ke allowlist, baca Perilaku penggabungan: ID model tertentu mempersempit entri wildcard keluarganya. Claude Code juga memeriksa setiap baris terhadap sesi sebelum menampilkan pemilih:

  • Dihapus: baris yang tidak dapat dilayani Claude Code, seperti model yang sudah dihentikan atau model yang tidak dapat diakses organisasi Anda
  • Berwarna abu-abu: baris yang belum dapat Anda pilih, ditampilkan beserta alasannya
  • Tidak ada baris yang tersisa: Claude Code mempertahankan jajaran bawaan, difilter oleh allowlist seperti biasa

Claude Code menghapus baris yang tidak dapat diurainya dan mempertahankan sisanya. Lihat Memperbaiki file pengaturan yang rusak.

modelPricing

Laporkan pengeluaran dengan tarif yang dibayar organisasi Anda alih-alih harga daftar. Atur ketika organisasi Anda memiliki tarif kontrak, sehingga angka dolar yang dilihat developer sesuai dengan tagihan Anda. Claude Code menerapkan tarif tersebut di /usage, baris status, total_cost_usd milik Agent SDK, batas --max-budget-usd, serta metrik dan event biaya OpenTelemetry. Anda yang menyediakan tarifnya: Claude Code tidak membacanya dari kontrak Anda atau Claude Console. Memerlukan Claude Code v2.1.242 atau yang lebih baru.

  • Cakupan: Managed. Deploy kunci ini melalui pengaturan terkelola server, kebijakan MDM, file managed-settings.json, atau policy helper. Claude Code mengabaikannya di pengaturan user, project, dan local, di --settings, dan di Windows pada registri HKCU yang dapat ditulis user. Dengan pengaturan terkelola server, setiap sesi melaporkan biaya dengan harga daftar sampai pengambilan pengaturan sesi tersebut telah mengonfirmasi pengaturan. Aplikasi host yang menyematkan Claude Code dan mengatur CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST dapat menyediakan tabelnya sendiri melalui opsi SDK managedSettings, yang digunakan Claude Code hanya ketika tidak ada sumber terkelola yang mengatur kunci ini dan hanya di Claude Code v2.1.246 atau yang lebih baru.
  • Tipe: objek dengan multiplier opsional dan map overrides opsional
  • Default: tidak diatur, sehingga Claude Code melaporkan harga daftar kecuali aplikasi host menyediakan tabel

Atur multiplier saja untuk diskon atau markup datar, overrides saja untuk tarif per model, atau keduanya.

Contoh ini mengatur tarif kontrak untuk Sonnet 4.6 lalu mengurangi setiap angka, termasuk baris Sonnet, sebesar 15%:

{
  "modelPricing": {
    "multiplier": 0.85,
    "overrides": {
      "claude-sonnet-4-6": {
        "input": 2.4,
        "output": 12,
        "cacheRead": 0.24,
        "cacheWrite": 3
      }
    }
  }
}

Atur multiplier di atas 1, hingga 10, untuk menaikkan setiap angka. Markup memerlukan Claude Code v2.1.271 atau yang lebih baru. Versi sebelumnya mengabaikan multiplier di atas 1 dengan peringatan dan mempertahankan sisa pengaturan.

Untuk langkah-langkahnya, termasuk cara mengonfirmasi bahwa tarif sudah berlaku, lihat Melaporkan pengeluaran dengan tarif kontrak Anda.

Field untuk modelPricing

Field Tipe Fungsinya
multiplier angka lebih besar dari 0 dan paling banyak 10 Menskalakan setiap biaya yang dihitung Claude Code, baik dicakup oleh baris overrides maupun tidak. Di bawah 1 adalah diskon, di atas 1 adalah markup
overrides map ID model ke objek tarif dengan input, output, cacheRead, dan cacheWrite, masing-masing 0 hingga 10000 Tarif USD per juta token untuk model tersebut, keempatnya wajib. cacheWrite mencakup penulisan cache lima menit dan satu jam. Lihat Model mana yang dikenai sebuah baris

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

Model mana yang dikenai baris modelPricing

Claude Code menentukan model mana yang dikenai sebuah baris berdasarkan kunci baris tersebut:

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

modelSettings

Simpan tingkat effort untuk setiap model yang Anda gunakan. Memerlukan Claude Code v2.1.251 atau yang lebih baru.

Dalam sesi interaktif di mesin Anda, ketika Anda menyimpan low, medium, high, atau xhigh sebagai default Anda dengan /effort atau slider effort pada pemilih /model, Claude Code menulis tingkat tersebut di sini di bawah model yang Anda gunakan, sehingga Anda jarang mengedit kunci ini sendiri. Ketika Anda memilih salah satu tingkat tersebut di pemilih model ekstensi VS Code, Claude Code menyimpannya di sini dengan cara yang sama. Entri effortLevel mencantumkan sesi di mana /effort hanya berlaku untuk sesi tersebut.

Edit kunci ini secara manual untuk mengubah atau menghapus tingkat yang Anda simpan.

effortLevel milik model di sini diutamakan daripada effortLevel tingkat atas di file pengaturan yang sama. Lintas file, Claude Code me-resolve setiap model secara terpisah: file pengaturan dengan prioritas tertinggi yang mengatur effortLevel untuk model tersebut atau effortLevel tingkat atas yang berlaku untuk model tersebut yang menentukan, sehingga effortLevel di pengaturan terkelola memiliki prioritas lebih tinggi daripada tingkat yang Anda simpan di pengaturan user. Menyesuaikan tingkat effort mencantumkan hal lain yang dapat menimpa tingkat tersimpan, seperti --effort saat peluncuran.

Untuk membatasi effort satu model alih-alih mengatur tingkatnya, tambahkan field maxEffortLevel ke entri model tersebut. Field ini memerlukan Claude Code v2.1.267 atau yang lebih baru.

  • Cakupan: Any file
  • Tipe: objek yang memetakan nama model ke objek dengan satu atau beberapa field berikut:
    • effortLevel: salah satu dari "low", "medium", "high", atau "xhigh"
    • maxEffortLevel: tingkat effort tertinggi yang dapat digunakan model
    • autoCompactWindow: jumlah token dari 100000 hingga 1000000, atau "auto" untuk window yang disesuaikan untuk model tersebut. /autocompact menyimpan di sini. Untuk model tersebut, nilai ini diutamakan daripada autoCompactWindow tingkat atas di file pengaturan yang sama. Memerlukan Claude Code v2.1.288 atau yang lebih baru
  • Default: tidak diatur

Claude Code menulis setiap entri di bawah nama kanonis model, seperti claude-opus-5-5, dan mencocokkan alias, ID bersufiks tanggal, [1m], serta ID khusus penyedia yang dikenali dari model tersebut ke entri yang sama.

Contoh ini mempertahankan Opus 5.5 pada high sementara model lain menggunakan tingkat tersimpan atau default masing-masing:

{
  "modelSettings": {
    "claude-opus-5-5": {
      "effortLevel": "high"
    }
  }
}

Jalankan /effort auto untuk menghapus tingkat tersimpan untuk model yang Anda gunakan. Claude Code membiarkan entri lain dan effortLevel tingkat atas apa pun tetap di tempatnya.

outputStyle

Pilih gaya output berdasarkan nama. Gaya output adalah kumpulan instruksi tersimpan yang mengubah peran, nada, dan format output Claude, seperti gaya bawaan Explanatory dan Learning atau gaya yang Anda tulis sendiri.

Jika Anda mengubah kunci ini selama sesi, Claude menggunakan gaya baru mulai dari pesan Anda berikutnya. Untuk biaya pesan tersebut dalam prompt caching, lihat Mengubah gaya output. Sebelum v2.1.251, perubahan hanya berlaku setelah Anda menjalankan /clear atau memulai sesi baru.

  • Cakupan: Any file
  • Tipe: string, nama gaya output bawaan atau kustom
  • Default: tidak diatur, sehingga Claude Code menggunakan gaya default

Contoh ini memilih gaya bawaan Explanatory, yang menambahkan wawasan edukatif di antara tugas:

{
  "outputStyle": "Explanatory"
}

promptCacheTtl

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

Contoh ini mempertahankan percakapan utama pada masa berlaku satu jam dan membiarkan subagent pada lima menit:

{
  "promptCacheTtl": "1h",
  "subagentPromptCacheTtl": "5m"
}

Untuk biaya setiap masa berlaku, lihat Masa berlaku cache.

showThinkingSummaries

Lihat ringkasan extended thinking Claude dalam sesi interaktif. Atur ini jika Anda menginginkan ringkasan lengkap ketika Anda memperluas thinking dengan Ctrl+O. Ketika tidak diatur atau false, Anthropic API menyunting thinking block dan Claude Code menampilkan stub yang diciutkan.

  • Cakupan: Any file
  • Tipe: Boolean
    • true: Anda melihat ringkasan thinking lengkap ketika Anda memperluas thinking dengan Ctrl+O
    • false: Anthropic API menyunting thinking block dan Claude Code menampilkan stub yang diciutkan
  • Default: false
{
  "showThinkingSummaries": true
}

Penyuntingan hanya mengubah apa yang Anda lihat, bukan apa yang dihasilkan model. Untuk mengurangi pengeluaran thinking, turunkan budget atau nonaktifkan thinking sebagai gantinya.

subagentPromptCacheTtl

Pilih berapa lama prompt cache menyimpan permintaan yang dibuat Claude Code di luar percakapan utama. Kunci ini berlaku untuk subagent, workflow, dan permintaan latar belakang serta helper milik Claude Code sendiri, seperti compaction dan judul sesi. Masa berlaku satu jam menjaga cache tetap hangat selama jeda yang lebih lama, dan API menagih setiap penulisan cache dengan tarif yang lebih tinggi dibandingkan masa berlaku lima menit. Memerlukan Claude Code v2.1.242 atau yang lebih baru.

Contoh ini memberikan masa berlaku satu jam kepada subagent dan permintaan lain di luar percakapan utama:

{
  "subagentPromptCacheTtl": "1h"
}

Kunci ini mencakup permintaan yang tidak dicakup promptCacheTtl, jadi atur keduanya untuk memilih masa berlaku bagi setiap permintaan yang dibuat Claude Code. Untuk perbedaan cache subagent dengan cache percakapan utama, lihat Subagent dan cache.

switchModelsOnFlag

Pilih apa yang terjadi ketika pengklasifikasi keamanan menandai permintaan: beralih ke model fallback dan melanjutkan, atau berhenti sejenak agar Anda dapat memilih antara beralih dan mengedit prompt.

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

Lihat Bertanya sebelum beralih.

ultracode

Mulai sesi dengan ultracode aktif. Dengan opsi ini aktif, Claude merencanakan workflow untuk setiap tugas substantif alih-alih menunggu Anda memintanya. Claude merencanakan workflow hanya ketika dynamic workflows diaktifkan untuk Anda dan model Anda mendukung effort xhigh. Kunci ini tidak mengubah tingkat effort sesi: ultracode berjalan pada tingkat mana pun yang digunakan sesi. Claude Code membaca kunci ini tetapi tidak pernah menulisnya: /effort ultracode mengaktifkan ultracode hanya untuk sesi saat ini.

  • Cakupan: Any file
  • Tipe: Boolean
    • true: sesi dimulai dengan ultracode aktif ketika dynamic workflows diaktifkan untuk Anda dan model Anda mendukung xhigh
    • false: sesi dimulai dengan ultracode mati
  • Default: tidak diatur, sehingga ultracode mati
  • Override per sesi: /effort ultracode mengaktifkan ultracode untuk satu sesi tanpa kunci ini, dan /effort ultracode off mematikannya untuk satu sesi ketika kunci ini true. Flag --effort ultracode juga mengaktifkannya untuk satu sesi, pada effort xhigh
{
  "ultracode": true
}

Tingkat effort sesi berasal dari effortLevel, modelSettings, dan sumber effort lainnya, dan batas effort seperti maxEffortLevel menurunkan tingkat tersebut tanpa mematikan ultracode. Hal ini dan bentuk /effort ultracode off memerlukan Claude Code v2.1.284 atau yang lebih baru. Sebelum v2.1.284, ultracode: true menjalankan sesi pada effort xhigh, dan batas effort di bawah xhigh membuat ultracode tetap mati. Permintaan kontrol apply_flag_settings Agent SDK juga menerima kunci ini.

Pengaturan izin

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

allowManagedPermissionRulesOnly

Jadikan pengaturan terkelola satu-satunya sumber pengaturan aturan izin. Claude Code kemudian mengabaikan aturan allow, ask, dan deny dalam file pengguna, proyek, lokal, dan --settings, mengabaikan --allowedTools, menyembunyikan pilihan selalu-izinkan dalam dialog izin, dan berhenti menyimpan aturan baru.

Ketika pengaturan induk dari host penyematan berlaku, Claude Code memperlakukan mereka sebagai bagian dari tingkat terkelola. Claude Code menghapus aturan allow dan additionalDirectories mereka, dan mempertahankan aturan deny dan ask mereka kecuali aturan Read dan Edit yang polanya dimulai dengan !. Host tidak dapat mengukir jalur dari aturan terkelola dengan aturan !, terlepas dari apakah Anda menetapkan kunci ini.

Aturan --disallowedTools dan aturan deny dan ask sesi saat ini masih berlaku, termasuk setelah Claude Code memuat ulang pengaturan di tengah sesi. Mereka hanya membatasi, jadi mereka tidak dapat memperluas apa yang diberikan aturan terkelola. Sebelum v2.1.257, Claude Code menghapus aturan baris perintah dan sesi tersebut pada pemuatan ulang pengaturan pertama.

Untuk apa yang dapat diukir pola ! dalam aturan --disallowedTools atau sesi, lihat aturan Read dan Edit.

Ketika Anda menetapkan kunci ini, Claude Code v2.1.282 atau lebih baru juga mengabaikan frontmatter allowed-tools dalam skill dan file .claude/commands/ dari sumber-sumber berikut:

Skill dari pengaturan terkelola dan skill bawaan tetap mempertahankan allowed-tools mereka. Plugin @inline di luar sesi Desktop tersebut juga tetap mempertahankannya, kecuali plugin yang bernama anthropic-skills. disallowed-tools milik skill tetap berlaku. Untuk apa yang dilihat pengembang ketika Claude Code mengabaikan field tersebut, lihat Ketika hanya aturan izin terkelola yang berlaku.

  • Scope: Managed
  • Type: Boolean
    • true: pengaturan terkelola menjadi satu-satunya sumber pengaturan aturan izin
    • false: Claude Code menerapkan aturan izin dari file pengguna, proyek, lokal, dan --settings selain yang terkelola
  • Default: tidak diatur, jadi Claude Code menerapkan aturan izin dari pengaturan pengguna, proyek, dan lokal serta dari --settings, selain yang terkelola
{
  "allowManagedPermissionRulesOnly": true
}

Kunci ini tidak mengunci allowlist server MCP; untuk itu, atur allowManagedMcpServersOnly. Lihat Pengaturan hanya terkelola.

autoMode

Tambahkan aturan Anda sendiri ke apa yang diblokir dan diizinkan oleh pengklasifikasi auto mode. Gunakan untuk memberi tahu pengklasifikasi repo, bucket, dan domain mana yang dipercaya organisasi Anda, sehingga berhenti memblokir operasi internal sehari-hari. Pengklasifikasi dilengkapi dengan aturan allow dan deny bawaan. Sertakan string literal "$defaults" dalam array untuk mempertahankan aturan bawaan tersebut pada posisi itu dan tambahkan milik Anda di sekitarnya; tinggalkan untuk menggantinya dengan milik Anda.

Contoh ini mempertahankan aturan soft_deny bawaan, melalui "$defaults", dan menambahkan satu lagi yang memblokir terraform apply:

{
  "autoMode": {
    "soft_deny": ["$defaults", "Never run terraform apply"]
  }
}

Ketika lebih dari satu file tersebut menetapkan array yang sama, Claude Code menggabungkan entri. Untuk format aturan dan bagaimana setiap array diterapkan, lihat Konfigurasi auto mode.

autoMode.classifyAllShell

Kirim setiap perintah Bash dan PowerShell melalui pengklasifikasi auto mode saat auto mode aktif. Secara default, auto mode hanya menangguhkan aturan allow yang dapat menjalankan kode arbitrer: aturan untuk seluruh tool dan aturan wildcard seperti Bash(*), dan awalan interpreter atau shell-wrapper seperti Bash(python *). Perintah yang cocok dengan aturan allow lain, seperti Bash(npm test), melewati pengklasifikasi kecuali membawa domain yang diizinkan per-perintah. Ketika melewati, argumen destruktif yang tidak diantisipasi awalan aturan dapat lolos tanpa terlihat. Menetapkan kunci ini menangguhkan setiap aturan allow shell untuk sesi sehingga pengklasifikasi melihat setiap perintah. Memerlukan Claude Code v2.1.193 atau lebih baru.

  • Scope: User or managed. Dibaca di mana pun autoMode dibaca.
  • Type: Boolean
    • true: saat auto mode aktif, Claude Code mengirim setiap perintah Bash dan PowerShell melalui pengklasifikasi dan menangguhkan aturan allow shell Anda; di luar auto mode aturan masih berlaku
    • false: auto mode hanya menangguhkan aturan allow yang dapat menjalankan kode arbitrer, seperti Bash(*) dan Bash(python *); perintah yang cocok dengan aturan allow lain melewati pengklasifikasi kecuali membawa domain yang diizinkan per-perintah, dan setiap perintah shell lainnya melaluinya
  • Default: false
{
  "autoMode": {
    "classifyAllShell": true
  }
}

Lihat Arahkan semua perintah shell melalui pengklasifikasi.

disableAutoMode

Hapus auto mode dari siklus Shift+Tab. Setiap sesi yang sebaliknya akan dimulai dalam auto mode, baik dari --permission-mode auto, file pengaturan, atau default bawaan, dimulai dalam default sebagai gantinya. Administrator menetapkannya dalam pengaturan terkelola untuk mencegah pengembang di organisasi mereka menggunakan auto mode.

  • Scope: Any file. Paling berguna dalam pengaturan terkelola, di mana pengguna tidak dapat menimpanya. Juga diterima di bawah permissions sebagai permissions.disableAutoMode.
  • Type: string "disable"
  • Default: tidak diatur
{
  "disableAutoMode": "disable"
}

permissions

Kontrol tool mana yang dapat digunakan Claude tanpa bertanya, tool mana yang meminta konfirmasi, dan tool mana yang diblokir. Atur juga mode izin default untuk sesi baru. Setiap kunci permissions.* di bawah bersarang di bawah objek ini.

  • Scope: Any file
  • Type: objek dengan allow, ask, deny, additionalDirectories, blockReadsOutsideWorkingDirectories, blockWritesOutsideWorkingDirectories, defaultMode, denyInsteadOfPrompting, disableBypassPermissionsMode, dan disableAutoMode
  • Default: tidak diatur

Contoh ini menyetujui perintah npm run tanpa bertanya, meminta konfirmasi sebelum git push, memblokir pembacaan .env, dan memulai sesi dalam acceptEdits:

{
  "permissions": {
    "allow": ["Bash(npm run *)"],
    "ask": ["Bash(git push *)"],
    "deny": ["Read(./.env)"],
    "defaultMode": "acceptEdits"
  }
}

Tiga array aturan berbagi satu sintaks; lihat Sintaks aturan izin di bawah permissions.allow. Untuk bagaimana aturan izin dari file berbeda digabungkan, lihat bagaimana aturan izin digabungkan di seluruh cakupan; untuk bagaimana kunci pengaturan secara umum digabungkan, lihat Prioritas pengaturan pada panduan pengaturan.

useAutoModeDuringPlan

Pilih apakah Claude Code menggunakan pengklasifikasi auto mode untuk meninjau perintah shell dalam plan mode. Dengan default true, pengklasifikasi meninjau setiap perintah selama perencanaan ketika auto mode tersedia dan Anda tidak melihat permintaan izin, kecuali untuk penghapusan jalur kritis. Atur false untuk mendapatkan permintaan izin untuk setiap perintah di luar set read-only bawaan. Muncul dalam /config sebagai Use auto mode during plan.

  • Scope: User, local, or managed. Repositori tidak dapat mematikannya untuk Anda.
    • false di salah satu file ini atau di --settings mematikannya, kecuali Anda mengecualikan file pengguna atau lokal tersebut dengan opsi seperti --setting-sources. Mengabaikan file yang dikecualikan memerlukan Claude Code v2.1.314 atau lebih baru
  • Type: Boolean
    • true: sama dengan tidak diatur; ketika auto mode tersedia, pengklasifikasi meninjau perintah shell selama perencanaan
    • false: Anda mendapatkan permintaan izin untuk setiap perintah di luar set read-only bawaan
  • Default: true
{
  "useAutoModeDuringPlan": false
}

permissions.allow

Daftar penggunaan tool yang disetujui Claude Code tanpa bertanya kepada Anda. Dalam aturan MCP, * hanya dapat muncul dalam nama tool setelah awalan mcp__<server>__, seperti mcp__github__get_*; tidak dapat muncul dalam nama server.

  • Scope: Any file
  • Type: array string aturan izin
  • Default: tidak diatur
  • Per-session overrides: --allowedTools menambahkan aturan allow untuk satu sesi, dan aturan deny dari file pengaturan apa pun masih memblokir tool yang dinamainya

Contoh ini menyetujui git diff dan memungkinkan Claude Code membaca .zshrc Anda tanpa bertanya:

{
  "permissions": {
    "allow": ["Bash(git diff *)", "Read(~/.zshrc)"]
  }
}

Claude Code menerapkan aturan allow dari .claude/settings.json proyek hanya setelah Anda menerima dialog kepercayaan workspace untuk folder itu.

Sintaks aturan izin

Aturan izin mengikuti format Tool atau Tool(specifier). Claude Code mengevaluasi aturan deny terlebih dahulu, kemudian ask, kemudian allow, dan kecocokan pertama memutuskan terlepas dari seberapa spesifik setiap aturan; lihat urutan evaluasi aturan izin.

Setiap baris menunjukkan satu bentuk aturan dan apa yang cocok dengannya.

Aturan Apa yang cocok
Bash Setiap perintah Bash
Bash(npm run *) Perintah yang dimulai dengan npm run
Read(./.env) Pembacaan file .env
WebFetch(domain:example.com) Permintaan fetch ke example.com

Untuk sintaks aturan lengkap, termasuk perilaku wildcard, pola khusus tool untuk aturan Read, Edit, WebFetch, MCP, dan Agent, serta keterbatasan keamanan pola Bash, lihat Sintaks aturan izin.

permissions.ask

Daftar penggunaan tool yang meminta konfirmasi Anda bahkan dalam mode izin yang sebaliknya akan menyetujuinya, seperti acceptEdits atau bypassPermissions. Dalam mode dontAsk Claude Code menolak penggunaan tool yang cocok alih-alih meminta konfirmasi.

  • Scope: Any file
  • Type: array string aturan izin
  • Default: tidak diatur
{
  "permissions": {
    "ask": ["Bash(git push *)"]
  }
}

permissions.deny

Daftar penggunaan tool yang diblokir Claude Code. Gunakan untuk file yang menyimpan kunci API, rahasia, atau nilai lingkungan: Claude Code mengecualikan file yang cocok dari penemuan file dan hasil pencarian, menolak pembacaannya, dan memblokir tool Edit dan Write pada jalur yang cocok.

Aturan deny Read dan Edit berlaku untuk tool file bawaan Claude, untuk perintah file yang dikenali Claude Code dalam Bash, seperti cat, head, tail, sed, dan tee, dan untuk target pengalihan Bash seperti > file dan < file; aturan tersebut tidak berlaku untuk perintah yang membaca file tanpa menamakannya, seperti grep -r pattern ., atau untuk subprocess arbitrer, jadi untuk penegakan tingkat OS aktifkan sandbox.

  • Scope: Any file
  • Type: array string aturan izin
  • Default: tidak diatur
  • Per-session overrides: --disallowedTools menambahkan aturan deny untuk satu sesi bersama kunci ini

Contoh ini menolak pembacaan file .env, direktori secrets, dan file kredensial, serta memblokir perintah curl:

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)",
      "Read(./config/credentials.json)",
      "Bash(curl *)"
    ]
  }
}

Nama tool menerima pola glob, jadi "*" memblokir setiap tool dan "mcp__*" memblokir setiap tool MCP. Claude Code mengabaikan aturan deny untuk tool EndConversation selama tool lain masih tersedia untuk Claude. Aturan deny Bash cocok dengan perintah seperti yang ditulis Claude, jadi Bash(curl *) tidak menghentikan /usr/bin/curl atau sh -c 'curl …'; lihat apa yang tidak cocok dengan aturan Bash. Kunci ini menggantikan konfigurasi ignorePatterns yang sudah deprecated.

permissions.additionalDirectories

Berikan akses file kepada Claude ke direktori di luar direktori tempat Anda memulai, sebagai direktori kerja tambahan. Sebagian besar konfigurasi .claude/ tidak ditemukan dari direktori ini.

  • Scope: Any file, dengan batasan pada akses tulis sandbox yang diberikan oleh entri proyek dan lokal
  • Type: array jalur direktori
  • Default: tidak diatur
  • Per-session overrides: --add-dir dan /add-dir menambahkan direktori untuk satu sesi bersama kunci ini
{
  "permissions": {
    "additionalDirectories": ["../docs/"]
  }
}

Seperti aturan allow, entri dalam .claude/settings.json proyek berlaku hanya setelah Anda menerima dialog kepercayaan workspace untuk folder itu.

permissions.blockReadsOutsideWorkingDirectories

Buat tool file Claude menolak pembacaan di luar direktori kerja Anda dalam setiap mode izin, termasuk bypassPermissions. Claude Code menolak panggilan Read, Grep, Glob, dan LSP pada jalur tersebut dan memberi tahu Claude untuk meminta Anda menambahkan direktori dengan /add-dir. File yang dibutuhkan Claude Code sendiri tetap dapat dibaca, seperti skill, plugin, aturan, agent, perintah Anda, dan file memori CLAUDE.md di bawah ~/.claude/. Memerlukan Claude Code v2.1.257 atau lebih baru.

Claude Code tidak menolak perintah shell dengan cara yang sama:

Perintah Bash yang tidak dapat dilacak oleh parser shell, seperti yang mengubah direktori lebih dari sekali atau menjalankan subshell, meminta konfirmasi Anda bahkan dalam auto mode dan mode bypassPermissions. Permintaan izin muncul bahkan ketika perintah tidak menamai jalur apa pun di luar direktori kerja. Permintaan izin ini tidak berlaku ketika perintah berjalan dalam sandbox dan sandbox memberlakukan blokir.

Claude Code juga menulis true di sini ketika Anda memilih untuk memblokir pembacaan tersebut pada permintaan izin auto mode sebelum pembacaan pertama di luar direktori kerja.

  • Scope: Any file. true di file apa pun berlaku, jadi repositori dapat mengaktifkan blokir untuk dirinya sendiri tetapi tidak dapat mengangkat blokir Anda.
  • Type: Boolean
    • true: tool file Claude menolak pembacaan di luar direktori kerja
    • false: sama dengan tidak diatur; blokir masih berlaku jika file lain menetapkan true
  • Default: tidak diatur, jadi pembacaan di luar direktori kerja mengikuti mode izin Anda
{
  "permissions": {
    "blockReadsOutsideWorkingDirectories": true
  }
}

Untuk mengangkat blokir, hapus kunci dari setiap file pengaturan yang menetapkannya, kemudian mulai ulang setiap sesi yang sedang berjalan.

Direktori yang Anda tambahkan dengan --add-dir, /add-dir, atau additionalDirectories dalam pengaturan pengguna atau terkelola Anda dihitung sebagai direktori kerja untuk blokir. Direktori yang ditambahkan hanya dalam pengaturan repositori tidak dihitung: yang ada di .claude/settings.json, dan yang ada di .claude/settings.local.json kecuali git melaporkan file itu sebagai tidak dilacak. Dalam direktori yang bukan repositori git, atau ketika git melacak file tersebut, Claude Code memperlakukan .claude/settings.local.json sebagai pengaturan repositori, jadi letakkan direktori yang ingin tetap dapat dibaca dalam pengaturan pengguna Anda sebagai gantinya.

Ketika autoMemoryDirectory berasal dari .claude/settings.json proyek, atau dari .claude/settings.local.json yang diperlakukan sebagai disediakan repositori, Claude Code tidak memuat auto memory apa pun dari direktori itu dan tidak menyimpan apa pun ke dalamnya.

Perintah sandboxed di bawah blokir

Ketika sandboxing aktif, blokir juga mencakup perintah sandboxed. Claude Code menolak akses baca perintah tersebut ke direktori home Anda dan ke akar lain yang menyimpan file pengguna: /Users, /home, /root, /Volumes, /mnt, /media, /run/media, dan /srv. Kemudian Claude Code membuka kembali direktori kerja, worktree yang dibuat Claude Code dalam sesi, direktori temp sesi, dan bagian dari ~/.claude yang dibutuhkan perintah, seperti skill dan plugin. Saat blokir berlaku, entri allowRead dan allowWrite dari pengaturan repositori tidak dihitung.

Ketika direktori kerja sesi adalah git worktree yang ditautkan, termasuk yang dimasuki Claude Code di tengah sesi, direktori .git umum repositori tetap dapat dibaca dan ditulis oleh perintah sandboxed, sehingga git terus bekerja di sana.

Dalam kasus-kasus ini blokir tidak menjangkau perintah sandboxed, sementara tool file Claude terus memberlakukannya:

Di bawah blokir, Claude Code membuka kembali file konfigurasi git global Anda untuk perintah sandboxed sehingga git tetap mempertahankan identitas dan pengaturan Anda:

  • ~/.gitconfig
  • File config, ignore, dan attributes di bawah $XDG_CONFIG_HOME/git, yang default ke ~/.config/git
  • File yang dinamai konfigurasi git global Anda melalui [include], [includeIf], core.excludesFile, atau core.attributesFile

Claude Code menilai setiap file secara terpisah. Ketika file terletak di tempat perintah sandboxed dapat menulis, secara langsung atau melalui symlink, Claude Code tidak membuka kembali file yang dinamainya.

Di Linux dan WSL2, file konfigurasi yang merupakan symlink dapat tetap tidak dapat dibaca di jalurnya sendiri, dan git kemudian berjalan tanpanya. ~/.git-credentials dan $XDG_CONFIG_HOME/git/credentials tetap diblokir.

Jika file yang dibuka kembali menyimpan rahasia, seperti token http.extraHeader, tambahkan jalurnya ke sandbox.filesystem.denyRead. Entri denyRead yang mencakup file selalu diutamakan daripada pembukaan kembali ini.

permissions.blockWritesOutsideWorkingDirectories

Buat tool Write, Edit, dan NotebookEdit menolak jalur di luar direktori kerja Anda dalam setiap mode izin, termasuk bypassPermissions, kecuali beberapa file milik Claude Code sendiri. Kunci ini tidak membatasi perintah shell, tool MCP, atau program yang dijalankan hook. Untuk membatasi tempat perintah shell menulis, aktifkan sandboxing. Memerlukan Claude Code v2.1.314 atau lebih baru.

Setelah kunci ini aktif, Claude Code juga menghapus tool EnterWorktree dan ExitWorktree atau menolak panggilan ke tool tersebut. Untuk tetap bekerja di worktree, ikuti Claude tidak memiliki tool EnterWorktree.

  • Scope: Any file. true di file apa pun yang dimuat sesi berlaku, jadi repositori dapat mengaktifkan blokir untuk dirinya sendiri tetapi tidak dapat mengangkat blokir Anda. Dalam sesi cloud, Claude Code mungkin tidak menerapkan kunci ini, karena tool file berjalan dalam kontainer yang merupakan batas itu sendiri.
  • Type: Boolean
    • true: mengaktifkan blokir
    • false: sama dengan tidak diatur; blokir masih berlaku jika file lain menetapkan true
  • Default: tidak diatur, jadi penulisan di luar direktori kerja mengikuti mode izin Anda. Blokir juga aktif selama Claude Code tidak dapat membaca objek permissions dalam pengaturan terkelola Anda.
{
  "permissions": {
    "blockWritesOutsideWorkingDirectories": true
  }
}

Untuk menguji blokir, minta Claude menggunakan tool Write untuk membuat file di luar direktori kerja Anda, seperti ~/block-test.txt jika direktori home Anda bukan salah satunya. Claude Code menolak panggilan tersebut, dan penolakannya menyatakan bahwa pengaturan memblokir penulisan di luar direktori kerja.

Untuk mengangkat blokir, hapus kunci dari setiap file pengaturan yang menetapkannya, kemudian mulai ulang Claude Code.

Apa yang ditolak blokir penulisan dan apa yang tetap dapat ditulis

Beberapa file milik Claude Code sendiri tetap dapat ditulis, seperti file rencana, scratchpad, direktori tmp milik sesi latar belakang, dan file .md dalam auto memory proyek ini.

Selain file Anda sendiri di luar direktori kerja, blokir menolak penulisan ke:

  • File pengaturan Claude Code: Claude Code menolak penulisan ini di dalam direktori kerja juga, karena file pengaturan dapat mengangkat blokir. Edit file pengaturan sendiri.
  • Direktori yang hanya ditambahkan oleh pengaturan repositori: direktori yang dicantumkan additionalDirectories hanya di .claude/settings.json, atau di .claude/settings.local.json kecuali git melaporkan file itu sebagai tidak dilacak
  • Worktree milik subagent: pengeditan file oleh subagent isolation: worktree ditolak ketika worktree-nya berada di luar direktori kerja
  • Auto memory di direktori yang dipilih repositori: direktori yang dinamai autoMemoryDirectory dalam pengaturan repositori

File pengaturan tetap ditolak apa pun yang Anda tambahkan. Untuk meloloskan penulisan dalam kasus-kasus lainnya, tambahkan direktori kerja. /add-dir memerlukan direktori yang sudah ada, jadi sebutkan direktori .claude/worktrees di root repositori untuk worktree subagent.

Loloskan satu direktori melalui blokir baca atau tulis

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

permissions.defaultMode

Atur mode izin default untuk sesi baru. Ketika Anda membiarkannya tidak diatur, default bawaan untuk surface Anda berlaku.

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

Aturan izin berlapis di atas setiap mode: aturan deny memblokir dalam setiap mode, termasuk bypassPermissions. Lihat Mode izin. Dalam sesi cloud, Claude Code hanya menghormati acceptEdits, plan, default, dan auto dari kunci ini. Untuk percakapan yang dimulai ekstensi VS Code, lihat pengaturan mana yang dibaca ekstensi untuk mode izin awal.

permissions.denyInsteadOfPrompting

Atur ini ke true agar sesi tetap berjalan ketika tidak ada orang yang dapat menjawab permintaan izin. Claude Code menolak panggilan tool yang sebaliknya akan menunggu permintaan izin, dan giliran berlanjut. Memerlukan Claude Code v2.1.319 atau lebih baru.

Panggilan tetap dijalankan jika aturan allow, mode izin Anda, atau pengklasifikasi auto mode menyetujuinya. Untuk mengizinkan sebagian besar panggilan yang sebaliknya akan meminta konfirmasi, jawab dari hook PermissionRequest.

  • Scope: User or managed, dan --settings. Repositori tidak dapat menetapkannya untuk Anda.
  • Type: Boolean
    • true: Claude Code menolak panggilan yang sebaliknya akan meminta konfirmasi
    • false: sama dengan tidak diatur; panggilan tetap ditolak jika sumber lain di antara sumber ini menetapkan true
  • Default: tidak diatur, jadi panggilan yang memerlukan persetujuan meminta konfirmasi Anda

Dalam ~/.claude/settings.json, contoh ini memulai sesi dalam auto mode dan menolak apa pun yang masih akan kembali ke permintaan izin:

{
  "permissions": {
    "defaultMode": "auto",
    "denyInsteadOfPrompting": true
  }
}

Kunci ini berlaku dalam eksekusi -p, sesi terminal interaktif, ekstensi VS Code, sesi lokal di aplikasi Desktop, subagent, dan tim agent. Untuk menolak apa yang akan meminta konfirmasi dalam satu eksekusi non-interaktif saja, berikan --permission-prompts none dengan -p.

Apa lagi yang dihentikan denyInsteadOfPrompting

Dengan pengaturan ini aktif, Claude Code juga menghentikan permintaan jawaban berikut:

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

Sesi masih dapat menunggu dialog kepercayaan workspace dan persetujuan server MCP proyek. Jawab keduanya sebelum Anda membiarkan sesi berjalan.

Pesan dari denyInsteadOfPrompting

Pesan-pesan ini melaporkan panggilan yang ditolak. Pesan tersebut bukan permintaan izin, jadi tidak ada yang menunggu jawaban Anda.

Penolakan yang dibaca Claude dapat diawali dengan teks ini:

Permission for this tool use was denied. It requires approval, and this session has no approval surface

Dalam output stream-json, eksekusi yang memancarkan pesan permission_denied melaporkan decision_reason ini:

no approval surface in this session; permission request denied automatically

Dalam auto mode dengan pengaturan ini aktif, giliran berakhir setelah 20 panggilan berturut-turut yang diblokir pengklasifikasi atau ditolak pemeriksaan keamanan, dan Anda melihat pesan ini:

20 actions were refused and no work went ahead in between, so Claude stopped.

Eksekusi -p melaporkan giliran tersebut sebagai error_during_execution.

permissions.disableBypassPermissionsMode

Cegah siapa pun memasuki mode bypassPermissions. Claude Code kemudian menolak flag --dangerously-skip-permissions, dan mengabaikan permissionMode: bypassPermissions dalam definisi agent, sehingga subagent berjalan dengan mode izin sesi induk.

  • Scope: Any file. Biasanya diatur dalam pengaturan terkelola untuk menegakkan kebijakan organisasi.
  • Type: string "disable"
  • Default: tidak diatur
  • Per-session overrides: kunci ini diutamakan daripada --dangerously-skip-permissions, yang ditolak Claude Code saat kunci diatur
{
  "permissions": {
    "disableBypassPermissionsMode": "disable"
  }
}

Sebelum v2.1.223, Claude Code menerapkan mode izin frontmatter bahkan dengan bypass dinonaktifkan.

skipAutoPermissionPrompt

Lewati pemberitahuan satu kali yang menjelaskan auto mode yang ditampilkan Claude Code ketika Anda pertama kali memasuki auto mode sendiri, misalnya melalui pengaturan Anda sendiri atau pemilih mode, bukan ketika default bawaan memulai sesi di dalamnya. Claude Code menampilkan pemberitahuan itu sekali dan kemudian mencatat bahwa pemberitahuan itu sudah ditampilkan, jadi kunci ini hanya penting di tempat pemberitahuan belum muncul.

  • Scope: User or managed. Repositori tidak dapat menetapkannya untuk Anda.
  • Type: Boolean
    • true: Claude Code melewati pemberitahuan
    • false: sama dengan tidak diatur; pemberitahuan muncul sekali kecuali file lain di antara file ini menetapkan true
  • Default: tidak diatur, jadi pemberitahuan muncul sekali
{
  "skipAutoPermissionPrompt": true
}

skipDangerousModePermissionPrompt

Lewati dialog konfirmasi yang ditampilkan Claude Code sebelum sesi memasuki mode bypassPermissions, baik dari --dangerously-skip-permissions atau dari defaultMode: "bypassPermissions". Claude Code menulis true di sini dalam pengaturan pengguna Anda ketika Anda menerima dialog itu sekali.

  • Scope: User, local, or managed, dan file yang diberikan dengan --settings. Sesi latar belakang hanya menghitung pengaturan pengguna dan terkelola. Repositori yang tidak dipercaya tidak dapat melewati dialog untuk Anda.
  • Type: Boolean
    • true: Claude Code melewati dialog konfirmasi sebelum sesi memasuki mode bypassPermissions
    • false: sama dengan tidak diatur; dialog muncul kecuali file lain di antara file ini menetapkan true
  • Default: tidak diatur, jadi dialog muncul
{
  "skipDangerousModePermissionPrompt": true
}

Pengaturan sandbox

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

sandbox

Isolasi perintah Bash yang dijalankan Claude dari sistem file dan jaringan Anda dengan sandboxing. Aktifkan sandbox dengan enabled, lalu persempit atau perluas apa yang dapat disentuh oleh perintah yang di-sandbox dengan sub-objek filesystem, network, dan credentials. Sandbox berjalan di macOS, Linux, dan WSL2.

  • Cakupan: Any file
  • Tipe: objek dengan enabled, failIfUnavailable, autoAllowBashIfSandboxed, excludedCommands, allowUnsandboxedCommands, enableWeakerNestedSandbox, enableWeakerNetworkIsolation, allowAppleEvents, allowNestedUserNamespaces, bwrapPath, socatPath, ignoreViolations, dan ripgrep, ditambah objek filesystem, network, dan credentials
  • Default: tidak diatur, sehingga Claude Code menjalankan perintah tanpa sandbox

Ini mengaktifkan sandbox, melewati permintaan izin untuk perintah yang di-sandbox, menjalankan docker di luar sandbox, membuka dua path tulis tambahan, menyembunyikan file kredensial AWS Anda, dan mengizinkan GitHub serta npm terlebih dahulu:

{
  "sandbox": {
    "enabled": true,
    "autoAllowBashIfSandboxed": true,
    "excludedCommands": ["docker *"],
    "filesystem": {
      "allowWrite": ["/tmp/build", "~/.kube"],
      "denyRead": ["~/.aws/credentials"]
    },
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org"]
    }
  }
}

Ketika pengaturan terkelola mengatur kunci Boolean seperti enabled atau failIfUnavailable, nilai tersebut menimpa apa pun yang diatur oleh developer. Claude Code menggabungkan kunci array di seluruh cakupan pengaturan yang dimuat sesi, sehingga developer dapat menambahkan entri; lihat Mencegah developer memperluas kebijakan untuk penguncian yang khusus berasal dari pengaturan terkelola. Untuk mewajibkan sandbox bagi organisasi, lihat Menegakkan sandboxing dengan pengaturan terkelola.

sandbox.enabled

Aktifkan sandboxing untuk perintah Bash. Saat Anda memilih mode di panel /sandbox, Claude Code menulis kunci ini ke .claude/settings.local.json untuk proyek saat ini; atur di ~/.claude/settings.json untuk men-sandbox setiap proyek.

{
  "sandbox": {
    "enabled": true
  }
}

Di Linux dan WSL2, sandbox memerlukan bubblewrap dan socat; lihat Menyiapkan Linux dan WSL2. Ketika sandbox tidak dapat dimulai, Claude Code menjalankan perintah tanpa sandbox, kecuali jika Anda juga mengatur failIfUnavailable.

sandbox.failIfUnavailable

Buat Claude Code keluar dengan error saat startup ketika sandbox.enabled bernilai true tetapi sandbox tidak dapat dimulai karena platform tidak mendukungnya atau pemeriksaan dependensi gagal. Tanpa kunci ini, Claude Code menjalankan perintah tanpa sandbox. Deployment terkelola yang mewajibkan sandboxing sebagai gerbang keamanan dapat menggunakan pengaturan ini.

Di platform yang tidak didukung sandbox, Claude Code tidak dapat dimulai saat kunci ini aktif. Lihat Menegakkan sandboxing dengan pengaturan terkelola.

  • Cakupan: Any file, dengan batasan pada pengaturan proyek dan lokal
  • Tipe: Boolean
    • true: Claude Code keluar dengan error saat startup ketika sandbox.enabled bernilai true tetapi sandbox tidak dapat dimulai. Jika sandbox lolos pemeriksaan tersebut lalu gagal diinisialisasi, sesi tetap berjalan dan Claude Code menolak setiap perintah yang di-sandbox
    • false: Claude Code menjalankan perintah tanpa sandbox ketika sandbox tidak dapat dimulai
  • Default: false

Ini mengaktifkan sandbox untuk mesin terkelola dan mengatur failIfUnavailable ke true:

{
  "sandbox": {
    "enabled": true,
    "failIfUnavailable": true
  }
}

Lihat Menegakkan sandboxing dengan pengaturan terkelola.

sandbox.autoAllowBashIfSandboxed

Izinkan Claude Code menjalankan perintah Bash yang di-sandbox tanpa permintaan izin. Perintah yang tidak dapat berjalan di sandbox tetap melalui alur izin biasa, dan aturan deny serta aturan ask yang dibatasi pada konten seperti Bash(git push *) tetap berlaku; aturan ask Bash polos dilewati untuk perintah yang di-sandbox. Atur ke false untuk juga mengirim perintah yang di-sandbox melalui alur izin biasa, yang oleh tab Mode di /sandbox disebut mode izin reguler.

  • Cakupan: Any file
  • Tipe: Boolean
    • true: Claude Code menjalankan perintah Bash yang di-sandbox tanpa permintaan izin, kecuali dalam kasus yang dijelaskan di Mode auto-allow; CLAUDE_CODE_SUBPROCESS_ENV_SCRUB mematikan auto-allow
    • false: perintah yang di-sandbox melalui alur izin biasa, sehingga aturan allow dan mode izin Anda yang menentukan. Tab Mode di /sandbox menyebut ini mode izin reguler
  • Default: true

Ini mempertahankan sandbox tetap aktif dan mengirim perintah yang di-sandbox melalui alur izin biasa:

{
  "sandbox": {
    "enabled": true,
    "autoAllowBashIfSandboxed": false
  }
}

Lihat Mode auto-allow untuk hal-hal yang masih memicu permintaan izin dalam mode auto-allow dan bagaimana perilakunya dalam plan mode.

sandbox.excludedCommands

Sebutkan perintah yang dijalankan Claude Code di luar sandbox, seperti alat yang tidak berfungsi di dalamnya. Setiap entri menggunakan sintaks yang sama dengan isi aturan izin Bash(...): perintah persis, prefiks seperti docker *, atau pola wildcard. Pola tanpa wildcard adalah pencocokan persis, sehingga docker hanya cocok dengan docker tanpa argumen.

Entri Anda mengeluarkan panggilan Bash dari sandbox hanya ketika entri tersebut mencakup setiap perintah di dalamnya, dan beberapa bentuk panggilan tetap di-sandbox bahkan dalam kondisi itu. Entri docker * saja tidak mengeluarkan npm ci && docker build . dari sandbox.

{
  "sandbox": {
    "excludedCommands": ["docker *"]
  }
}

Claude Code mempertahankan panggilan Bash tetap di-sandbox ketika panggilan tersebut memiliki salah satu bentuk berikut, di antara bentuk lainnya:

  • Perintah yang diawali dengan sudo, eval, atau xargs
  • cd, pushd, atau popd, di mana pun letaknya dalam panggilan
  • Substitusi perintah, subshell, atau blok alur kontrol seperti if atau for
  • Pengalihan (redirection), seperti docker build . > build.log atau heredoc <<EOF, selain yang hanya menduplikasi file descriptor, seperti yang dilakukan 2>&1
  • Nama perintah yang berasal dari variabel
  • git clone, git init, git worktree add, git worktree move, atau git bundle create dengan argumen path yang absolut, diawali dengan ~, atau berisi segmen ..

Sebagai contoh, cd build && docker compose up tetap di-sandbox di bawah entri docker *, dan menambahkan entri cd tidak mengubahnya. Di bawah entri git *, git clone <url> vendor/lib berjalan di luar sandbox, tetapi git clone <url> ~/tools tetap di-sandbox. Clone menulis seluruh pohon file, mungkin termasuk file yang dapat dieksekusi, ke mana pun path tujuannya mengarah.

Perintah yang dikecualikan tetap melalui alur izin biasa. Pengecualian adalah kemudahan, bukan batas keamanan: ketika sebuah alat hanya perlu menulis ke lokasi tertentu, filesystem.allowWrite mempertahankannya tetap di-sandbox.

Entri dari cakupan pengaturan yang dimuat sesi digabungkan menjadi satu daftar, kecuali jika sandbox diwajibkan admin. Selama sandbox diwajibkan admin, Claude Code mengabaikan entri di .claude/settings.json dan .claude/settings.local.json, sehingga repositori yang di-clone tidak dapat mengeluarkan perintah dari sandbox. Entri di pengaturan terkelola, --settings, dan ~/.claude/settings.json Anda tetap berlaku, dan tidak ada penguncian khusus pengaturan terkelola yang mencakup daftar ini.

sandbox.allowUnsandboxedCommands

Izinkan Claude mencoba ulang perintah di luar sandbox dengan parameter dangerouslyDisableSandbox setelah sandbox memblokirnya. Ketika bernilai false, Claude Code mengabaikan parameter tersebut. Selama sandbox berjalan, perintah yang dijalankan Claude kemudian di-sandbox kecuali jika cocok dengan entri excludedCommands. Tab Overrides di /sandbox menampilkan status tersebut sebagai Strict sandbox mode. Nilai false di pengaturan terkelola mengaktifkan strict sandbox mode untuk developer yang dicakupnya.

  • Cakupan: Any file, dengan sebuah batasan pada pengaturan proyek dan lokal
  • Tipe: Boolean
    • true: Claude dapat mencoba ulang perintah di luar sandbox dengan parameter dangerouslyDisableSandbox setelah sandbox memblokirnya
    • false: Claude Code mengabaikan parameter tersebut, sehingga selama sandbox berjalan, perintah yang dijalankan Claude di-sandbox kecuali jika cocok dengan entri excludedCommands
  • Default: true

Ini menegakkan strict sandbox mode untuk semua orang yang dicakup oleh pengaturan terkelola:

{
  "sandbox": {
    "enabled": true,
    "allowUnsandboxedCommands": false
  }
}

Nilai false dari pengaturan terkelola atau --settings juga membuat sandbox diwajibkan admin. Nilai false di pengaturan pengguna Anda tetap bertahan terhadap nilai true dari proyek, tetapi tidak membuat sandbox diwajibkan admin. Bertahan terhadap nilai proyek memerlukan Claude Code v2.1.285 atau lebih baru.

Siapa yang menyetujui retry tanpa sandbox bergantung pada mode izin dan aturan allow Anda. Lihat Jalan keluar retry tanpa sandbox.

Untuk melihat kapan perintah yang Anda ketik sendiri di prompt shell mode ! berjalan di-sandbox, lihat strict sandbox mode.

sandbox.filesystem

Kontrol path mana yang dapat dibaca dan ditulis oleh perintah yang di-sandbox. Secara default, perintah tersebut dapat menulis ke direktori kerja, direktori temp per pengguna, dan direktori yang Anda tambahkan dengan --add-dir, /add-dir, atau permissions.additionalDirectories, serta dapat membaca bagian sistem file lainnya, termasuk file kredensial. Perluas atau persempit hal itu dengan empat daftar path, atau matikan lapisan sistem file dengan disabled. Lihat Isolasi sistem file untuk batas default.

  • Cakupan: Any file
  • Tipe: objek dengan array allowWrite, denyWrite, denyRead, dan allowRead, ditambah Boolean allowManagedReadPathsOnly dan disabled
  • Default: tidak diatur, sehingga batas baca dan tulis default berlaku

Ini memungkinkan perintah yang di-sandbox menulis ke direktori build dan kubeconfig Anda, serta menyembunyikan file kredensial AWS Anda:

{
  "sandbox": {
    "filesystem": {
      "allowWrite": ["/tmp/build", "~/.kube"],
      "denyRead": ["~/.aws/credentials"]
    }
  }
}

Claude Code menegakkan daftar-daftar ini pada batas sandbox OS, sehingga daftar tersebut berlaku untuk setiap subproses yang dimulai oleh perintah yang di-sandbox, seperti kubectl, terraform, atau npm. Claude Code menambahkan aturan izin Anda ke daftar yang sama: aturan allow dan deny Edit ke allowWrite dan denyWrite, aturan deny Read ke denyRead, dan aturan allow dan deny WebFetch(domain:...) ke daftar domain network.

Kecuali jika suatu penguncian berlaku, Claude Code menggabungkan daftar-daftar ini di seluruh file pengaturan yang dimuat sesi. allowManagedReadPathsOnly membatasi allowRead hanya pada entri dari pengaturan terkelola, dan allowManagedDomainsOnly melakukan hal yang sama untuk domain yang diizinkan. Penguncian repositori mengecualikan entri dari file pengaturan repositori.

Mengonfigurasi sandboxing membahas sumber yang Anda kecualikan dengan --setting-sources. Saat Anda mengedit daftar selama sesi, Claude Code menerapkan perubahan tersebut pada sesi yang sedang berjalan.

Prefiks path sandbox

Path di allowWrite, denyWrite, denyRead, allowRead, dan credentials.files di-resolve berdasarkan prefiksnya:

Prefiks Arti Contoh
/ Path absolut dari root sistem file /tmp/build tetap /tmp/build
~/ Relatif terhadap direktori home ~/.kube menjadi $HOME/.kube
./ atau tanpa prefiks Relatif terhadap root proyek untuk pengaturan proyek, atau terhadap ~/.claude untuk pengaturan pengguna ./output di .claude/settings.json di-resolve ke <project-root>/output

Prefiks //path untuk path absolut juga berfungsi. Jika Anda menggunakan /path dengan satu garis miring dengan harapan resolusi relatif terhadap proyek, ganti ke ./path. Sintaks ini berbeda dari aturan izin Read dan Edit, yang menggunakan //path untuk path absolut dan /path untuk path relatif terhadap proyek: path sistem file sandbox menggunakan konvensi standar, sehingga /tmp/build adalah path absolut.

Claude Code menghapus garis miring di akhir path direktori, sehingga ~/.aws dan ~/.aws/ cocok dengan direktori yang sama. Sebelum v2.1.224, Claude Code meneruskan garis miring di akhir tersebut ke sandbox, dan Claude masih dapat membaca atau menulis path di bawah entri denyRead atau denyWrite yang ditulis dengan garis miring di akhir.

Tempat wildcard berfungsi di path sandbox

Wildcard *, ?, dan ** berfungsi di keempat daftar path sandbox.filesystem di macOS, dan di lebih sedikit tempat di Linux dan WSL2:

Daftar sandbox.filesystem Yang berfungsi di Linux dan WSL2 Contoh yang tidak berfungsi di Linux dan WSL2 Yang sebaiknya ditulis
denyRead, allowRead /** di akhir berfungsi, sehingga ~/build/** mencakup direktori yang sama dengan ~/build. Wildcard lainnya hanya berfungsi setelah nama direktori pertama dari path lengkap entri. /**/*.pem di denyRead tidak mencakup apa pun, sehingga tidak memblokir pembacaan apa pun /srv/**/*.pem, dengan satu entri untuk setiap direktori tingkat atas
allowWrite, denyWrite Hanya /** di akhir yang berfungsi, sehingga ~/build/** mencakup direktori yang sama dengan ~/build ./src/* hanya mencakup file atau direktori di src yang namanya sendiri adalah *, dan tidak mencakup apa pun jika tidak ada ./src, yang mencakup semua yang ada di bawah src, atau satu entri untuk setiap path

Di ~/keys/*.pem, wildcard muncul setelah nama direktori pertama, yaitu home untuk direktori home /home/alice:

~/keys/*.pem              the entry
/home/alice/keys/*.pem    its full path
 ^^^^                     the first directory name, home

Di Linux dan WSL2, tab Config dari /sandbox dalam sesi memperingatkan tentang aturan izin Edit yang berisi wildcard selain /** di akhir. Wildcard tersebut tidak berfungsi untuk perintah yang di-sandbox. Tambahkan setiap path yang seharusnya dicakup aturan tersebut, atau direktori yang menampungnya, ke allowWrite untuk aturan allow atau ke denyWrite untuk aturan deny.

Nama direktori dengan kurung siku, kurung kurawal, atau kurung biasa

Untuk mengizinkan atau memblokir direktori yang namanya berisi kurung siku, tulis nama tersebut apa adanya, seperti ./app/[slug]. Dalam entri tersebut, [slug] adalah nama asli direktori, termasuk kurung sikunya:

app/
└── [slug]/
    └── page.tsx

Entri tersebut mencakup semua yang ada di bawah direktori, jadi jangan tambahkan /** di akhir. Di macOS serta di Linux dan WSL2, direktori app/[slug] harus sudah ada saat perintah yang di-sandbox dimulai.

  • Kurung siku seperti [slug]: di setiap daftar di macOS, serta di denyRead dan allowRead di Linux dan WSL2, kurung siku di ./app/[slug] juga merupakan pola. Entri tersebut kemudian juga cocok dengan path apa pun di bawah app yang namanya berupa satu karakter dari slug, seperti app/s atau app/g. Dengan entri tersebut di allowRead, atau di allowWrite di macOS, perintah yang di-sandbox juga dapat menjangkau path tersebut. Ganti nama path mana pun yang tidak seharusnya dijangkau.
  • Kurung siku seperti [user-id] atau [post-id], di mana karakter di kiri tanda hubung diurutkan setelah karakter di kanannya: ./app/[user-id] hanya mencakup direktori dengan nama persis tersebut, di setiap daftar di setiap platform. Sebelum v2.1.304, perintah yang di-sandbox di Linux dan WSL2 gagal dimulai selama denyRead atau allowRead berisi entri seperti itu.
  • Kurung kurawal dan kurung biasa: ini adalah karakter biasa, sehingga ~/data/{keys,tokens} mencakup satu direktori bernama {keys,tokens}, bukan dua alternatif. Untuk mencakup ~/data/keys dan ~/data/tokens, tambahkan masing-masing sebagai entri tersendiri.

sandbox.filesystem.allowWrite

Tambahkan path tempat perintah yang di-sandbox dapat menulis, di luar direktori kerja, direktori temp per pengguna, dan direktori yang telah Anda tambahkan dengan --add-dir, /add-dir, atau permissions.additionalDirectories. Gunakan ini ketika subproses seperti kubectl atau alat build perlu menulis di luar proyek.

Ini memungkinkan build menulis di bawah /tmp/build dan memungkinkan kubectl memperbarui kubeconfig Anda:

{
  "sandbox": {
    "filesystem": {
      "allowWrite": ["/tmp/build", "~/.kube"]
    }
  }
}

Claude Code menggabungkan entri allowWrite dan path dari aturan allow Edit(...) Anda di seluruh cakupan pengaturan yang dimuat sesi, dengan mengecualikan yang berasal dari pengaturan repositori selama permissions.blockReadsOutsideWorkingDirectories aktif. Penguncian repositori juga dapat mengecualikan entri repositori. Entri allowWrite tidak dapat mencabut path yang dilindungi.

sandbox.filesystem.denyWrite

Blokir perintah yang di-sandbox agar tidak menulis ke path tertentu, termasuk path di dalam direktori yang sebenarnya dapat ditulis.

Ini mencegah perintah yang di-sandbox mengubah konfigurasi sistem atau menginstal binary:

{
  "sandbox": {
    "filesystem": {
      "denyWrite": ["/etc", "/usr/local/bin"]
    }
  }
}

Claude Code menggabungkan entri di setiap cakupan pengaturan yang dimuat sesi, dan menambahkan path dari aturan deny Edit(...) Anda.

sandbox.filesystem.denyRead

Blokir perintah yang di-sandbox agar tidak membaca path tertentu, seperti file kredensial yang jika tidak diblokir akan terekspos oleh kebijakan baca default. Untuk melindungi file kredensial dan menjaganya tetap dapat digunakan melalui proxy sandbox, lihat sandbox.credentials sebagai gantinya.

{
  "sandbox": {
    "filesystem": {
      "denyRead": ["~/.aws/credentials"]
    }
  }
}

Claude Code menggabungkan entri di setiap cakupan pengaturan yang dimuat sesi, dan menambahkan path dari aturan deny Read(...) Anda. Ketika filesystem.disabled bernilai true, Claude Code tidak menegakkan entri ini.

sandbox.filesystem.allowRead

Buka kembali akses baca untuk path tertentu di dalam wilayah yang diblokir oleh denyRead, untuk membangun akses baca yang hanya mencakup workspace. Entri denyRead persis atau wildcard tetap diblokir di dalam allowRead yang lebih luas, seperti yang ditunjukkan oleh tabel tumpang tindih. Ketika entri denyRead wildcard seperti ~/**/.env cocok dengan sebuah direktori, Claude Code juga memblokir pembacaan isinya. Sebelum v2.1.236 di macOS, Claude Code membuka kembali path yang cocok dengan entri denyRead wildcard di mana pun entri allowRead yang lebih luas mencakupnya, dan membiarkan isi direktori yang cocok tetap dapat dibaca.

Ini memblokir pembacaan direktori home Anda kecuali proyek itu sendiri:

{
  "sandbox": {
    "filesystem": {
      "denyRead": ["~/"],
      "allowRead": ["."]
    }
  }
}

Claude Code me-resolve entri . ke root proyek di pengaturan proyek dan ke ~/.claude di pengaturan pengguna. Claude Code menggabungkan entri di seluruh file pengaturan yang dimuat sesi, kecuali jika allowManagedReadPathsOnly diatur, dan mengecualikan entri dari pengaturan repositori selama permissions.blockReadsOutsideWorkingDirectories aktif. Penguncian repositori juga dapat mengecualikan entri repositori.

sandbox.filesystem.allowManagedReadPathsOnly

Hanya patuhi entri allowRead yang berasal dari pengaturan terkelola, sehingga developer tidak dapat membuka kembali akses baca ke path yang diblokir oleh organisasi Anda. Claude Code tetap menggabungkan entri denyRead dari setiap cakupan pengaturan yang dimuat sesi.

  • Cakupan: Managed
  • Tipe: Boolean
    • true: Claude Code hanya mematuhi entri allowRead dari pengaturan terkelola
    • false: entri allowRead dari file pengaturan lain dapat ikut digabungkan
  • Default: false

Ini memblokir pembacaan direktori home, membuka kembali ~/work, dan mencegah developer membuka kembali hal lainnya:

{
  "sandbox": {
    "filesystem": {
      "denyRead": ["~/"],
      "allowRead": ["~/work"],
      "allowManagedReadPathsOnly": true
    }
  }
}

Lihat Mencegah developer memperluas kebijakan.

sandbox.filesystem.disabled

Lewati isolasi sistem file sambil tetap mempertahankan isolasi jaringan. Perintah yang di-sandbox mendapatkan akses baca dan tulis tanpa batas ke sistem file host, dan egress jaringannya tetap dibatasi pada network.allowedDomains. Gunakan ini ketika Anda men-sandbox untuk mengontrol ke mana perintah terhubung, bukan apa yang ditulisnya.

  • Cakupan: User or managed. Ketika pengaturan terkelola mengonfigurasi sandbox.filesystem dalam bentuk apa pun, atau mencantumkan entri sandbox.credentials.files dengan "mode": "deny", hanya pengaturan terkelola yang dapat mengaturnya.
  • Tipe: Boolean
    • true: Claude Code melewati isolasi sistem file dan mempertahankan isolasi jaringan
    • false: isolasi sistem file tetap aktif
  • Default: false, sehingga isolasi sistem file tetap aktif

Ini membiarkan sistem file terbuka dan membatasi egress jaringan ke GitHub dan npm:

{
  "sandbox": {
    "enabled": true,
    "filesystem": {
      "disabled": true
    },
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org"]
    }
  }
}

Dengan lapisan ini dimatikan, Claude Code tidak menegakkan entri denyRead maupun entri deny di credentials.files, sementara entri credentials.envVars dan entri mask yang diterapkan tetap berfungsi. autoAllowBashIfSandboxed tetap bernilai default true, jadi atur ke false agar permintaan izin tetap muncul. Lihat Menonaktifkan isolasi sistem file untuk daftar lengkap sumber yang dapat mengaturnya dan apa yang berubah ketika isolasi dimatikan.

sandbox.ignoreViolations

Bungkam laporan pelanggaran sandbox untuk path yang Anda perkirakan akan diperiksa oleh sebuah perintah lalu ditolak, seperti alat yang memeriksa /etc/hosts saat startup, sehingga penolakan tersebut tidak muncul sebagai pelanggaran atau dalam apa yang dilihat Claude. Sandbox tetap memblokir akses tersebut; hanya laporannya yang disembunyikan. Kunci adalah substring untuk dicocokkan dengan perintah, dengan * mencocokkan setiap perintah, dan nilai adalah substring pelanggaran yang diabaikan untuk perintah tersebut, seperti path sistem file.

{
  "sandbox": {
    "ignoreViolations": {
      "*": ["/etc/hosts"]
    }
  }
}

sandbox.enableWeakerNestedSandbox

Jalankan sandbox Linux di dalam container Docker tanpa hak istimewa, tempat bubblewrap tidak dapat me-mount /proc baru. Sebagai gantinya, sandbox bagian dalam melakukan bind-mount /proc yang sudah ada di container, yang mengekspos informasi proses yang akan disembunyikan oleh mount baru. Ini mengurangi keamanan; gunakan hanya ketika container luar sudah menyediakan isolasi yang Anda butuhkan.

  • Cakupan: Any file, dengan batasan pada pengaturan proyek dan lokal
  • Tipe: Boolean
    • true: sandbox bagian dalam melakukan bind-mount /proc yang sudah ada di container alih-alih me-mount yang baru
    • false: sandbox me-mount /proc baru, yang tidak berfungsi di container Docker tanpa hak istimewa
  • Default: false
{
  "sandbox": {
    "enabled": true,
    "enableWeakerNestedSandbox": true
  }
}

Hanya Linux dan WSL2. Lihat Bubblewrap gagal dimulai di dalam container.

sandbox.enableWeakerNetworkIsolation

Izinkan perintah yang di-sandbox di macOS menjangkau layanan kepercayaan TLS sistem, com.apple.trustd.agent. Alat berbasis Go seperti gh, gcloud, dan terraform membutuhkannya untuk memverifikasi sertifikat TLS ketika Anda menggunakan network.httpProxyPort dengan proxy MITM dan CA kustom. Ini mengurangi keamanan dengan membuka potensi jalur eksfiltrasi data melalui layanan kepercayaan tersebut.

  • Cakupan: Any file, dengan batasan pada pengaturan proyek dan lokal
  • Tipe: Boolean
    • true: perintah yang di-sandbox di macOS dapat menjangkau com.apple.trustd.agent
    • false: perintah yang di-sandbox di macOS tidak dapat menjangkau layanan kepercayaan TLS sistem
  • Default: false
{
  "sandbox": {
    "enabled": true,
    "enableWeakerNetworkIsolation": true
  }
}

Jika Anda tidak menggunakan proxy MITM, cantumkan alat yang gagal di excludedCommands sebagai gantinya; lihat CLI berbasis Go gagal dalam verifikasi TLS di macOS.

sandbox.allowAppleEvents

Izinkan perintah yang di-sandbox di macOS mengirim Apple Events, yang dibutuhkan oleh open, osascript, dan alat yang membuka URL di browser; tanpanya, perintah tersebut gagal dengan error -600. Ini menghapus isolasi eksekusi kode: perintah yang di-sandbox dapat meluncurkan aplikasi lain tanpa sandbox tanpa meminta pengguna, dan dapat mengirim perintah AppleScript ke aplikasi yang sedang berjalan seperti Terminal, dengan tunduk pada prompt persetujuan otomatisasi macOS per aplikasi (TCC).

  • Cakupan: User or managed
  • Tipe: Boolean
    • true: perintah yang di-sandbox di macOS dapat mengirim Apple Events
    • false: perintah yang di-sandbox di macOS tidak dapat mengirim Apple Events, sehingga open dan osascript gagal dengan error -600
  • Default: false
{
  "sandbox": {
    "enabled": true,
    "allowAppleEvents": true
  }
}

Untuk mempertahankan isolasi dan tetap menjalankan salah satu alat tersebut, tambahkan alat itu ke excludedCommands sebagai gantinya. Lihat Apple Events di macOS.

sandbox.allowNestedUserNamespaces

Izinkan perintah yang di-sandbox di Linux dan WSL2 membuat user namespace, yang dibutuhkan oleh sandbox milik Chromium dan Electron sendiri, bubblewrap bersarang, dan unshare. Jika Anda mengatur kunci ini ke true, Anda mematikan sebuah batas keamanan: kode dari perintah yang di-sandbox dapat berakhir berjalan di luar sandbox. Untuk Podman atau Buildah rootless, gunakan excludedCommands sebagai gantinya, karena sandbox juga menghentikannya dengan cara lain. Memerlukan Claude Code v2.1.305 atau lebih baru.

  • Cakupan: User or managed. Nilai true berlaku jika berasal dari ~/.claude/settings.json, JSON yang diteruskan dengan --settings, atau pengaturan terkelola. Claude Code mengabaikan true di .claude/settings.json atau .claude/settings.local.json milik proyek. Dalam sesi dengan CLAUDE_CODE_SUBPROCESS_ENV_SCRUB diatur ke 1, Claude Code mengabaikan true dari setiap sumber. Nilai false berlaku dari file mana pun, sesuai prioritas pengaturan.
  • Tipe: Boolean
    • true: perintah yang di-sandbox dapat membuat user namespace
    • false: kunci ini tidak mengizinkan hal tambahan apa pun, dan default sandbox berlaku
  • Default: false
{
  "sandbox": {
    "enabled": true,
    "allowNestedUserNamespaces": true
  }
}

Dengan kunci ini aktif, jangan mengandalkan pembatasan sandbox apa pun, termasuk path yang dilindungi dan entri credentials.files, untuk menghentikan perintah berbahaya. Dalam mode auto-allow, perintah tersebut dapat berjalan tanpa permintaan izin. Jika organisasi Anda memiliki tim keamanan, konsultasikan dengan mereka sebelum Anda mengaktifkan kunci ini.

Untuk menemukan perbaikan bagi alat Anda, lihat Chromium atau Podman rootless gagal di dalam sandbox di Linux.

sandbox.ripgrep

Arahkan sandbox ke binary ripgrep milik Anda sendiri alih-alih yang digunakan Claude Code, misalnya ketika platform Anda memerlukan rg yang di-build secara berbeda.

  • Cakupan: User or managed
  • Tipe: objek dengan command, yaitu path ke binary ripgrep, dan args opsional, yaitu array argumen yang ditambahkan di depan
  • Default: tidak diatur, sehingga sandbox menggunakan binary ripgrep yang sama dengan Claude Code. Itu adalah binary bawaan kecuali jika Anda mengatur USE_BUILTIN_RIPGREP ke 0
{
  "sandbox": {
    "ripgrep": {
      "command": "/usr/local/bin/rg"
    }
  }
}

sandbox.bwrapPath

Arahkan sandbox ke binary bubblewrap yang diinstal di luar PATH, seperti salinan vendored di host air-gapped. Claude Code menggunakan path tersebut baik untuk pemeriksaan dependensi saat startup maupun saat membungkus setiap perintah yang di-sandbox.

  • Cakupan: Managed. Claude Code hanya membacanya dari pengaturan terkelola agar file pengguna, proyek, atau lokal tidak dapat mengarahkan sandbox ke binary lain.
  • Tipe: string, path absolut; Claude Code membuang path relatif dan kembali ke pencarian PATH
  • Default: tidak diatur, sehingga Claude Code mencari bwrap di PATH
{
  "sandbox": {
    "enabled": true,
    "bwrapPath": "/opt/admin/bwrap"
  }
}

Hanya Linux dan WSL2.

sandbox.socatPath

Arahkan proxy jaringan sandbox ke binary socat yang diinstal di luar PATH.

  • Cakupan: Managed
  • Tipe: string, path absolut; Claude Code membuang path relatif dan kembali ke pencarian PATH
  • Default: tidak diatur, sehingga Claude Code mencari socat di PATH
{
  "sandbox": {
    "enabled": true,
    "socatPath": "/opt/admin/socat"
  }
}

Hanya Linux dan WSL2.

sandbox.credentials

Deklarasikan file kredensial dan environment variable yang akan dilindungi dari perintah yang di-sandbox. Setiap entri menyebutkan path file atau name variabel dan sebuah mode: deny menyembunyikan kredensial di dalam sandbox, dan mask menampilkan placeholder kepada perintah yang di-sandbox sementara proxy sandbox menyisipkan nilai asli pada permintaan keluar. Claude Code hanya melindungi entri yang Anda cantumkan; tidak ada daftar deny kredensial bawaan.

  • Cakupan: Any file. Claude Code hanya mematuhi entri mask, allowPlaintextInject, awsPairs, dan sigv4 dari pengaturan pengguna, pengaturan terkelola, dan flag --settings.
  • Tipe: objek dengan files, envVars, allowPlaintextInject, awsPairs, dan sigv4
  • Default: tidak diatur, sehingga tidak ada kredensial yang dilindungi

Ini menyembunyikan file kredensial AWS Anda dan menghapus GITHUB_TOKEN dari perintah yang di-sandbox:

{
  "sandbox": {
    "credentials": {
      "files": [{ "path": "~/.aws/credentials", "mode": "deny" }],
      "envVars": [{ "name": "GITHUB_TOKEN", "mode": "deny" }]
    }
  }
}

Perlindungan file deny adalah bagian dari lapisan sistem file, sehingga tidak berlaku ketika Anda menonaktifkan isolasi sistem file; perlindungan environment variable tetap berlaku.

Entri kredensial yang tidak valid di pengaturan terkelola

Ketika entri sandbox.credentials terkelola gagal validasi, Claude Code tetap melindungi kredensial sebisa mungkin:

  • Entri di files atau envVars yang masih memiliki path atau name yang valid dan mode berupa mask atau deny, seperti entri yang pola extract-nya tidak memiliki capturing group, diturunkan menjadi mode: "deny" dengan peringatan, sehingga kredensial tetap diblokir, bukan di-mask, sampai Anda memperbaiki entri tersebut. Entri files yang diturunkan mengunci filesystem.disabled seperti entri deny eksplisit, dan peringatannya mencatat bahwa blokir bacanya tidak ditegakkan jika pengaturan terkelola mematikan isolasi sistem file.
  • Entri dengan mode yang tidak dikenal atau path atau name yang tidak valid dihapus.
  • Setiap kasus memunculkan peringatan; baik entri diturunkan maupun dihapus, entri valid lainnya tetap ditegakkan.

Berlaku di v2.1.191 dan yang lebih baru; sebelum v2.1.221, setiap entri yang tidak valid dihapus. Untuk kunci terkelola lain dengan penanganan per bidang, lihat Entri tidak valid di pengaturan terkelola.

sandbox.credentials.files

Lindungi file atau direktori kredensial dari perintah yang di-sandbox. Dengan "mode": "deny", Claude Code memblokir pembacaan path di dalam sandbox, blokir baca yang sama seperti sandbox.filesystem.denyRead. Dengan "mode": "mask", perintah yang di-sandbox di Linux dan WSL2 membaca salinan sentinel dari file tersebut, dan proxy sandbox menyisipkan nilai asli pada permintaan keluar ke injectHosts milik entri tersebut; di macOS, file tersebut justru tidak dapat dibaca di dalam sandbox. "mode": "mask" memerlukan Claude Code v2.1.221 atau lebih baru.

  • Cakupan: Any file. Claude Code membuang entri mask dari .claude/settings.json proyek dan .claude/settings.local.json lokal.
  • Tipe: array objek, masing-masing dengan path dan mode berupa "deny" atau "mask", ditambah bidang mask untuk file yang opsional
  • Default: tidak diatur, sehingga tidak ada file kredensial yang dilindungi

Ini menyembunyikan file kredensial AWS Anda dan me-mask file hosts gh, dengan menyisipkan nilai asli hanya pada permintaan ke api.github.com:

{
  "sandbox": {
    "credentials": {
      "files": [
        { "path": "~/.aws/credentials", "mode": "deny" },
        { "path": "~/.config/gh/hosts.yml", "mode": "mask", "injectHosts": ["api.github.com"] }
      ]
    }
  }
}

Path menggunakan prefiks yang sama dengan pengaturan sandbox.filesystem.*, dan Claude Code menggabungkan array dari setiap cakupan pengaturan yang dimuat sesi. Melindungi kredensial membahas apa yang tetap berlaku dari sumber yang Anda kecualikan dengan --setting-sources. Entri mask memerlukan Claude Code v2.1.221 atau lebih baru.

Substitusi mask hanya berjalan melalui proxy sandbox, jadi atur sandbox.network.tlsTerminate, atau allowPlaintextInject untuk jaringan pengujian HTTP biasa. mask berlaku untuk satu file, jadi cantumkan setiap file kredensial secara terpisah. Claude Code menerima tetapi mengabaikan bidang mask pada entri deny. Me-mask kredensial membahas sumber pengaturan mana yang dipatuhi, dan Me-mask file kredensial membahas kapan sebuah entri kembali menjadi deny.

Bidang mask untuk file

Entri mask menerima bidang opsional berikut. Tanpa extract atau decode, Claude Code mengganti seluruh isi file dengan satu sentinel. Di macOS dengan isolasi sistem file aktif, Claude Code menerapkan entri mask sebagai deny sebelum extract atau decode dijalankan; lihat Me-mask file kredensial.

Bidang Tipe Fungsinya
extract string, ekspresi reguler dengan setidaknya satu capturing group Hanya me-mask teks yang ditangkap oleh grup 1 dari setiap kecocokan, sehingga bagian lain file tetap dapat di-parse. Jika decode juga diatur, Claude Code memeriksa setiap tangkapan sebagai kemungkinan JWT alih-alih langsung menggantinya. Memerlukan v2.1.221 atau lebih baru
onExtractNoMatch "warn", "deny", atau "error"; default "warn" Apa yang terjadi ketika extract atau decode tidak menemukan apa pun untuk di-mask. warn membiarkan file dapat dibaca apa adanya di dalam sandbox, deny membuatnya tidak dapat dibaca, dan error menghentikan penyiapan sandbox sampai Anda memperbaiki konfigurasi. Claude Code memperlakukan deny sebagai error ketika blokir baca tidak akan ditegakkan, karena Anda menonaktifkan isolasi sistem file atau entri sandbox.filesystem.allowRead membuka kembali path tersebut. Memerlukan v2.1.221 atau lebih baru; kasus decode memerlukan v2.1.224 atau lebih baru
decode string "jwt" Temukan JSON Web Token (JWT) di file, dengan pola bawaan atau dengan extract jika diatur, verifikasi setiap kandidat, dan ganti dengan token palsu yang valid secara struktur, sehingga kode di dalam sandbox yang mendekode token tetap berfungsi. Ketika tidak ada kandidat yang terverifikasi, onExtractNoMatch menentukan hasilnya. Memerlukan v2.1.224 atau lebih baru
maskClaims array string, setidaknya satu nama claim; memerlukan decode Hanya me-mask claim payload tingkat atas yang disebutkan di dalam setiap JWT yang terverifikasi dan membangun ulang token di sekitar payload yang dimodifikasi, sehingga claim lain tetap dapat dibaca. Ketika tidak ada claim yang disebutkan yang cocok, onExtractNoMatch menentukan hasilnya. Memerlukan v2.1.224 atau lebih baru
maskDuplicates Boolean, default false Juga ganti salinan verbatim dari setiap nilai yang di-mask di bagian lain file, seperti secret yang ditempel di komentar. Claude Code mencocokkan substring mentah, jadi gunakan hanya untuk secret yang panjang dengan entropi tinggi. Hanya dipertimbangkan ketika extract atau decode diatur. Memerlukan v2.1.221 atau lebih baru
injectHosts array string, masing-masing host yang juga diterima oleh sandbox.network.allowedDomains Persempit host tempat proxy sandbox menyisipkan nilai asli. Jika tidak diatur, proxy menyisipkannya pada permintaan ke setiap host di sandbox.network.allowedDomains. Memerlukan v2.1.221 atau lebih baru

Ini hanya me-mask nilai oauth_token di file hosts gh, mengganti setiap salinan lain nilai tersebut di file, membuat file tidak dapat dibaca jika pola tidak cocok dengan apa pun, dan menyisipkan token asli hanya pada permintaan ke api.github.com:

{
  "sandbox": {
    "credentials": {
      "files": [
        {
          "path": "~/.config/gh/hosts.yml",
          "mode": "mask",
          "extract": "oauth_token:\\s*(\\S+)",
          "maskDuplicates": true,
          "onExtractNoMatch": "deny",
          "injectHosts": ["api.github.com"]
        }
      ]
    }
  }
}

sandbox.credentials.envVars

Lindungi environment variable dari perintah yang di-sandbox. Dengan "mode": "deny", Claude Code menghapus variabel dari environment perintah yang di-sandbox. Dengan "mode": "mask", perintah yang di-sandbox melihat nilai sentinel per sesi, dan proxy sandbox menyisipkan nilai asli pada permintaan keluar ke injectHosts milik entri tersebut, sehingga alat seperti gh dan npm tetap dapat melakukan autentikasi tanpa pernah memegang kredensial asli.

  • Cakupan: Any file. Claude Code membuang entri mask dari .claude/settings.json proyek dan .claude/settings.local.json lokal.
  • Tipe: array objek, masing-masing dengan name dan mode berupa "deny" atau "mask", ditambah bidang mask untuk environment variable yang opsional
  • Default: tidak diatur, sehingga tidak ada environment variable yang dilindungi

Ini menghapus NPM_TOKEN dari perintah yang di-sandbox dan me-mask GITHUB_TOKEN, dengan menyisipkan nilai asli hanya pada permintaan ke api.github.com:

{
  "sandbox": {
    "credentials": {
      "envVars": [
        { "name": "NPM_TOKEN", "mode": "deny" },
        { "name": "GITHUB_TOKEN", "mode": "mask", "injectHosts": ["api.github.com"] }
      ]
    }
  }
}

name harus diawali dengan huruf atau garis bawah dan hanya berisi huruf, angka, dan garis bawah. Claude Code menggabungkan array dari setiap cakupan pengaturan yang dimuat sesi, dan menerapkan deny ketika variabel yang sama muncul dengan kedua mode. Melindungi kredensial membahas apa yang tetap berlaku dari sumber yang Anda kecualikan dengan --setting-sources.

Substitusi mask hanya berjalan melalui proxy sandbox, jadi atur sandbox.network.tlsTerminate, atau allowPlaintextInject untuk jaringan pengujian HTTP biasa; lihat Me-mask kredensial. Claude Code menerima tetapi mengabaikan bidang mask pada entri deny.

Bidang mask untuk environment variable

Entri mask menerima bidang opsional berikut. Tanpa extract atau decode, Claude Code mengganti seluruh nilai dengan satu sentinel. extract dan decode tidak dapat digabungkan pada entri yang sama.

Bidang Tipe Fungsinya
extract string, ekspresi reguler dengan setidaknya satu capturing group Hanya me-mask teks yang ditangkap oleh grup 1 dari setiap kecocokan, seperti kata sandi di dalam connection string DATABASE_URL, sehingga bagian lain nilai tetap dapat di-parse. Memerlukan v2.1.224 atau lebih baru
onExtractNoMatch "warn", "deny", atau "error"; default "warn". Pada entri dengan decode, hanya "warn" yang diterima Apa yang terjadi ketika extract tidak cocok dengan apa pun. warn meneruskan variabel tanpa di-mask, deny menghapus variabel tersebut di dalam sandbox, dan error menghentikan penyiapan sandbox sampai Anda memperbaiki konfigurasi. Memerlukan v2.1.224 atau lebih baru
decode string "jwt" Verifikasi bahwa seluruh nilai adalah JWT dan ganti dengan token palsu yang valid secara struktur, sehingga kode di dalam sandbox yang mendekode token tetap berfungsi; proxy menyisipkan seluruh token asli saat egress. Nilai yang tidak terverifikasi diteruskan tanpa di-mask dengan peringatan. Memerlukan v2.1.224 atau lebih baru
maskClaims array string, setidaknya satu nama claim; memerlukan decode Hanya me-mask claim payload tingkat atas yang disebutkan di dalam JWT yang didekode dan membangun ulang token di sekitar payload yang dimodifikasi, sehingga claim lain tetap dapat dibaca. Ketika tidak ada claim yang disebutkan yang cocok, variabel diteruskan tanpa di-mask dengan peringatan. Memerlukan v2.1.224 atau lebih baru
injectHosts array string, masing-masing host yang juga diterima oleh sandbox.network.allowedDomains Persempit host tempat proxy sandbox menyisipkan nilai asli. Jika tidak diatur, proxy menyisipkannya pada permintaan ke setiap host di sandbox.network.allowedDomains. Tulis tujuan IPv6 sebagai alamat terkompresi polos, seperti "::1", bukan dalam bentuk berkurung siku; lihat Tujuan IPv6 di injectHosts

Ini hanya me-mask kata sandi di dalam DATABASE_URL, menghapus variabel tersebut jika pola tidak cocok dengan apa pun, dan me-mask JWT di SERVICE_JWT sambil membiarkan setiap claim kecuali api_key tetap dapat dibaca:

{
  "sandbox": {
    "credentials": {
      "envVars": [
        {
          "name": "DATABASE_URL",
          "mode": "mask",
          "extract": "://[^:]+:([^@]+)@",
          "onExtractNoMatch": "deny"
        },
        {
          "name": "SERVICE_JWT",
          "mode": "mask",
          "decode": "jwt",
          "maskClaims": ["api_key"]
        }
      ]
    }
  }
}

sandbox.credentials.allowPlaintextInject

Izinkan substitusi mask pada permintaan HTTP biasa selain pada HTTPS yang di-terminate TLS. Pada HTTP biasa, identitas upstream tidak diverifikasi dan kredensial dikirim dalam cleartext, jadi biarkan ini nonaktif di luar jaringan pengujian tepercaya.

  • Cakupan: User or managed
  • Tipe: Boolean
    • true: Claude Code mengizinkan substitusi mask pada permintaan HTTP biasa selain pada HTTPS yang di-terminate TLS
    • false: Claude Code hanya mengizinkan substitusi mask pada HTTPS yang di-terminate TLS
  • Default: false
{
  "sandbox": {
    "credentials": {
      "allowPlaintextInject": true
    }
  }
}

sandbox.credentials.awsPairs

Kelompokkan environment variable yang di-mask yang membentuk satu kredensial AWS untuk penandatanganan ulang SigV4 ketika kredensial Anda berada di variabel dengan nama non-standar. Claude Code menautkan trio konvensional AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, dan AWS_SESSION_TOKEN secara otomatis ketika Anda me-mask seluruh nilainya, sehingga Anda hanya memerlukan kunci ini untuk nama lain. Memerlukan Claude Code v2.1.224 atau lebih baru.

  • Cakupan: User or managed
  • Tipe: array objek, masing-masing dengan accessKeyIdVar, secretAccessKeyVar, dan opsional sessionTokenVar, yang menyebutkan entri sandbox.credentials.envVars
  • Default: tidak diatur, sehingga hanya trio konvensional yang dipasangkan

Ini menautkan tiga variabel dengan nama kustom menjadi satu kredensial AWS untuk penandatanganan ulang:

{
  "sandbox": {
    "credentials": {
      "awsPairs": [
        {
          "accessKeyIdVar": "MY_KEY_ID",
          "secretAccessKeyVar": "MY_SECRET_KEY",
          "sessionTokenVar": "MY_SESSION_TOKEN"
        }
      ]
    }
  }
}

Setiap variabel yang disebutkan harus berupa entri mask seluruh nilai di sandbox.credentials.envVars, tanpa extract atau decode, dan hanya dapat mengisi satu slot di seluruh pasangan. Aturan berikut juga berlaku:

  • Proxy menandatangani ulang permintaan pada host yang tercantum di injectHosts milik entri access key ID
  • Ketika sessionTokenVar diatur, proxy mengirim token asli sebagai x-amz-security-token pada permintaan yang ditandatangani ulang
  • Menyebutkan salah satu variabel konvensional dalam sebuah pasangan menggantikan pemasangan otomatis

sandbox.credentials.sigv4

Pilih apa yang dilakukan proxy sandbox terhadap bentuk permintaan AWS yang tidak dapat ditandatangani ulang: streaming untuk upload streaming aws-chunked, presigned untuk URL presigned, dan sigv4a untuk tanda tangan asimetris SigV4A. Ini hanya berlaku untuk permintaan yang ditandatangani dengan access key ID placeholder dari pasangan yang di-mask. Memerlukan Claude Code v2.1.224 atau lebih baru.

  • Cakupan: User or managed
  • Tipe: objek dengan streaming, presigned, dan sigv4a, masing-masing salah satu dari:
    • "deny": proxy menggagalkan permintaan
    • "passthrough": proxy meneruskan permintaan yang ditandatangani dengan placeholder yang di-mask, sehingga alat menerima penolakan dari AWS sendiri
  • Default: tidak diatur, sehingga setiap bentuk bernilai "deny"

Ini meneruskan upload streaming alih-alih menggagalkannya di proxy:

{
  "sandbox": {
    "credentials": {
      "sigv4": {
        "streaming": "passthrough"
      }
    }
  }
}

Dengan deny, proxy menggagalkan permintaan. Dengan passthrough, proxy meneruskan permintaan dengan tanda tangan yang dihitung dari placeholder yang di-mask, sehingga AWS menolaknya dan alat pemanggil menerima respons AWS sendiri alih-alih error proxy.

sandbox.network

Kontrol host, port, dan socket mana yang dapat dijangkau oleh perintah yang di-sandbox. Sandbox merutekan lalu lintas keluar melalui proxy yang menegakkan daftar-daftar ini; lihat Isolasi jaringan untuk cara proxy memutuskan dan kapan ia meminta persetujuan.

  • Cakupan: Any file. strictAllowlist, allowManagedDomainsOnly, dan tlsTerminate dibaca dari lebih sedikit sumber, seperti yang dijelaskan di entrinya masing-masing.
  • Tipe: objek dengan sub-kunci di bawah
  • Default: tidak diatur, sehingga tidak ada domain yang diizinkan terlebih dahulu dan mode izin Anda menentukan apa yang terjadi pada setiap host baru

Ini mengizinkan GitHub dan npm terlebih dahulu, memblokir uploads.github.com, dan memungkinkan perintah melakukan bind ke localhost:

{
  "sandbox": {
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org"],
      "deniedDomains": ["uploads.github.com"],
      "allowLocalBinding": true
    }
  }
}

Claude Code menggabungkan sub-kunci array di seluruh cakupan pengaturan, sehingga proyek dapat menambahkan domain ke daftar pengguna Anda, kecuali jika penguncian repositori berlaku. Aturan izin allow dan deny WebFetch(domain:...) mengisi daftar allow dan deny yang sama.

sandbox.network.allowUnixSockets

Cantumkan path socket Unix yang dapat dihubungkan oleh perintah yang di-sandbox di macOS. Claude Code mengabaikan daftar ini di Linux dan WSL2, tempat filter seccomp tidak dapat memeriksa path socket; gunakan allowAllUnixSockets di sana sebagai gantinya.

{
  "sandbox": {
    "network": {
      "allowUnixSockets": ["~/.ssh/agent-socket"]
    }
  }
}

Path socket dapat memberikan akses yang luas: mengizinkan /var/run/docker.sock, misalnya, memungkinkan perintah yang di-sandbox mengontrol daemon Docker. Lihat Keterbatasan keamanan.

sandbox.network.allowAllUnixSockets

Izinkan perintah yang di-sandbox terhubung ke setiap socket Unix. Di Linux dan WSL2, filter seccomp milik sandbox memblokir panggilan socket(AF_UNIX, ...), sehingga ini adalah satu-satunya cara untuk mengizinkan socket Unix di sana. Ketika filter tersebut tidak ada, yang dilaporkan oleh /sandbox di tab Dependencies-nya, sandbox tidak memblokir panggilan socket Unix. Lihat Menyiapkan Linux dan WSL2 untuk asal filter tersebut.

  • Cakupan: Any file, dengan batasan pada pengaturan proyek dan lokal
  • Tipe: Boolean
    • true: perintah yang di-sandbox dapat terhubung ke setiap socket Unix. Di Linux dan WSL2, perintah tersebut juga dapat terhubung ke socket VM, yaitu keluarga alamat AF_VSOCK
    • false: sandbox memblokir koneksi socket Unix: di macOS kecuali path di allowUnixSockets, dan di Linux dan WSL2 melalui filter seccomp jika filter tersebut ada
  • Default: false
{
  "sandbox": {
    "network": {
      "allowAllUnixSockets": true
    }
  }
}

Di WSL2, true juga membuka kembali socket interop yang meluncurkan binary Windows seperti cmd.exe dan powershell.exe.

sandbox.network.allowLocalBinding

Izinkan perintah yang di-sandbox di macOS mendengarkan port jaringan, misalnya untuk memulai server dev, dan terhubung ke port mana pun di localhost. Perintah yang mendengarkan pada alamat non-loopback menerima koneksi dari mesin lain. Kunci ini tidak berpengaruh di Linux dan WSL2, tempat setiap perintah yang di-sandbox memiliki antarmuka loopback sendiri. Untuk menjangkau server di host dari Linux atau WSL2, lihat Perintah gagal menjangkau server di localhost.

  • Cakupan: Any file, dengan batasan pada pengaturan proyek dan lokal
  • Tipe: Boolean
    • true: perintah yang di-sandbox di macOS dapat mendengarkan pada alamat lokal mana pun dan terhubung ke port mana pun di localhost
    • false: perintah yang di-sandbox di macOS tidak dapat mendengarkan port atau terhubung langsung ke server di localhost
  • Default: false
{
  "sandbox": {
    "network": {
      "allowLocalBinding": true
    }
  }
}

sandbox.network.allowMachLookup

Cantumkan nama layanan XPC dan Mach tambahan yang boleh dicari oleh sandbox macOS. Alat yang berkomunikasi melalui XPC, seperti iOS Simulator atau Playwright, memerlukan layanannya dicantumkan di sini. Perintah yang di-sandbox dapat menjangkau ke luar sandbox ke setiap layanan yang Anda cantumkan, dan sandbox tidak membatasi apa yang dilakukan layanan tersebut untuk perintah-perintah itu.

Ini mengizinkan setiap layanan di bawah prefiks com.apple.CoreSimulator.:

{
  "sandbox": {
    "network": {
      "allowMachLookup": ["com.apple.CoreSimulator.*"]
    }
  }
}

sandbox.network.allowedDomains

Izinkan domain terlebih dahulu untuk lalu lintas keluar dari perintah yang di-sandbox, sehingga sandbox tidak meminta persetujuan untuk domain tersebut. Wildcard seperti *.example.com mencocokkan subdomain, dan akhiran :port opsional membatasi entri ke satu port; entri tanpa port mencocokkan setiap port.

Ini mengizinkan terlebih dahulu GitHub di setiap port, setiap subdomain npm, dan satu host API hanya di port 443:

{
  "sandbox": {
    "network": {
      "allowedDomains": ["github.com", "*.npmjs.org", "api.example.com:443"]
    }
  }
}

Tulis literal IPv6 dalam kurung siku, dengan port opsional: "[::1]" mengizinkan setiap port dan "[::1]:443" satu port. Bentuk berkurung siku memerlukan Claude Code v2.1.229 atau lebih baru. Lihat Alamat IPv6 di daftar domain.

sandbox.network.deniedDomains

Blokir domain untuk lalu lintas keluar dari perintah yang di-sandbox, menggunakan sintaks wildcard, port, dan IPv6 yang sama seperti allowedDomains. Domain yang ditolak tetap diblokir bahkan ketika entri allowedDomains juga mencocokkannya.

  • Cakupan: Any file
  • Tipe: array string, masing-masing berupa domain, pola wildcard, atau literal IP, dengan akhiran :port opsional
  • Default: tidak diatur
{
  "sandbox": {
    "network": {
      "deniedDomains": ["sensitive.cloud.example.com"]
    }
  }
}

Claude Code menggabungkan daftar ini dari setiap sumber pengaturan yang dimuat sesi bahkan ketika allowManagedDomainsOnly diatur, sehingga developer selalu dapat memperketat daftar deny. Untuk literal IPv6, lihat Alamat IPv6 di daftar domain.

Entri yang ditulis dengan titik di akhir yang menandai nama domain yang sepenuhnya memenuhi syarat, seperti example.com., memblokir koneksi yang sama dengan example.com.

sandbox.network.strictAllowlist

Tolak akses perintah yang di-sandbox ke host di luar allowlist alih-alih meminta persetujuan. Allowlist tersebut adalah allowedDomains ditambah domain dari aturan allow WebFetch(domain:...), atau hanya entri pengaturan terkelola ketika allowManagedDomainsOnly diatur. Penguncian yang berlaku tanpa sandbox yang diwajibkan admin membahas entri repositori. Memerlukan Claude Code v2.1.219 atau lebih baru.

  • Cakupan: User or managed. Repositori tidak dapat mengaktifkan atau menonaktifkannya.
  • Tipe: Boolean
    • true: Claude Code menolak akses perintah yang di-sandbox ke host di luar allowlist
    • false: kecuali jika file pengaturan tepercaya lain mengatur true, Claude Code memutuskan host di luar allowlist berdasarkan mode izin alih-alih langsung menolaknya: dalam auto mode, Claude Code memeriksa host terhadap domain yang diizinkan per perintah milik perintah tersebut, dalam mode dontAsk Claude Code menolak, dalam mode bypassPermissions dan dalam sesi plan mode terminal interaktif tempat bypass tersedia Claude Code mengizinkan, dan selain itu Claude Code bertanya kepada Anda
  • Default: false
{
  "sandbox": {
    "network": {
      "strictAllowlist": true
    }
  }
}

Claude Code menegakkan ini hanya untuk perintah yang di-sandbox; tool dalam proses seperti WebFetch tetap mengikuti aturan izin-nya. Ketika salah satu sumber yang dipatuhi mengaturnya ke true, pengaturan ini tetap aktif. Lihat Isolasi jaringan. Memerlukan Claude Code v2.1.219 atau lebih baru.

sandbox.network.allowManagedDomainsOnly

Mengunci allowlist jaringan pada apa yang didefinisikan oleh pengaturan terkelola. Claude Code kemudian hanya mematuhi allowedDomains dan aturan allow WebFetch(domain:...) dari pengaturan terkelola, mengabaikan domain dari pengaturan pengguna, proyek, lokal, dan --settings, serta memblokir domain yang tidak diizinkan secara otomatis alih-alih meminta izin.

  • Cakupan: Managed
  • Tipe: Boolean
    • true: Claude Code hanya mematuhi allowedDomains dan aturan allow WebFetch(domain:...) dari pengaturan terkelola serta memblokir domain yang tidak diizinkan alih-alih meminta izin
    • false: domain dari file pengaturan lain dapat digabungkan ke dalam allowlist
  • Default: false

Contoh ini mengunci allowlist pada GitHub dan npm serta mengabaikan domain apa pun yang ditambahkan oleh developer:

{
  "sandbox": {
    "network": {
      "allowManagedDomainsOnly": true,
      "allowedDomains": ["github.com", "*.npmjs.org"]
    }
  }
}

Selama kunci ini bernilai true, sandbox bersifat wajib oleh admin, dan hanya pengaturan terkelola yang dapat menetapkan port proxy.

Domain yang ditolak tetap digabungkan dari setiap sumber yang dimuat oleh sesi. Lihat Mencegah developer memperluas kebijakan.

sandbox.network.httpProxyPort

Mengarahkan sandbox ke proxy HTTP Anda sendiri alih-alih proxy yang dijalankan oleh Claude Code. Organisasi melakukan ini untuk menginspeksi lalu lintas HTTPS, menerapkan aturan penyaringan mereka sendiri, atau mencatat permintaan. Proxy Anda mengambil alih penyaringan, dan Claude Code berhenti menerapkan daftar domain serta permintaan izin jaringannya pada lalu lintas yang dikirim ke sana. Jika tidak ditetapkan, Claude Code memulai proxy-nya sendiri untuk lalu lintas HTTP.

{
  "sandbox": {
    "network": {
      "httpProxyPort": 8080
    }
  }
}

Tetapkan juga socksProxyPort jika proxy Anda juga harus membawa lalu lintas SOCKS; jika hanya salah satu dari keduanya yang ditetapkan, Claude Code tetap menjalankan proxy-nya sendiri untuk protokol lainnya. Lihat Konfigurasi proxy kustom.

sandbox.network.socksProxyPort

Mengarahkan sandbox ke proxy SOCKS5 Anda sendiri alih-alih proxy yang dijalankan oleh Claude Code. Proxy Anda mengambil alih penyaringan, dan Claude Code berhenti menerapkan daftar domain serta permintaan izin jaringannya pada lalu lintas yang dikirim ke sana. Jika tidak ditetapkan, Claude Code memulai proxy-nya sendiri untuk lalu lintas SOCKS.

{
  "sandbox": {
    "network": {
      "socksProxyPort": 8081
    }
  }
}

Lihat Konfigurasi proxy kustom.

sandbox.network.tlsTerminate

Membuat proxy sandbox melakukan terminasi TLS sehingga dapat membaca isi permintaan HTTPS. Fitur ini bersifat eksperimental, dan substitusi kredensial mask memerlukannya. Tetapkan {} untuk menghasilkan otoritas sertifikat sementara untuk sesi, atau tetapkan caCertPath dan caKeyPath untuk menggunakan milik Anda sendiri.

  • Cakupan: User or managed. Repositori tidak dapat mengaktifkannya atau menyediakan otoritas sertifikat.
  • Tipe: objek dengan string opsional caCertPath dan caKeyPath, masing-masing berupa path file
  • Default: tidak ditetapkan, sehingga proxy tidak melakukan terminasi atau inspeksi TLS
{
  "sandbox": {
    "network": {
      "tlsTerminate": {}
    }
  }
}

Jika lebih dari satu sumber yang dipatuhi menetapkannya, Claude Code menggunakan nilai dari sumber dengan prioritas tertinggi: pengaturan terkelola, lalu flag --settings, lalu pengaturan pengguna.

Memori dan konteks

Kendalikan apa yang dimuat Claude Code ke dalam konteks, bagaimana Claude Code melakukan compaction, dan di mana Claude Code menyimpan memori dan rencana. Lihat Kelola konteks dan Memori.

autoCompactEnabled

Minta Claude Code memadatkan percakapan secara otomatis saat konteks mendekati batas. Muncul di /config sebagai Auto-compact, dan mengubahnya di sana akan menulis kunci ini ke pengaturan pengguna Anda.

  • Cakupan: Any file
  • Tipe: Boolean
    • true: Claude Code memadatkan percakapan secara otomatis saat konteks mendekati batas
    • false: Claude Code tidak memadatkan secara otomatis
  • Default: true
  • Override per sesi: DISABLE_AUTO_COMPACT mematikan auto-compact untuk satu sesi; mana pun dari keduanya yang mematikannya, yang lain tidak dapat menyalakannya kembali
{
  "autoCompactEnabled": false
}

Perintah manual /compact tetap berfungsi saat auto-compact dimatikan. Jika Anda mematikan auto-compact, idle compaction juga ikut mati.

autoCompactWindow

Atur seberapa penuh context window sebelum Claude Code melakukan compaction secara otomatis.

{
  "autoCompactWindow": 500000
}

Perintah /autocompact menyimpan window untuk model saat ini di bawah modelSettings, yang diutamakan daripada kunci ini dalam file yang sama untuk model tersebut. Mengatur auto-compact window menjelaskan bagaimana perintah, flag, variabel, dan pengaturan saling berinteraksi.

autoMemoryDirectory

Simpan auto memory di direktori pilihan Anda alih-alih default per proyek.

  • Cakupan: Any file
  • Tipe: string, path direktori absolut atau berawalan ~/
  • Default: tidak diatur, sehingga Claude Code menggunakan ~/.claude/projects/<project>/memory/
{
  "autoMemoryDirectory": "~/my-memory-dir"
}

Dari pengaturan proyek atau lokal, Claude Code menghormati kunci ini berdasarkan aturan kepercayaan workspace yang sama seperti hook, karena repositori yang di-clone dapat menyediakan file-file tersebut.

autoMemoryEnabled

Nyalakan atau matikan auto memory. Jika false, Claude tidak membaca dari atau menulis ke direktori auto memory. Anda juga dapat mengubahnya dengan /memory selama sesi, yang menulis kunci ini ke pengaturan pengguna Anda.

  • Cakupan: Any file
  • Tipe: Boolean
    • true: sama seperti tidak diatur; auto memory tetap menyala kecuali sesuatu yang berprioritas lebih tinggi daripada kunci ini mematikannya untuk sesi tersebut, seperti --bare, safe mode, atau CLAUDE_CODE_DISABLE_AUTO_MEMORY
    • false: Claude tidak membaca dari atau menulis ke direktori auto memory
  • Default: true
  • Override per sesi: CLAUDE_CODE_DISABLE_AUTO_MEMORY diutamakan daripada kunci ini untuk satu sesi, ke arah mana pun
{
  "autoMemoryEnabled": false
}

bashOutputMaxChars

Atur berapa banyak karakter dari output perintah Bash atau PowerShell yang berhasil yang diterima Claude secara inline. Saat output melewati batas, Claude Code menyimpannya ke file dan Claude menerima pratinjau singkat beserta path file tersebut. Naikkan batasnya saat output perintah, seperti build yang verbose atau log test suite lengkap, secara rutin melebihi default dan Anda ingin Claude membacanya tanpa membuka file. Memerlukan Claude Code v2.1.261 atau yang lebih baru.

  • Cakupan: Any file
  • Tipe: jumlah karakter, bilangan bulat positif. Claude Code membatasi nilainya dalam rentang 4000 hingga 128000
  • Default: tidak diatur, sehingga Claude menerima hingga 30.000 karakter secara inline
{
  "bashOutputMaxChars": 100000
}

Saat Anda mengatur kunci ini, Claude Code mengabaikan environment variable BASH_MAX_OUTPUT_LENGTH.

claudeMd

Sisipkan instruksi bergaya CLAUDE.md sebagai memori yang dikelola organisasi tanpa men-deploy file terpisah. Claude Code memuat teks tersebut sebagai entri memori terkelola sebelum file CLAUDE.md pengguna dan proyek.

  • Cakupan: Managed
  • Tipe: string, teks file CLAUDE.md; tulis seperti Anda menulis file tersebut, termasuk Markdown, dengan jeda baris sebagai \n
  • Default: tidak diatur

Contoh ini men-deploy dua aturan sebagai daftar Markdown singkat:

{
  "claudeMd": "# Engineering rules\n\n- Always run make lint before committing.\n- Never push directly to main."
}

Lihat Deploy CLAUDE.md untuk seluruh organisasi.

claudeMdExcludes

Lewati file CLAUDE.md tertentu saat Claude Code memuat memori. Dalam monorepo besar, gunakan ini untuk melewati file CLAUDE.md dari tim lain yang tidak relevan dengan pekerjaan Anda; Kecualikan file CLAUDE.md yang tidak relevan dalam panduan codebase besar membahas kasus tersebut. Pola dicocokkan dengan path file absolut.

  • Cakupan: Any file
  • Tipe: array string, masing-masing berupa pola glob atau path absolut
  • Default: tidak diatur, sehingga Claude Code memuat setiap CLAUDE.md yang ditemukannya
{
  "claudeMdExcludes": ["**/vendor/**/CLAUDE.md"]
}

Pengecualian hanya berlaku untuk file memori pengguna, proyek, dan lokal; file CLAUDE.md kebijakan terkelola tidak dapat dikecualikan.

env

Atur environment variable untuk setiap sesi dan untuk subproses yang dijalankan Claude Code dari sesi tersebut. Sebagian besar variabel dalam referensi environment variable dapat ditempatkan di sini, yang merupakan cara Anda menerapkan variabel ke setiap sesi atau meluncurkannya ke tim Anda. Pengaturan proyek dan lokal tidak dapat mengatur sebagian di antaranya.

  • Cakupan: Any file
  • Tipe: objek yang memetakan nama variabel ke nilai string
  • Default: tidak diatur

Contoh ini mematikan compaction otomatis dan merutekan permintaan API melalui proxy:

{
  "env": {
    "DISABLE_AUTO_COMPACT": "1",
    "ANTHROPIC_BASE_URL": "https://proxy.example.com"
  }
}

Bagaimana nilai env berinteraksi dengan shell Anda

  • Nilai di sini menimpa variabel yang sama yang diekspor di shell Anda, dan saat lebih dari satu file pengaturan mengatur suatu variabel, yang memiliki prioritas tertinggi yang berlaku. Variabel yang diabaikan Claude Code di env mencantumkan pengecualian untuk pengaturan proyek dan lokal.
  • Saat aplikasi Claude Desktop atau runner lingkungan self-hosted memulai sesi, lingkungan peluncuran yang dibangunnya yang diutamakan: Claude Code mengabaikan nilai env dari file pengaturan mana pun untuk variabel yang sudah diatur oleh lingkungan peluncuran. Log debug menyebutkan setiap variabel yang diabaikan.
  • Untuk membatalkan ekspor shell, atur variabel ke "". Claude Code memperlakukan nilai kosong sebagai tidak diatur untuk pemilihan penyedia, dan subproses mewarisi nilai kosong tersebut.
  • NO_COLOR dan FORCE_COLOR yang diatur di sini hanya mencapai subproses. Untuk mengubah warna antarmuka Claude Code sendiri, atur keduanya di shell Anda sebelum menjalankan claude.
  • Nilai di sini berupa teks biasa di file pengaturan dan mencapai setiap subproses yang dijalankan Claude Code. Untuk token bearer OTLP yang berotasi, gunakan otelHeadersHelper; untuk kredensial API, gunakan apiKeyHelper.

Kapan Claude Code menerapkan nilai env

  • Dari pengaturan pengguna, --settings, dan pengaturan terkelola: saat startup, dan lagi di sesi yang sedang berjalan saat perubahan yang disimpan mengubah env gabungan.
  • Dari pengaturan proyek dan lokal: setelah Anda memercayai workspace, atau saat startup dalam mode -p, yang tidak pernah menampilkan dialog kepercayaan, dan lagi saat perubahan yang disimpan mengubah env gabungan.
  • Variabel yang diklasifikasikan Claude Code sebagai aman, seperti pemilihan model, timeout dan batas, serta toggle fitur: saat startup dari setiap file pengaturan, selain variabel yang tidak dapat diatur oleh pengaturan proyek dan lokal.
  • Setelah Anda memindahkan sesi dengan /cd pada v2.1.246 atau yang lebih baru: nilai env proyek dan lokal dari direktori baru, di atas nilai dari direktori sebelumnya.

Variabel yang diabaikan Claude Code di env

  • Pengaturan proyek dan lokal tidak dapat mengatur variabel yang seharusnya tidak dikendalikan oleh repositori yang di-checkout; atur variabel tersebut di shell, pengaturan pengguna, atau pengaturan terkelola Anda. Claude Code membuang masing-masing variabel tersebut, selain beberapa nilai yang mematikan telemetri, dan mencatat peringatan yang dapat Anda lihat dengan claude --debug. Variabel tersebut meliputi:

    • Variabel yang memilih tempat Claude Code menyimpan atau menulis filenya sendiri: CLAUDE_CONFIG_DIR, CLAUDE_CODE_TMPDIR, dan variabel direktori sistem operasi seperti HOME, TMPDIR, TMP, TEMP, dan keluarga XDG_*.

    • Variabel Windows yang memilih program dan konfigurasi seluruh mesin untuk proses yang dijalankan Claude Code, seperti SystemRoot, ComSpec, ProgramData, LOCALAPPDATA, PATHEXT, PSModulePath, dan keluarga ProgramFiles.

    • Variabel yang mengekspor konten sesi: OTEL_LOG_RAW_API_BODIES dan pasangan tracing beta terperinci ENABLE_BETA_TRACING_DETAILED dan BETA_TRACING_ENDPOINT.

    • Variabel exporter OpenTelemetry yang menyalakan telemetri, memilih tujuannya, atau memilih konten yang ditangkapnya:

      • CLAUDE_CODE_ENABLE_TELEMETRY, ditambah pasangan beta telemetri yang ditingkatkan CLAUDE_CODE_ENHANCED_TELEMETRY_BETA dan ENABLE_ENHANCED_TELEMETRY_BETA
      • Pemilih exporter OTEL_LOGS_EXPORTER, OTEL_METRICS_EXPORTER, dan OTEL_TRACES_EXPORTER
      • Variabel konten OTEL_LOG_USER_PROMPTS, OTEL_LOG_ASSISTANT_RESPONSES, OTEL_LOG_TOOL_CONTENT, dan OTEL_LOG_TOOL_DETAILS
      • Variabel OTEL_EXPORTER_OTLP_* yang namanya diakhiri dengan _ENDPOINT, _HEADERS, _PROTOCOL, _CERTIFICATE, _CLIENT_KEY, atau _INSECURE, dalam bentuk generik dan per sinyal, seperti OTEL_EXPORTER_OTLP_ENDPOINT dan OTEL_EXPORTER_OTLP_METRICS_HEADERS
      • OTEL_EXPORTER_PROMETHEUS_HOST dan OTEL_EXPORTER_PROMETHEUS_PORT

      Hanya nilai-nilai berikut yang masih berlaku dari pengaturan proyek dan lokal, karena nilai tersebut mematikan sesuatu: none untuk ketiga pemilih exporter, dan nilai mati seperti 0 untuk OTEL_LOG_USER_PROMPTS, OTEL_LOG_TOOL_CONTENT, dan OTEL_LOG_TOOL_DETAILS. Nilai seperti itu menimpa variabel yang sama di pengaturan pengguna Anda, tetapi tidak menimpa variabel yang diatur oleh lingkungan tempat Anda menjalankan Claude Code, file --settings, atau pengaturan terkelola.

      Saat file pengaturan proyek atau lokal mengatur variabel dalam grup ini, sesi interaktif lokal menampilkan pemberitahuan saat startup. Jalankan /status atau claude doctor untuk melihat variabel mana yang diabaikan Claude Code dan mana yang mematikan telemetri; keduanya mencantumkan nama, tidak pernah nilai. Eksekusi non-interaktif dengan -p atau sesi Agent SDK tidak menampilkan pemberitahuan, jadi periksa bahwa collector Anda masih menerima data setelah Anda melakukan upgrade. Jika tidak, atur variabel tersebut di pengaturan pengguna, pengaturan terkelola, lingkungan job, atau file yang Anda berikan dengan --settings.

      Pengabaian grup ini di pengaturan proyek dan lokal memerlukan Claude Code v2.1.282 atau yang lebih baru.

    • Variabel yang mengubah cara Claude Code dimulai atau disinkronkan, seperti CLAUDE_CODE_PROCESS_WRAPPER, CLAUDE_CODE_SYNC_SKILLS, CLAUDE_CODE_SYNC_PLUGINS, CLAUDE_CODE_PLUGIN_CACHE_DIR, dan CLAUDE_CODE_PLUGIN_SEED_DIR.

    • Variabel yang mengatur proses masuk claude.ai Anda, seperti CLAUDE_CODE_OAUTH_TOKEN, CLAUDE_CODE_OAUTH_REFRESH_TOKEN, dan CLAUDE_CODE_OAUTH_SCOPES.

    • Variabel mode pembaca layar CLAUDE_AX_SCREEN_READER dan variabel lain yang namanya diawali dengan CLAUDE_AX_, seperti CLAUDE_AX_STARTUP_QUIET_MS.

    • CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS, yang mengatur pengatur waktu pada dialog yang belum dijawab.

    • CLAUDE_CODE_DISABLE_ATTACHMENTS, yang mematikan pemrosesan lampiran.

    • CLAUDE_CODE_DISABLE_FILE_MENTIONS, yang menghentikan Claude Code dari memperluas mention @ untuk file dan direktori.

    Sebelum v2.1.251, pengaturan proyek dan lokal juga dapat mengatur variabel dalam daftar ini yang memilih tempat Claude Code menulis filenya atau yang mengekspor konten sesi, kecuali HOME dan XDG_CONFIG_HOME. Sebelum v2.1.290, pengaturan tersebut juga dapat mengatur variabel pengatur waktu dialog dan CLAUDE_CODE_DISABLE_ATTACHMENTS.

  • Variabel identitas yang dimiliki oleh lingkungan hosting Claude Code, seperti CLAUDE_CODE_REMOTE dan CLAUDE_CODE_ACCOUNT_UUID, diabaikan dari setiap file.

  • CLAUDE_CODE_MESSAGING_SOCKET dan CLAUDE_CODE_MESSAGING_TOKEN, yang diekspor sendiri oleh Claude Code, diabaikan dari setiap file. Pengabaian variabel socket memerlukan Claude Code v2.1.224 atau yang lebih baru, dan pengabaian token memerlukan v2.1.228 atau yang lebih baru.

  • CLAUDE_CODE_PROJECT_DIR_NAME, yang dibaca Claude Code hanya dari lingkungan peluncuran, diabaikan dari setiap file; memerlukan v2.1.234 atau yang lebih baru.

  • CLAUDE_CODE_RESTRICTED, yang dibaca Claude Code hanya dari lingkungan peluncuran, diabaikan dari setiap file.

  • CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY, yang dibaca Claude Code hanya dari lingkungan peluncuran, diabaikan dari setiap file. Variabel ini memerlukan Claude Code v2.1.283 atau yang lebih baru.

  • CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT, CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT, CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT, dan CLAUDE_CODE_DISABLE_MOUNTED_DRIVE_RM_PROMPT, yang dibaca Claude Code hanya dari lingkungan peluncuran, diabaikan dari setiap file.

  • CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS, yang dibaca Claude Code hanya dari lingkungan peluncuran, diabaikan dari setiap file.

  • CLAUDE_CODE_WARN_DISK_FREE_GIB dan CLAUDE_CODE_WARN_MEMORY_FREE_GIB, yang dibaca Claude Code hanya dari lingkungan peluncuran, diabaikan dari setiap file. Variabel ini memerlukan Claude Code v2.1.304 atau yang lebih baru.

fileCheckpointingEnabled

Minta Claude Code membuat snapshot file sebelum setiap pengeditan agar /rewind dapat memulihkannya. Muncul di /config sebagai Rewind code (checkpoints), dan mengubahnya di sana akan menulis kunci ini ke pengaturan pengguna Anda.

  • Cakupan: Any file
  • Tipe: Boolean
    • true: Claude Code membuat snapshot file sebelum setiap pengeditan agar /rewind dapat memulihkannya
    • false: Claude Code tidak membuat snapshot file, sehingga /rewind tidak dapat memulihkannya
  • Default: true
  • Override per sesi: CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING mematikan checkpointing untuk satu sesi; mana pun dari keduanya yang mematikannya, yang lain tidak dapat menyalakannya kembali
{
  "fileCheckpointingEnabled": false
}

Dalam eksekusi -p atau sesi Agent SDK, Claude Code mengabaikan kunci ini. SDK menyalakan checkpointing dengan opsi enableFileCheckpointing, dan eksekusi -p biasa memerlukan CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true. Lihat File checkpointing di Agent SDK.

idleCompaction

Idle compaction memadatkan percakapan panjang yang Anda tinggalkan. Pesan Anda berikutnya kemudian mengirimkan ringkasan alih-alih seluruh percakapan. Setelah dipadatkan, percakapan menampilkan pemberitahuan:

  • Terminal: baris yang diawali dengan Compacted while idle, before the prompt cache expired
  • Panel chat VS Code: pemberitahuan yang menyertakan a summary written while you were away
  • Aplikasi desktop: pemberitahuan yang sama, di dalam baris yang labelnya menyertakan Claude Code notice. Jika Anda tidak melihat baris tersebut atau teksnya, beralihlah ke mode tampilan Verbose.

Idle compaction menyala secara default untuk percakapan yang memenuhi semua kondisi berikut:

  • Sesi: Anda berada dalam sesi terminal interaktif, di panel chat ekstensi VS Code, atau di tab Code aplikasi desktop saat sesi berjalan di mesin Anda atau melalui SSH
  • Auto-compaction: autoCompactEnabled menyala
  • Prompt cache: percakapan menggunakan TTL prompt cache satu jam
  • Ukuran: konteks percakapan telah mencapai ambang token, yang dapat Anda ubah dari default-nya sebesar 200.000
  • Waktu idle: sekitar satu jam telah berlalu sejak permintaan terakhir, dan komputer Anda tetap menyala hingga saat itu

Untuk mematikan idle compaction, atur kunci ini ke false.

  • Cakupan: Any file
  • Tipe: Boolean
    • true: Claude Code memadatkan percakapan idle yang memenuhi kondisi
    • false: Claude Code tidak melakukan compaction saat sesi Anda idle
  • Default: true
  • Override per sesi: DISABLE_AUTO_COMPACT mematikan idle compaction bersama dengan auto-compaction
{
  "idleCompaction": false
}

Untuk mematikan atau menyalakan idle compaction dari dalam sesi terminal, jalankan /config dan ubah baris Idle compaction. Pilihan Anda disimpan ke pengaturan pengguna Anda dan langsung berlaku. Baris ini memerlukan Claude Code v2.1.302 atau yang lebih baru. Jika Anda menjalankan salah satu versi tersebut dan /config tidak menampilkan baris tersebut, periksa penyebab berikut:

  • Sumber pengaturan lain mengatur kunci ini: nilai di pengaturan terkelola, flag --settings, atau file pengaturan proyek atau lokal menimpa pengaturan pengguna Anda. Ubah kunci di sumber tersebut
  • Feature flag tidak tersedia pada versi sebelum v2.1.314: jika Claude Code tidak dapat mengambil feature flag dari Anthropic, idle compaction tidak berjalan, sehingga tidak ada yang perlu dimatikan

Kunci ini memerlukan Claude Code v2.1.290 atau yang lebih baru. Pada versi sebelumnya, yang mengabaikan kunci ini, matikan autoCompactEnabled untuk menghentikan idle compaction.

Mengubah ambang idle compaction

Atur CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS ke jumlah token yang harus dicapai konteks percakapan sebelum idle compaction berlaku untuknya. Gunakan bilangan bulat positif. Nilai di bawah 100000 dinaikkan menjadi 100000, ambang terendah.

Pada default, percakapan pada context window 200K akan auto-compact sebelum mencapai 200.000 token. Contoh ini menurunkan ambang menjadi 150.000 agar percakapan tersebut memenuhi syarat:

{
  "env": {
    "CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS": "150000"
  }
}

Idle compaction di VS Code dan aplikasi desktop

Pemberitahuan seperti ini berarti Claude Code mengganti percakapan Anda sebelumnya dengan ringkasan yang sekarang menjadi dasar kerja Claude:

Compacted using a summary written while you were away · turn off with "idleCompaction": false in settings.json

Anda tidak perlu melakukan apa pun. Untuk mematikan idle compaction, atur idleCompaction ke false di ~/.claude/settings.json pada mesin atau distribusi WSL tempat sesi berjalan, atau di file pengaturan lainnya.

plansDirectory

Pilih tempat Claude Code menyimpan file rencana yang ditulisnya dalam plan mode. Claude Code me-resolve path relatif terhadap root proyek.

  • Cakupan: Any file
  • Tipe: string, path relatif terhadap root proyek
  • Default: tidak diatur, sehingga Claude Code menggunakan ~/.claude/plans
{
  "plansDirectory": "./plans"
}

Claude Code menyimpan rencana di ~/.claude/plans alih-alih direktori yang Anda atur dalam kasus seperti berikut:

  • Di luar root proyek: path ter-resolve ke luar root proyek, seperti "../plans".
  • Backslash di macOS, Linux, dan WSL: path yang ter-resolve berisi backslash, seperti "docs\\plans" bergaya Windows. Tulis "docs/plans", yang juga berfungsi di Windows.

skillListingBudgetFraction

Setiap giliran, Claude melihat daftar skill Anda beserta deskripsinya, dan Claude Code membatasi daftar tersebut pada porsi tertentu dari context window. Saat daftar melebihi batas, Claude Code mempertahankan nama setiap skill tetapi membuang deskripsi skill yang paling jarang digunakan, sehingga Claude masih dapat memanggil skill tersebut tetapi lebih kecil kemungkinannya untuk memilihnya sendiri. Naikkan kunci ini untuk menjaga lebih banyak deskripsi tetap terlihat dengan konsekuensi lebih banyak konteks per giliran.

  • Cakupan: Any file
  • Tipe: angka, pecahan yang lebih besar dari 0 dan paling banyak 1
  • Default: 0.01, yang mencadangkan 1% dari context window
{
  "skillListingBudgetFraction": 0.02
}

Untuk melihat berapa banyak konteks yang digunakan daftar tersebut dan skill mana yang paling banyak berkontribusi, jalankan /doctor.

skillListingMaxDescChars

Setiap giliran, Claude melihat daftar skill Anda yang menampilkan teks description dan when_to_use setiap skill. Kunci ini membatasi berapa banyak karakter dari teks tersebut yang ditampilkan Claude Code per skill; teks yang lebih panjang dipotong pada batas tersebut.

  • Cakupan: Any file
  • Tipe: jumlah karakter, bilangan bulat positif
  • Default: 1536
{
  "skillListingMaxDescChars": 2048
}

Naikkan untuk menjaga deskripsi panjang tetap utuh dengan konsekuensi lebih banyak konteks per giliran; turunkan untuk memuat lebih banyak skill di bawah skillListingBudgetFraction.

taskOutputMaxChars

[!WARNING]

Dihapus di v2.1.277, bersama dengan tool TaskOutput yang ukurannya diatur olehnya. Mengaturnya tidak berpengaruh pada versi saat ini. Claude membaca file output tugas latar belakang dengan Read sebagai gantinya.

Hingga v2.1.276, Anda mengatur kunci ini ke jumlah karakter output tugas latar belakang yang diterima Claude secara inline saat membaca tugas tersebut dengan tool TaskOutput.

Interface dan terminal

Ubah tampilan dan perilaku Claude Code di terminal Anda: tema, mode editor, status line, spinner, notifikasi dalam sesi, dan aksesibilitas. Lihat Konfigurasi terminal.

askUserQuestionTimeout

Biarkan dialog AskUserQuestion yang belum dijawab melanjutkan secara otomatis setelah periode waktu idle, mengirimkan opsi apa pun yang telah Anda pilih. Atur ini ketika Anda pergi dan ingin Claude melanjutkan tanpa Anda. Dengan default, pertanyaan menunggu sampai Anda menjawabnya. Untuk kapan timer berhenti sementara atau tidak pernah dimulai, lihat Question auto-continue timeout.

  • Scope: User or managed
  • Type: string, salah satu dari "60s", "5m", "10m", atau "never"
  • Default: "never"
{
  "askUserQuestionTimeout": "5m"
}

Muncul di /config sebagai Question auto-continue timeout, yang menulis kunci ini ke pengaturan pengguna; Claude Code menyembunyikan baris saat pengaturan terkelola atau flag --settings mengatur kunci.

autoContinueAtUsageLimit

Setelah batas penggunaan claude.ai menghentikan sesi Anda, tunggu di sesi terbuka dan lanjutkan tugas secara otomatis setelah reset. Lihat Matikan automatic continue. Memerlukan Claude Code v2.1.234 atau lebih baru.

  • Scope: User or managed. Baca dari pengaturan pengguna, --settings, dan pengaturan terkelola saja. Ketika tidak ada yang mengatur kunci, file pengaturan proyek atau lokal yang mengaturnya mematikan fitur daripada diabaikan.
  • Type: Boolean
    • true: setelah batas penggunaan claude.ai menghentikan sesi Anda, Claude Code menunggu di sesi terbuka dan melanjutkan tugas secara otomatis setelah reset
    • false: Claude Code tidak memulai penantian dengan sendirinya. Anda masih dapat memulai penantian sendiri dari menu opsi batas penggunaan
  • Default: true
{
  "autoContinueAtUsageLimit": false
}

Muncul di /config sebagai Continue automatically at usage limit, yang menulis kunci ini ke pengaturan pengguna; Claude Code menyembunyikan baris saat pengaturan terkelola atau flag --settings mengatur kunci.

autoScrollEnabled

Ikuti output baru ke bagian bawah percakapan dalam fullscreen rendering. Matikan untuk tetap di tempat Anda menggulir sementara Claude terus bekerja; prompt izin masih menggulir ke tampilan.

  • Scope: Any file
  • Type: Boolean
    • true: percakapan mengikuti output baru ke bagian bawah
    • false: Anda tetap di tempat Anda menggulir sementara Claude terus bekerja; prompt izin masih muncul di bawah transkrip
  • Default: true
{
  "autoScrollEnabled": false
}

Muncul di /config sebagai Auto-scroll ketika fullscreen rendering aktif, yang menulis kunci ini ke pengaturan pengguna.

axScreenReader

Render output yang ramah pembaca layar: teks datar tanpa batas dekoratif atau animasi. Mode pembaca layar menggunakan renderer klasik, jadi pengaturan tui tidak berpengaruh saat aktif; sesi latar belakang yang terlampir masih merender fullscreen.

  • Scope: User or managed. Anda juga dapat mengatur kunci ini dalam file yang Anda berikan dengan --settings. Claude Code mengabaikan kunci ini dalam pengaturan proyek dan lokal, jadi baik repositori maupun .claude/settings.local.json milik Anda sendiri tidak dapat mengaktifkan atau mematikan mode pembaca layar.
  • Type: Boolean
    • true: Claude Code merender teks datar tanpa batas dekoratif atau animasi, menggunakan renderer klasik
    • false: Claude Code merender secara normal
  • Default: unset, jadi mode pembaca layar mati
  • Per-session overrides: --ax-screen-reader mengambil alih CLAUDE_AX_SCREEN_READER, dan keduanya mengambil alih kunci ini untuk satu sesi
{
  "axScreenReader": true
}

bashEditDiffEnabled

Pilih apakah Claude Code mencatat file yang diubah dalam repositori Git saat perintah Bash berjalan. Ketika mencatatnya, Anda melihat diff mereka di terminal setelah perintah, dan PostToolUse Bash hooks Anda menerima daftar file yang diubah.

File yang terdaftar tidak selalu merupakan file yang diubah perintah. Perubahan yang dibuat program lain atau panggilan Bash lain saat perintah berjalan juga dapat muncul di sana.

Atur kunci ke true untuk mencatatnya dalam setiap mode izin. Memerlukan Claude Code v2.1.269 atau lebih baru.

  • Scope: User or managed. true hanya dihitung dari pengaturan pengguna Anda, JSON yang dilewatkan dengan --settings, atau pengaturan terkelola, jadi true dalam .claude/settings.json atau .claude/settings.local.json repositori tidak dapat mengaktifkan pencatatan. false dalam file repositori apa pun masih mematikannya kecuali file preseden lebih tinggi mengatur true.
  • Type: Boolean
  • Default: unset, jadi Claude Code mencatat perubahan dalam mode auto dan mode bypassPermissions ketika mengarahkan Claude untuk mengedit file melalui Bash
  • Per-session overrides: CLAUDE_CODE_BASH_EDIT_DIFF mengambil alih kunci ini untuk satu sesi
{
  "bashEditDiffEnabled": true
}

companyAnnouncements

Tampilkan pengumuman organisasi Anda kepada pengguna saat startup. Ketika Anda mencantumkan lebih dari satu, Claude Code memilih satu secara acak untuk setiap sesi; pada peluncuran pertama seseorang, ini menampilkan entri pertama.

  • Scope: Any file
  • Type: array of strings
  • Default: unset, jadi tidak ada pengumuman yang ditampilkan
{
  "companyAnnouncements": [
    "Welcome to Acme Corp! Review our code guidelines at docs.example.com"
  ]
}

defaultShell

Pilih apakah Bash atau PowerShell menjalankan perintah shell yang Anda ketik dengan prefix ! di kotak input, yang dijalankan Claude Code secara langsung dan ditambahkan ke sesi.

"powershell" hanya berfungsi saat tool PowerShell aktif. Tool ini aktif secara default di Windows tanpa Git Bash, dan di Windows dengan Git Bash untuk akun claude.ai dan Console. Di sesi Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry, serta di macOS, Linux, dan WSL, atur CLAUDE_CODE_USE_POWERSHELL_TOOL=1 untuk mengaktifkan tool. Atur variabel itu ke 0 untuk mematikan tool.

  • Scope: Any file
  • Type: string, salah satu dari:
    • "bash": Claude Code menjalankan perintah ! Anda di Bash
    • "powershell": Claude Code menjalankan perintah ! Anda di PowerShell
  • Default: "bash", atau "powershell" di Windows ketika Bash tidak tersedia
{
  "defaultShell": "powershell"
}

Jika shell yang Anda beri nama tidak tersedia, Claude Code menggunakan yang lain: "powershell" kembali ke Bash ketika tool PowerShell mati, dan "bash" kembali ke PowerShell ketika Bash tidak terinstal.

dialogExpiry

Atur tenggat waktu untuk dialog yang Claude Code teruskan ke klien jarak jauh, seperti host Remote Control atau SDK, dan untuk dialog persetujuan untuk pesan lintas sesi yang ditahan. Di Claude Code v2.1.236 atau lebih baru, tenggat waktu yang sama membatasi prompt persetujuan kredit penggunaan Fable pertengahan sesi dalam sesi yang mungkin tidak ada siapa pun di terminal. Ketika tidak ada jawaban sebelum tenggat waktu, Claude Code membatalkan dialog dan melanjutkan dengan default tanpa tindakan. Memerlukan Claude Code v2.1.224 atau lebih baru.

{
  "dialogExpiry": "10m"
}

Prompt izin dan pertanyaan AskUserQuestion menggunakan alur mereka sendiri dan tidak diatur oleh tenggat waktu ini. Muncul di /config sebagai Dialog expiry, yang menulis kunci ini ke pengaturan pengguna; baris memerlukan Claude Code v2.1.232 atau lebih baru, dan Claude Code menyembunyikannya saat pengaturan terkelola atau flag --settings mengatur kunci.

editorMode

Pilih mode pengikatan kunci untuk prompt input.

  • Scope: Any file
  • Type: string, salah satu dari:
    • "normal": pintasan keyboard standar dalam input prompt
    • "vim": pengeditan gaya vim dengan mode NORMAL, INSERT, dan VISUAL
  • Default: "normal"
{
  "editorMode": "vim"
}

Muncul di /config sebagai Editor mode, yang menulis kunci ini ke pengaturan pengguna.

emojiCompletionEnabled

Tampilkan saran emoji ketika Anda mengetik : ditambah shortcode dalam input prompt, dan ganti shortcode yang selesai seperti :heart: dengan emojinya. Atur ke false untuk mematikan keduanya.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code menampilkan saran emoji setelah : dan mengganti shortcode yang selesai dengan emojinya
    • false: Claude Code tidak menyarankan emoji atau mengganti shortcode
  • Default: true
{
  "emojiCompletionEnabled": false
}

Lihat Emoji shortcodes.

fileSuggestion

Jalankan perintah Anda sendiri untuk menyediakan pelengkapan otomatis jalur file @ daripada saran file bawaan. Saran bawaan menggunakan traversal filesystem cepat; monorepo besar mungkin lebih baik dengan pengindeksan khusus proyek seperti indeks file yang sudah dibangun.

  • Scope: Any file. Di bawah status line dan file suggestion gates, Claude Code mematikan perintah atau menjalankan hanya nilai terkelola, dan melewati milik Anda tanpa peringatan.
  • Type: object dengan type, selalu "command", dan command, perintah shell untuk dijalankan
  • Default: unset, jadi Claude Code menggunakan saran file bawaan
{
  "fileSuggestion": {
    "type": "command",
    "command": "~/.claude/file-suggestion.sh"
  }
}

Setelah Anda menyimpan ini, ketik @ diikuti bagian dari jalur dalam prompt: saran berasal dari output perintah Anda.

Command input dan output

Claude Code menjalankan perintah dengan variabel lingkungan yang sama seperti hooks, termasuk CLAUDE_PROJECT_DIR, dan berhenti menunggu setelah lima detik. Perintah menerima JSON di stdin dengan field query yang menampung apa yang telah Anda ketik sejauh ini:

{"query": "src/comp"}

Cetak jalur file yang dipisahkan baris baru ke stdout. Claude Code menampilkan paling banyak 15:

src/components/Button.tsx
src/components/Modal.tsx
src/components/Form.tsx

Skrip berikut membaca query dan menyerahkannya ke indeks file repositori:

#!/bin/bash
query=$(cat | jq -r '.query')
# Replace your-repo-file-index with your own file search command
your-repo-file-index --query "$query" | head -20

Render lencana yang dapat diklik tambahan di footer di bawah kotak input ketika regex cocok dengan output giliran: hasil tool, termasuk konten file dan halaman yang diambil, dan respons Claude sendiri. Gunakan untuk mengubah ID yang dicetak oleh CLI proyek, seperti alat review dan pelacak masalah, menjadi tautan sesi.

  • Scope: User or managed
  • Type: array of objects, masing-masing dengan type diatur ke "regex", regex pattern, template url, dan label opsional; placeholder {name} dalam url dan label diisi dari grup penangkapan bernama dalam pattern
  • Default: unset, jadi tidak ada lencana yang dirender

Contoh ini cocok dengan kunci masalah seperti PROJ-1234 dan membangun setiap tautan dari kunci yang ditangkap:

{
  "footerLinksRegexes": [
    {
      "type": "regex",
      "pattern": "\\b(?<key>PROJ-\\d+)\\b",
      "url": "https://issues.example.com/browse/{key}",
      "label": "{key}"
    }
  ]
}

Dengan ini dikonfigurasi, ketika PROJ-1234 muncul dalam hasil tool atau dalam balasan Claude, lencana PROJ-1234 muncul di footer menautkan ke https://issues.example.com/browse/PROJ-1234.

Batasan lencana

Setiap URL, label, dan jumlah lencana entri dibatasi sebagai berikut:

Constraint Behavior
URL origin Nilai yang ditangkap dikodekan URL dan URL yang dibangun harus berbagi asal literal template. Penangkapan dapat mengisi segmen jalur atau nilai query tetapi tidak dapat mengubah tempat tautan menunjuk
URL length URL yang dibangun lebih panjang dari 2048 karakter dijatuhkan
URL scheme Harus https, http, atau skema deep-link editor atau workspace yang diakui: vscode, vscode-insiders, cursor, windsurf, zed, jetbrains, idea, slack, linear, notion, figma
Label Default ke teks yang cocok dan dipotong menjadi 28 kolom tampilan
Badge count Paling banyak 5 lencana dirender. Yang tertua digantikan oleh kecocokan yang lebih baru dan /clear menghapusnya

Ketika giliran selesai, Claude Code mencocokkan regex pattern setiap entri terhadap output giliran di thread utama, jadi regex yang 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 penggandaan + atau *.

Lencana footer dirender bersama status line kustom ketika satu dikonfigurasi; tidak ada yang 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.

keybindingFlavor

[!WARNING]

Tidak direkomendasikan sejak v2.1.261 dan tidak berpengaruh. Kunci pengeditan kata prompt selalu mengikuti konvensi readline, seperti di Bash. Claude Code masih menerima keybindingFlavor, jadi file pengaturan yang mengaturnya tetap valid.

Di v2.1.238 hingga v2.1.260, mengaturnya ke "readline" membuat Ctrl+W menghapus kembali ke spasi sebelumnya daripada hanya kata sebelumnya.

  • Scope: Any file
  • Type: string, "classic" atau "readline"
  • Default: unset

maxProseWidth

Batasi lebar prosa dalam respons Claude sehingga baris tetap dapat dibaca di terminal lebar. Paragraf, judul, daftar, dan blockquote membungkus dalam jumlah kolom ini, sementara tabel dan blok kode menjaga lebar terminal penuh. Memerlukan Claude Code v2.1.282 atau lebih baru.

  • Scope: Any file
  • Type: number of terminal columns, a whole number, minimum 40. Claude Code mengabaikan nilai apa pun yang lain
  • Default: unset, jadi prosa membungkus di tepi terminal
{
  "maxProseWidth": 80
}

prefersReducedMotion

Kurangi atau matikan animasi antarmuka seperti spinner, shimmer, dan efek flash. Muncul di /config sebagai Reduce motion.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code mengurangi atau mematikan animasi antarmuka seperti spinner, shimmer, dan efek flash
    • false: sama dengan unset; Claude Code menampilkan animasinya
  • Default: false
{
  "prefersReducedMotion": true
}

promptSuggestionEnabled

Tampilkan atau sembunyikan prompt suggestions, prediksi yang dikelabuhi yang muncul dalam input prompt Anda. Atur ke false, atau matikan Prompt suggestions di /config, untuk menyembunyikannya.

  • Scope: Any file
  • Type: Boolean
    • true: Anda melihat saran prompt dalam input prompt Anda
    • false: Claude Code menyembunyikan saran prompt
  • Default: true
  • Per-session overrides: CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION mengambil alih kunci ini untuk satu sesi
{
  "promptSuggestionEnabled": false
}

Saran prompt memerlukan akun claude.ai atau Console dengan telemetri aktif. Di Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry, atau dengan telemetri dimatikan, seperti oleh DISABLE_TELEMETRY, kunci ini tidak berpengaruh dan hanya CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=1 mengaktifkannya.

respectGitignore

Kontrol apakah pemilih file @ mengeluarkan file yang cocok dengan pola .gitignore. Muncul di /config sebagai Respect .gitignore in file picker.

  • Scope: Any file. Ketika tidak ada file pengaturan yang mengaturnya, Claude Code kembali ke respectGitignore di ~/.claude.json, yang toggle /config tulis.
  • Type: Boolean
    • true: pemilih file @ mengeluarkan file yang cocok dengan pola .gitignore
    • false: pemilih file @ menyertakan file yang cocok dengan pola .gitignore
  • Default: true
{
  "respectGitignore": false
}

respondToBashCommands

Pilih apakah Claude merespons setelah Anda menjalankan perintah shell dengan prefix ! di kotak input. Secara default, Claude Code menambahkan output perintah ke percakapan dan Claude membalasnya. Atur kunci ini ke false untuk menambahkan output ke konteks tanpa balasan, sehingga Anda dapat menjalankan beberapa perintah dan menanyakan tentang mereka bersama-sama.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code menambahkan output perintah ke percakapan dan Claude membalasnya
    • false: Claude Code menambahkan output ke konteks tanpa balasan
  • Default: true
{
  "respondToBashCommands": false
}

Lihat Shell mode dengan prefix !.

showClearContextOnPlanAccept

Ketika Claude menyelesaikan rencana dalam plan mode, ini menampilkan menu persetujuan. Perencanaan dapat menggunakan banyak konteks, jadi kunci ini menambahkan opsi pertama ke menu itu, Yes, clear context and …, yang menyetujui rencana, menghapus konteks percakapan, dan mulai mengimplementasikan dari rencana saja. Sisa label menamai mode izin sesi berlanjut, dan menunjukkan berapa banyak konteks Anda yang digunakan perencanaan.

  • Scope: Any file
  • Type: Boolean
    • true: menu persetujuan rencana mendapat opsi pertama, Yes, clear context and …, yang menyetujui rencana dan menghapus konteks percakapan
    • false: menu persetujuan rencana tidak menampilkan opsi clear-context
  • Default: false
{
  "showClearContextOnPlanAccept": true
}

showTurnDuration

Tampilkan atau sembunyikan pesan durasi giliran setelah setiap respons, seperti "Cooked for 1m 6s · done 6:05 PM". Jam setelah "done" menunjukkan kapan giliran selesai; timeFormat dan timeZone mengontrol format dan zonanya. Muncul di /config sebagai Show turn duration.

  • Scope: Any file. Nilai di ~/.claude.json dari versi yang lebih lama berlaku ketika tidak ada file pengaturan yang mengaturnya.
  • Type: Boolean
    • true: Anda melihat pesan durasi giliran setelah setiap respons
    • false: Claude Code menyembunyikan pesan durasi giliran
  • Default: true
{
  "showTurnDuration": false
}

spellcheck

Garis bawahi kata-kata yang salah eja dalam input prompt saat Anda mengetik, menggunakan pemeriksa ejaan yang Anda instal. Claude Code hanya memeriksa teks dalam kotak input. Check spelling as you type mencakup penginstalan aspell, hunspell, atau ispell dan apa yang diperiksa pemeriksa. Memerlukan Claude Code v2.1.235 atau lebih baru.

  • Scope: User or managed. Blok dari tier tertinggi yang mengaturnya berlaku secara keseluruhan.
  • Type: object dengan enabled (Boolean), checker ("aspell", "hunspell", "ispell", atau "auto"), language (string, dilewatkan ke pemeriksa sebagai nama kamus), dan color (string, nama warna terminal, #rrggbb, rgb(r,g,b), ansi256(n), atau ansi:<name>)
  • Default: unset, jadi pemeriksaan ejaan mati; checker default ke "auto", yang pertama dari tiga ditemukan di PATH; language default ke kamus pemeriksa sendiri; color default ke warna kesalahan tema
{
  "spellcheck": { "enabled": true, "language": "en_GB" }
}

spinnerTipsEnabled

Saat Claude bekerja, baris spinner berputar melalui tips pendek tentang fitur Claude Code, seperti "Use Plan Mode to prepare for a complex request before making changes. Press Shift+Tab twice to enable." Atur kunci ini ke false untuk menyembunyikannya. Muncul di /config sebagai Show tips.

  • Scope: Any file
  • Type: Boolean
    • true: Anda melihat tips dalam spinner saat Claude bekerja
    • false: Claude Code menyembunyikan tips spinner
  • Default: true
{
  "spinnerTipsEnabled": false
}

spinnerTipsOverride

Tambahkan tips Anda sendiri ke spinner tips yang Claude Code tampilkan saat Claude bekerja, atau ganti tips bawaan dengan milik Anda. Claude Code menempatkan tips Anda dalam rotasi yang sama dengan yang bawaan.

Jika Anda mengatur spinnerTipsEnabled ke false, Claude Code menyembunyikan semua tips, milik Anda termasuk.

  • Scope: Any file. Claude Code menghormati objek tip, tipsFile, label, dan excludeDefault dari pengaturan pengguna, flag --settings, dan pengaturan terkelola; dari pengaturan proyek dan lokal hanya membaca tips string biasa.
  • Type: object dengan field tips, tipsFile, label, dan excludeDefault, masing-masing opsional
  • Default: unset, jadi Claude Code hanya menampilkan tips bawaan

Objek tip, tipsFile, label, dan aturan baris Scope yang pengaturan proyek dan lokal hanya berkontribusi string biasa memerlukan Claude Code v2.1.247 atau lebih baru.

Setiap entri tips adalah string biasa atau objek dengan field ini:

Field Required Description
id Yes Hingga 64 huruf, digit, ., _, atau -. Claude Code mengetik riwayat tampilan tip padanya, jadi cooldown tip bertahan pengurutan ulang daftar. Dari dua entri dengan id yang sama, Claude Code menggunakan yang pertama
text Yes Tip, satu baris hingga 500 karakter. Claude Code menghapus escape ANSI dan karakter kontrol dan meruntuhkan spasi
cooldownSessions No Sesi Claude Code menunggu sebelum menampilkan tip lagi, 0 hingga 1000, default 0
priority No Urutan di antara tips yang belum ditampilkan sama lamanya, lebih tinggi dulu, -10 hingga 10, default 0

Claude Code membaca string biasa sebagai tip dengan default tersebut dan id berbasis posisi, jadi riwayat tampilan direset ketika Anda mengurutkan ulang daftar. Berikan tip id untuk menjaga riwayatnya di seluruh edit.

Claude Code membaca paling banyak 200 tips di seluruh tips dan tipsFile, dan menjatuhkan entri tidak valid dengan peringatan debug daripada menolak file pengaturan.

Gunakan field yang tersisa untuk menamai file tips, atur awalan, dan sembunyikan tips bawaan:

  • tipsFile: jalur absolut atau ~/ ke file JSON lokal yang menampung array entri yang sama, atau objek dengan array tips, hingga 256 KB. Claude Code membaca file sekali per proses, jadi memuat edit Anda pada awal berikutnya. Anda tidak dapat mengaturnya melalui pengaturan terkelola server; deploy inline tips di sana, atau deploy jalur di managed-settings.json on-disk.
  • label: awalan Claude Code menampilkan sebelum tips dari pengaturan pengguna, --settings, dan terkelola, hingga 40 karakter. Default adalah Tip, awalan yang sama seperti tips bawaan, dan tips dari pengaturan proyek dan lokal selalu menggunakannya.
  • excludeDefault: atur ke true untuk menyembunyikan tips bawaan dan hanya menampilkan milik Anda. Ketika Claude Code tidak dapat memuat salah satu tips Anda, misalnya karena tipsFile tidak ada atau setiap entri tidak valid, ia menjaga rotasi bawaan daripada spinner kosong.

Ketika lebih dari satu file pengaturan mengatur kunci, Claude Code menampilkan tips dari semuanya dan mengambil tipsFile, label, dan excludeDefault dari mana pun pengaturan terkelola, flag --settings, dan pengaturan pengguna adalah yang tertinggi-preseden yang mengatur masing-masing.

Contoh ini, dalam pengaturan pengguna Anda, menambahkan tip string biasa dan tip objek ke rotasi di bawah awalan Acme tip:

{
  "spinnerTipsOverride": {
    "label": "Acme tip",
    "tips": [
      "Run /review before opening a PR",
      {
        "id": "gateway-errors",
        "text": "Seeing 5xx errors? Check the gateway status page first",
        "cooldownSessions": 5,
        "priority": 2
      }
    ]
  }
}

Setiap field dalam contoh mengubah satu hal tentang cara Claude Code menampilkan tips:

  • label: Claude Code menampilkan kedua tips sebagai Acme tip: ... daripada Tip: ....
  • String biasa: Claude Code memberikannya default, jadi dapat muncul lagi di sesi berikutnya.
  • id: Claude Code mengetik riwayat tampilan tip kedua pada gateway-errors, jadi cooldown masih berlaku setelah Anda menambah atau mengurutkan ulang tips.
  • cooldownSessions: setelah Claude Code menampilkan tip gateway-errors, tidak menampilkan tip itu lagi sampai lima sesi kemudian.
  • priority: ketika tip gateway-errors dan tip lain belum ditampilkan untuk jumlah sesi yang sama, misalnya ketika tidak ada yang ditampilkan, Claude Code menampilkan gateway-errors terlebih dahulu. String biasa memiliki prioritas default, 0.

Saat Claude bekerja, Claude Code menampilkan tips Anda dalam spinner dengan awalan Anda, seperti Acme tip: Run /review before opening a PR.

spinnerVerbs

Saat giliran sedang berlangsung, spinner menampilkan kata kerja yang berputar seperti "Accomplishing", "Architecting", atau "Baking". Gunakan kunci ini untuk menambahkan kata kerja Anda sendiri ke rotasi itu atau ganti daftar bawaan dengan milik Anda.

  • Scope: Any file
  • Type: object dengan array verbs string dan mode, salah satu dari:
    • "append": Claude Code menambahkan kata kerja Anda ke set bawaan
    • "replace": Claude Code hanya menampilkan kata kerja Anda
  • Default: unset, jadi Claude Code menggunakan kata kerja bawaan

Contoh ini menambahkan dua kata kerja ke set bawaan:

{
  "spinnerVerbs": {
    "mode": "append",
    "verbs": ["Pondering", "Crafting"]
  }
}

Dalam mode "replace" dengan array verbs kosong, Claude Code menjaga kata kerja bawaan.

statusLine

Jalankan perintah Anda sendiri untuk merender status line di bawah prompt dengan konteks seperti model, biaya, atau cabang git. Field opsional menyesuaikan spasi, menambahkan re-run berkala, dan menyembunyikan indikator mode vim bawaan ketika skrip Anda merender vim.mode sendiri.

  • Scope: Any file. Ketika allowManagedHooksOnly aktif, atau disableAllHooks diatur di luar pengaturan terkelola, hanya nilai pengaturan terkelola yang berjalan.
  • Type: object dengan type diatur ke "command" dan string command, ditambah padding opsional sebagai jumlah karakter, refreshInterval sebagai jumlah detik, minimum 1, dan hideVimModeIndicator sebagai Boolean
  • Default: unset, jadi tidak ada status line

Contoh ini mencetak nama model dan penggunaan konteks, dan menambahkan dua karakter spasi horizontal:

{
  "statusLine": {
    "type": "command",
    "command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'",
    "padding": 2
  }
}

Contoh memerlukan jq terinstal dan berjalan dalam shell. Untuk PowerShell dan setara Git Bash, lihat Windows configuration; untuk setup lengkap, lihat Manually configure a status line.

subagentStatusLine

Ketika Claude menjalankan subagents, Claude Code mencantumkannya dalam tampilan tugas di bawah prompt, satu baris per subagent menampilkan name · description · token count. Kunci ini memungkinkan Anda menjalankan perintah Anda sendiri untuk menulis ulang baris tersebut, misalnya untuk menampilkan penggunaan konteks setiap subagent sebagai persentase. Pada setiap refresh, Claude Code mengirim baris yang terlihat sebagai satu objek JSON di stdin, dengan array tasks membawa id, name, status, model, tokenCount, dan lainnya setiap subagent, dan mengganti baris untuk setiap id yang Anda tulis kembali sebagai baris {"id", "content"}. Baris yang tidak Anda tulis kembali menjaga rendering default.

  • Scope: Any file. Ketika allowManagedHooksOnly aktif, atau disableAllHooks diatur di luar pengaturan terkelola, hanya nilai pengaturan terkelola yang berjalan.
  • Type: object dengan type diatur ke "command" dan string command
  • Default: unset, jadi Claude Code merender baris default
{
  "subagentStatusLine": {
    "type": "command",
    "command": "jq -c '.tasks[] | {id, content: \"\\(.name): \\(.tokenCount) tokens\"}'"
  }
}

Lihat Subagent status lines.

syntaxHighlightingDisabled

Claude Code mewarnai kode berdasarkan bahasa dalam diff, blok kode, dan pratinjau file yang ditampilkan di terminal, dengan highlighter bawaannya. Atur kunci ini ke true untuk menampilkannya sebagai teks biasa, misalnya jika warna bertentangan dengan tema terminal Anda atau memperlambat pembaca layar.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code mematikan penyorotan sintaks dalam diff, blok kode, dan pratinjau file
    • false: Claude Code menyoroti sintaks
  • Default: false
{
  "syntaxHighlightingDisabled": true
}

terminalProgressBarEnabled

Beberapa terminal dapat menampilkan indikator kemajuan di tab atau di taskbar untuk program yang berjalan di dalamnya. Saat Claude bekerja, Claude Code melaporkan status sedang berlangsung ke terminal, sehingga Anda dapat melihat dari tab atau jendela lain apakah sesi masih sibuk. Indikator tetap terlihat setelah giliran berakhir sementara subagents latar belakang atau dynamic workflows masih berjalan, dan jelas setelah sesi idle.

Claude Code melaporkannya hanya di terminal yang mendukung indikator: ConEmu, Ghostty 1.2.0 atau lebih baru, dan iTerm2 3.6.6 atau lebih baru. Atur kunci ini ke false untuk menghentikan Claude Code melaporkannya. Muncul di /config sebagai Terminal progress bar.

  • Scope: Any file. Nilai di ~/.claude.json dari versi yang lebih lama berlaku ketika tidak ada file pengaturan yang mengaturnya.
  • Type: Boolean
    • true: Anda melihat progress bar terminal di terminal yang mendukungnya
    • false: Claude Code menyembunyikan progress bar terminal
  • Default: true
{
  "terminalProgressBarEnabled": false
}

terminalTitleFromRename

Claude Code mengatur judul tab terminal Anda. Secara default menggunakan judul yang dihasilkan dari percakapan, dan setelah Anda memberi sesi nama dengan /rename atau --name, tab menampilkan nama itu. Atur kunci ini ke false untuk menjaga judul yang dihasilkan di tab bahkan setelah Anda memberi nama sesi. Nama itu sendiri masih berlaku, jadi /resume <name> dan pemilih sesi menemukannya.

  • Scope: Any file
  • Type: Boolean
    • true: judul tab terminal menampilkan nama sesi yang Anda atur
    • false: tab menjaga judul yang Claude Code hasilkan dari percakapan Anda
  • Default: true
{
  "terminalTitleFromRename": false
}

Untuk menghentikan Claude Code memperbarui judul terminal sama sekali, atur CLAUDE_CODE_DISABLE_TERMINAL_TITLE ke 1.

theme

Pilih tema warna untuk antarmuka. Muncul di /config sebagai Theme.

  • Scope: Any file. Nilai di ~/.claude.json dari versi yang lebih lama berlaku ketika tidak ada file pengaturan yang mengaturnya.
  • Type: string, salah satu dari:
    • "auto": cocok dengan latar belakang terminal Anda yang terang atau gelap
    • "dark": tema gelap
    • "light": tema terang
    • "dark-daltonized": tema gelap dengan warna ramah buta warna
    • "light-daltonized": tema terang dengan warna ramah buta warna
    • "dark-ansi": tema gelap hanya menggunakan palet warna ANSI terminal Anda
    • "light-ansi": tema terang hanya menggunakan palet warna ANSI terminal Anda
    • "custom:<slug>" atau "custom:<plugin-name>:<slug>": tema kustom dari ~/.claude/themes/ atau plugin
  • Default: "dark"
{
  "theme": "light-daltonized"
}

Lihat Create a custom theme.

timeFormat

Pilih cara Claude Code menulis waktu yang ditampilkan dalam antarmuka, seperti done 6:05 PM di akhir setiap pesan durasi giliran dan stempel waktu dalam transcript viewer. Untuk memilih preset, jalankan /config dan atur Time format. Memerlukan Claude Code v2.1.257 atau lebih baru.

  • Scope: Any file
  • Type: string, salah satu dari:
    • "auto": sama dengan unset; setiap waktu menjaga format bawaan, yang mengikuti lokal Anda pada pesan durasi giliran
    • "12-hour": jam 12 jam
    • "24-hour": jam 24 jam
    • "24-hour-utc": jam 24 jam di UTC dengan Z setelah menit, seperti 18:05Z; Claude Code mengabaikan timeZone untuk preset ini
    • Pola strftime seperti "%H:%M": Claude Code menulis setiap waktu dengan pola. Nilai apa pun yang berisi % adalah pola, dan nilai apa pun di luar preset menghitung sebagai "auto"
  • Default: "auto"
{
  "timeFormat": "24-hour"
}

/config hanya menawarkan preset, jadi untuk menggunakan pola strftime, tambahkan kunci ke file pengaturan. Contoh ini menampilkan setiap waktu sebagai jam 24 jam dua digit:

{
  "timeFormat": "%H:%M"
}

Pesan durasi giliran dan transcript viewer kemudian menampilkan waktu seperti 18:05. Dalam transcript viewer, pola adalah seluruh stempel waktu, jadi tambahkan direktif tanggal ketika Anda menginginkan tanggal di sana. Contoh ini menempatkan tanggal di depan jam:

{
  "timeFormat": "%Y-%m-%d %H:%M"
}

Permukaan yang sama kemudian menampilkan waktu seperti 2026-09-01 18:05.

timeZone

Tampilkan waktu dalam antarmuka di zona waktu selain sistem Anda. Atur ke nama zona waktu IANA, seperti "UTC" atau "Europe/Dublin". Waktu yang timeFormat kontrol kemudian menampilkan di zona ini. Jika timeFormat adalah "24-hour-utc", waktu tetap di UTC dan Claude Code mengabaikan kunci ini. /config tidak memiliki baris untuk kunci ini, jadi atur dalam file pengaturan. Memerlukan Claude Code v2.1.257 atau lebih baru.

  • Scope: Any file
  • Type: string, nama zona waktu IANA. Ketika Claude Code tidak mengenali nama, menggunakan zona waktu sistem Anda
  • Default: unset, jadi waktu menampilkan di zona waktu sistem Anda
{
  "timeZone": "Europe/Dublin"
}

tui

Pilih renderer UI terminal. Gunakan "fullscreen" untuk renderer alt-screen bebas flicker fullscreen dengan scrollback virtual, atau "default" untuk renderer main-screen klasik. Menjalankan /tui fullscreen atau /tui default menulis kunci ini untuk Anda.

  • Scope: Any file
  • Type: string, salah satu dari:
    • "default": renderer main-screen klasik
    • "fullscreen": renderer alt-screen bebas flicker dengan scrollback virtual
  • Default: unset, jadi Claude Code memilih renderer untuk Anda
  • Per-session overrides: CLAUDE_CODE_NO_FLICKER dan CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN mengambil alih kunci ini untuk satu sesi: CLAUDE_CODE_NO_FLICKER=1 mengaktifkan fullscreen, dan CLAUDE_CODE_NO_FLICKER=0 atau CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 mematikannya; ketika keduanya diatur, Claude Code mematikannya
{
  "tui": "fullscreen"
}

Di bawah tmux -CC atau melalui SSH ke Windows, Claude Code menjaga renderer klasik kecuali Anda mengatur CLAUDE_CODE_NO_FLICKER=1. Sesi latar belakang dibuka dari agent view selalu menggunakan renderer fullscreen terlepas dari pengaturan ini.

verbose

Secara default, transkrip meruntuhkan setiap panggilan tool menjadi ringkasan pendek, seperti perintah yang Claude jalankan dan jumlah baris output, dan Anda menekan Ctrl+O untuk beralih seluruh transkrip ke tampilan yang diperluas ketika Anda menginginkan detail. Atur kunci ini ke true untuk menampilkan input dan output lengkap setiap panggilan tool secara inline saat terjadi, yang berguna ketika Anda men-debug hook, server MCP, atau perintah shell panjang. Muncul di /config sebagai Verbose output.

  • Scope: Any file. Nilai di ~/.claude.json dari versi yang lebih lama berlaku ketika tidak ada file pengaturan yang mengaturnya.
  • Type: Boolean
    • true: Anda melihat output tool lengkap
    • false: Anda melihat ringkasan terpotong dari output tool
  • Default: false
  • Per-session overrides: --verbose mengambil alih kunci ini untuk satu sesi
{
  "verbose": true
}

Nilai viewMode atau pilihan /focus lengket menimpa kunci ini setiap sesi.

viewMode

Atur tampilan transkrip Claude Code dimulai: "default", "verbose", atau "focus". Ketika diatur, menimpa pilihan /focus lengket dan pengaturan verbose.

  • Scope: Any file
  • Type: string, salah satu dari:
    • "default": transkrip normal dengan output tool terpotong
    • "verbose": transkrip dengan output tool lengkap
    • "focus": hanya prompt terakhir Anda, ringkasan satu baris panggilan tool dengan edit diffstats, dan respons akhir. Focus view memerlukan renderer fullscreen
  • Default: unset, jadi pengaturan verbose dan pilihan /focus terakhir Anda berlaku
  • Per-session overrides: --verbose mengambil alih kunci ini untuk satu sesi
{
  "viewMode": "focus"
}

vimInsertModeRemaps

Petakan urutan INSERT-mode dua kunci ke Escape dalam mode editor vim. Setiap kunci adalah tepat dua karakter yang dapat dicetak yang diketik berurutan, dan "<Esc>" adalah satu-satunya target yang didukung; Claude Code mengabaikan entri lain.

  • Scope: User or managed. Repositori tidak dapat memetakan ulang keystroke Anda.
  • Type: object memetakan urutan dua karakter ke "<Esc>"
  • Default: unset
{
  "vimInsertModeRemaps": {
    "jj": "<Esc>"
  }
}

Tidak berpengaruh kecuali editorMode adalah "vim". Lihat Remap INSERT-mode key sequences.

voice

Aktifkan voice dictation dan pilih cara kunci diksi berperilaku. Claude Code menulis objek ini untuk Anda ketika Anda menjalankan /voice.

  • Scope: Any file
  • Type: object dengan enabled sebagai Boolean, autoSubmit sebagai Boolean yang berlaku dalam mode hold saja, dan mode, salah satu dari:
    • "hold": Anda menahan kunci diksi saat berbicara dan melepasnya untuk berhenti
    • "tap": Anda mengetuk kunci sekali untuk mulai merekam dan lagi untuk mengirim
  • Default: unset, jadi diksi mati; ketika enabled adalah true dan mode unset, Claude Code menggunakan "hold"

Contoh ini mengaktifkan diksi dan membuat kunci mengetuk sekali untuk mulai merekam dan lagi untuk mengirim:

{
  "voice": {
    "enabled": true,
    "mode": "tap"
  }
}

autoSubmit mengirim prompt ketika Anda melepaskan kunci dalam mode hold. Voice dictation memerlukan akun claude.ai.

voiceEnabled

[!WARNING]

Tidak direkomendasikan sejak v2.1.92, ketika objek voice menggantinya. Claude Code masih membacanya jadi file pengaturan yang lebih lama tetap bekerja, tetapi konfigurasi baru harus mengatur voice.enabled.

Aktifkan voice dictation dengan bentuk Boolean tunggal yang mendahului objek voice. Ketika keduanya diatur, voice.enabled berlaku.

  • Scope: Any file
  • Type: Boolean
    • true: voice dictation aktif ketika Anda masuk dengan akun claude.ai dan kebijakan organisasi Anda memungkinkan suara, kecuali voice.enabled diatur
    • false: voice dictation mati, kecuali voice.enabled diatur
  • Default: unset
{
  "voiceEnabled": true
}

wheelScrollAccelerationEnabled

Percepat kecepatan scroll roda mouse selama scroll cepat dalam fullscreen rendering. Atur ke false untuk laju scroll konstan per takik roda.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code mempercepat kecepatan scroll roda mouse selama scroll cepat
    • false: Claude Code menggulir pada laju konstan per takik roda
  • Default: true
{
  "wheelScrollAccelerationEnabled": false
}

Git dan atribusi

Kontrol atribusi yang ditambahkan Claude Code ke commit dan pull request serta cara kerjanya dengan git.

attribution

Sesuaikan atribusi yang ditambahkan Claude Code ke commit git dan pull request. Commit mendapatkan git trailer seperti Co-Authored-By secara default; deskripsi pull request mendapatkan teks biasa. Atur setiap bagian secara terpisah dengan sub-kunci di bawah ini.

  • Scope: Any file
  • Type: object dengan string commit dan pr serta Boolean sessionUrl, atau false untuk menyembunyikan semua atribusi. Nilai false memerlukan Claude Code v2.1.281 atau lebih baru; versi sebelumnya menolaknya dan melewati seluruh file pengaturan pengguna, proyek, atau lokal yang menahannya
  • Default: tidak diatur, jadi Claude Code menggunakan atribusi standar yang ditampilkan di bawah setiap sub-kunci

Untuk menyembunyikan semua atribusi, atur attribution ke false. Dalam file pengaturan yang juga dibaca versi sebelumnya, atur commit dan pr ke string kosong dan sessionUrl ke false sebagai gantinya.

Contoh ini mengganti atribusi commit, menghapus atribusi pull request, dan menghilangkan tautan sesi:

{
  "attribution": {
    "commit": "Generated with AI\n\nCo-Authored-By: AI <ai@example.com>",
    "pr": "",
    "sessionUrl": false
  }
}

Setelah Anda mengatur commit atau pr, Claude Code mengabaikan pengaturan includeCoAuthoredBy yang sudah usang dan menggunakan teks defaultnya untuk mana pun dari keduanya yang Anda biarkan tidak diatur.

Claude Code memberitahu Claude bahwa instruksi Anda sendiri tentang atribusi, seperti aturan CLAUDE.md atau memory, mengambil alih baris commit dan PR ini, kecuali baris diatur dalam managed settings.

includeCoAuthoredBy

[!WARNING]

Sudah usang sejak v2.0.62, ketika attribution menggantinya. Claude Code masih membacanya, tetapi konfigurasi baru harus mengatur attribution.

Gunakan attribution sebagai gantinya, yang menggantikan kunci ini dan memungkinkan Anda mengubah atau menyembunyikan trailer commit, teks pull request, dan tautan sesi secara terpisah. Claude Code masih menghormati includeCoAuthoredBy: false dari file pengaturan yang mendahului attribution, tetapi mengabaikannya setelah Anda mengatur attribution.commit atau attribution.pr.

  • Scope: Any file
  • Type: Boolean
    • true: sama dengan tidak diatur; Claude Code menambahkan trailer commit dan teks atribusi pull request
    • false: Claude Code menghilangkan trailer commit dan teks atribusi pull request, kecuali attribution mengatur commit atau pr, dalam hal ini aturan attribution berlaku
  • Default: true
{
  "includeCoAuthoredBy": false
}

Untuk menyembunyikan semua atribusi, lihat attribution.

includeGitInstructions

Claude Code memberikan Claude dua bagian konteks terkait git: instruksi bawaan untuk cara menulis commit dan pull request, dalam deskripsi alat Bash, dan snapshot status git dari repositori Anda. Snapshot menyimpan cabang saat ini, cabang utama, output git status, dan commit terbaru. Claude Code membacanya ketika percakapan dimulai.

Atur kunci ini ke false untuk meninggalkan keduanya, misalnya ketika Anda menggunakan skill alur kerja git Anda sendiri.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code menyertakan instruksi alur kerja commit dan pull request bawaan serta snapshot status git. Sesi cloud tidak pernah menyertakan snapshot
    • false: Claude Code meninggalkan keduanya
  • Default: true
  • Per-session overrides: CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS mengambil alih kunci ini untuk satu sesi
{
  "includeGitInstructions": false
}

Jika Anda mengganti system prompt dalam mode non-interaktif atau Agent SDK, sesi dimulai tanpa snapshot meskipun kunci ini bernilai true:

  • Eksekusi -p: Anda mengganti prompt ketika meneruskan --system-prompt atau --system-prompt-file. Anda juga menggantinya ketika menjalankan agent kustom dengan prompt-nya sendiri, yang dipilih dengan --agent atau pengaturan agent. Di luar bare mode, untuk mempertahankan snapshot, jalankan tanpa agent kustom dan tambahkan instruksi Anda dengan --append-system-prompt alih-alih mengganti prompt.
  • Agent SDK: Anda mengganti prompt dengan system prompt kustom atau agent thread utama kustom. Jika Anda tidak mengatur system prompt, SDK menggunakan default minimalnya dan sesi juga dimulai tanpa snapshot. Di luar bare mode, untuk mempertahankan snapshot, gunakan preset claude_code tanpa agent kustom.

prUrlTemplate

Arahkan tautan PR yang dirender Claude Code, di lencana footer dan dalam ringkasan hasil alat, ke alat tinjauan kode internal alih-alih github.com. Claude Code mengganti {host}, {owner}, {repo}, {number}, dan {url} dari URL PR. Tautan permintaan penggabungan GitLab di kedua permukaan mempertahankan URL GitLab mereka.

  • Scope: Any file
  • Type: string, template URL menggunakan salah satu dari lima placeholder
  • Default: tidak diatur
{
  "prUrlTemplate": "https://reviews.example.com/{owner}/{repo}/pull/{number}"
}

Claude Code menerapkan template hanya ke tautan yang dirender sendiri; nomor PR yang ditulis Claude dalam pesan, seperti #123, tetap seperti yang ditulis Claude. URL yang tidak memiliki bentuk /pull/<number> dibiarkan tidak berubah.

attribution.commit

Atur teks atribusi yang ditambahkan Claude Code ke commit git, termasuk trailer apa pun. Atur ke string kosong untuk menyembunyikan atribusi commit.

  • Scope: Any file
  • Type: string
  • Default: tidak diatur, jadi Claude Code menambahkan Co-Authored-By: <name> <noreply@anthropic.com>. Nama adalah model yang digunakan saat commit dibuat, seperti Claude Sonnet 5. Ketika subagent membuat commit, trailer menamai model subagent.
    • Ketika Claude Code mengenali model sebagai model Claude tetapi tidak dapat mengkonfirmasi versi pastinya, ia menulis Claude saja.
    • Ketika tidak dapat mencocokkan ID model ke model Claude apa pun, seperti model pihak ketiga yang disajikan melalui ANTHROPIC_BASE_URL kustom, ia menulis Claude Code.

Contoh ini mengganti trailer default dengan baris kustom dan trailer Co-Authored-By kustom:

{
  "attribution": {
    "commit": "Generated with AI\n\nCo-Authored-By: AI <ai@example.com>"
  }
}

attribution.pr

Atur teks atribusi yang ditambahkan Claude Code ke deskripsi pull request. Atur ke string kosong untuk menyembunyikan atribusi pull request.

  • Scope: Any file
  • Type: string
  • Default: tidak diatur, jadi Claude Code menambahkan 🤖 Generated with [Claude Code](https://claude.com/claude-code)
{
  "attribution": {
    "pr": ""
  }
}

attribution.sessionUrl

Pilih apakah Claude Code menambahkan tautan sesi claude.ai ketika melakukan commit atau membuka pull request dari sesi cloud atau Remote Control. Claude Code menambahkan tautan sebagai trailer Claude-Session pada commit dan sebagai tautan dalam deskripsi pull request. Atur ke false untuk menghilangkan tautan.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code menambahkan tautan sesi claude.ai ketika melakukan commit atau membuka pull request dari sesi cloud atau Remote Control
    • false: Claude Code menghilangkan tautan
  • Default: true
{
  "attribution": {
    "sessionUrl": false
  }
}

Hooks dan otomasi

Daftarkan hooks, batasi hook mana yang berjalan, dan kontrol alur kerja. Untuk acara hook dan payload, lihat referensi hooks.

allowedHttpHookUrls

Batasi URL mana yang dapat ditargetkan oleh HTTP hooks. Ketika Anda menentukan kunci ini, Claude Code menjalankan HTTP hook hanya jika URL-nya cocok dengan salah satu pola dan memblokir sisanya tanpa menjalankannya; array kosong memblokir setiap HTTP hook.

  • Scope: Any file. Array digabungkan di seluruh file pengaturan.
  • Type: array pola URL, dengan * sebagai wildcard
  • Default: tidak diatur, jadi URL apa pun diizinkan

Contoh ini memungkinkan URL apa pun di bawah https://hooks.example.com/ dan URL http://localhost apa pun:

{
  "allowedHttpHookUrls": ["https://hooks.example.com/*", "http://localhost:*"]
}

Pencocokan nama host tidak peka huruf besar-kecil dan memperlakukan hooks.example.com., dengan titik trailing yang menandai nama domain yang sepenuhnya memenuhi syarat, sama seperti hooks.example.com, yang merupakan cara DNS memperlakukannya. Allowlist berlaku untuk hooks dari setiap sumber, termasuk pengaturan terkelola.

Dalam opsi managedSettings Agent SDK, Claude Code mengabaikan daftar yang berisi entri, jadi teruskan daftar tersebut dalam opsi settings SDK sebagai gantinya. Lihat apa yang dilakukan daftar kosong dalam pengaturan induk.

allowManagedHooksOnly

Batasi eksekusi hook ke hooks yang digunakan organisasi Anda.

  • Scope: Managed
  • Type: Boolean
    • true: hanya hook terkelola yang berjalan, ditambah hook Agent SDK dan hooks dari plugin yang dipaksa diaktifkan oleh pengaturan terkelola Anda. Lihat Apa yang berjalan di bawah allowManagedHooksOnly
    • false: hooks dari setiap cakupan pengaturan dan plugin berjalan
  • Default: tidak diatur, jadi hooks dari setiap cakupan pengaturan dan plugin berjalan
{
  "allowManagedHooksOnly": true
}

Apa yang berjalan di bawah allowManagedHooksOnly

Ketika Anda menyetelnya ke true, Claude Code mengubah hook dan perintah seperti hook mana yang dimuat:

  • Hook terkelola dan SDK berjalan: hooks dari pengaturan terkelola dan hooks yang didaftarkan Agent SDK dalam proses
  • Hook plugin yang dipaksa diaktifkan berjalan: hooks dari plugin yang dipaksa diaktifkan oleh pengaturan terkelola Anda melalui enabledPlugins. Claude Code cocok dengan ID plugin@marketplace lengkap, jadi plugin dengan nama yang sama dari marketplace berbeda tetap diblokir. Ini memungkinkan Anda mendistribusikan hooks yang telah diverifikasi melalui marketplace organisasi sambil memblokir segalanya. Sebuah mod dalam plugin seperti itu dimuat hanya ketika dihitung sebagai milik organisasi Anda
  • Monitor dari plugin lain diblokir: monitor milik sebuah plugin tidak dimulai kecuali plugin tersebut dipaksa diaktifkan. Memerlukan Claude Code v2.1.310 atau lebih baru
  • Segalanya yang lain diblokir: user, project, dan local hooks, hooks dan mods dari plugin lain yang diinstal, dan hooks yang dideklarasikan dalam frontmatter agent. Mods yang tertanam dalam Claude Code terus berjalan. Untuk memblokir hanya mods pengguna, atur allowManagedModsOnly sebagai gantinya.
  • Plugin bersumber perintah dinonaktifkan: Claude Code juga menonaktifkan plugin dengan command source, termasuk plugin yang dipaksa diaktifkan dalam enabledPlugins terkelola, kecuali Anda menyetel disableCommandPluginSources ke false secara eksplisit
  • Perintah marketplace headersHelper diblokir: Claude Code juga memblokir marketplace headersHelper commands kecuali disableCommandPluginSources secara eksplisit diatur ke false, kecuali untuk marketplace yang dideklarasikan oleh pengaturan terkelola itu sendiri. Memerlukan Claude Code v2.1.238 atau lebih baru
  • Baris status dan file suggestion menyempit ke pengaturan terkelola: Claude Code membaca statusLine, fileSuggestion, dan subagentStatusLine dari pengaturan terkelola saja, mengikuti gerbang baris status dan file suggestion

Perintah /goal tidak dapat berjalan saat kunci ini diatur, karena bergantung pada hooks.

disableAllHooks

Matikan hooks, baris status kustom apa pun, dan perintah file suggestion kustom apa pun. Gunakan untuk mematikan semua ini secara sementara tanpa menghapusnya dari pengaturan Anda.

  • Scope: Any file. Hanya pengaturan terkelola yang dapat menonaktifkan hook terkelola.
  • Type: Boolean
    • true: Claude Code mematikan hooks, baris status kustom apa pun, dan perintah file suggestion kustom apa pun
    • false: hooks, baris status, dan perintah file suggestion berjalan
  • Default: tidak diatur, jadi hooks berjalan
{
  "disableAllHooks": true
}

Jangkauan tergantung pada file mana yang membawa kunci:

  • Dalam pengaturan terkelola: Claude Code menonaktifkan setiap hook yang dikonfigurasi, termasuk yang terkelola, dan terus menjalankan hooks yang didaftarkan Agent SDK dalam proses
  • Dalam opsi managedSettings Agent SDK: pada mesin tempat administrator men-deploy pengaturan terkelola, Claude Code mengabaikan kunci ini kecuali administrator mengizinkan host penyemat menambahkan kebijakan. Di tempat kunci ini berlaku, hook user, project, local, dan plugin berhenti, begitu pula hook apa pun dalam opsi settings SDK. Hook terkelola milik administrator, hook dari plugin yang dipaksa diaktifkan, dan callback hook SDK Anda terus berjalan. Memerlukan Claude Code v2.1.309 atau lebih baru.
  • Dalam file pengaturan lainnya: Claude Code menonaktifkan user, project, local, dan plugin hooks; hook terkelola, hook Agent SDK, dan hooks dari plugin yang dipaksa diaktifkan dalam enabledPlugins terkelola terus berjalan

Kunci ini juga menghentikan mods, yaitu plugin yang kodenya mendaftarkan hook:

  • Dalam pengaturan terkelola: mods di setiap plugin yang diinstal berhenti, termasuk milik organisasi Anda
  • Dalam file pengaturan lainnya: mods yang Anda instal berhenti, dan mods organisasi Anda terus berjalan

Mods yang tertanam dalam Claude Code terus berjalan dalam kedua kasus. Masing-masing memiliki tombol pengaturannya sendiri.

Menjaga hook Agent SDK tetap berjalan ketika pengaturan terkelola menyetel kunci ini memerlukan Claude Code v2.1.242 atau lebih baru.

Perintah /goal tidak dapat berjalan saat hooks dinonaktifkan, dan menu /hooks menampilkan pemberitahuan alih-alih hooks Anda.

Gerbang baris status dan file suggestion

Claude Code membuat dua keputusan untuk statusLine, fileSuggestion, dan subagentStatusLine, dalam urutan ini:

Di bawah penyempitan, Claude Code menjalankan nilai terkelola jika satu digunakan. Jika tidak, Claude Code melewati nilai Anda tanpa peringatan: baris status dinonaktifkan, dan @ autocomplete kembali ke file suggestion bawaan.

disableWorkflows

Matikan dynamic workflows dan perintah workflow bundel untuk semua orang yang dijangkau pengaturan Anda, seperti organisasi melalui pengaturan terkelola. Untuk menyalakan atau mematikan alur kerja hanya untuk diri sendiri, gunakan enableWorkflows sebagai gantinya, yang ditulis oleh toggle Dynamic workflows di /config ke pengaturan pengguna Anda.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code mematikan dynamic workflows dan perintah workflow bundel untuk semua orang yang dijangkau pengaturan Anda
    • false: sama dengan tidak diatur; apakah alur kerja aktif kemudian mengikuti enableWorkflows dan default paket Anda
  • Default: false
  • Per-session overrides: CLAUDE_CODE_DISABLE_WORKFLOWS mematikan alur kerja untuk satu sesi; mana pun dari keduanya yang mematikannya, yang lain tidak dapat menyalakannya kembali
{
  "disableWorkflows": true
}

enableWorkflows

Nyalakan atau matikan dynamic workflows untuk diri sendiri ketika default paket Anda bukan apa yang Anda inginkan. Muncul di /config sebagai Dynamic workflows, yang menulis kunci ini ke pengaturan pengguna Anda dan menghapusnya lagi ketika Anda beralih kembali ke default paket Anda. Untuk mematikan alur kerja untuk semua orang dari pengaturan terkelola, gunakan disableWorkflows sebagai gantinya.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code menyalakan dynamic workflows untuk Anda
    • false: Claude Code mematikan dynamic workflows untuk Anda
  • Default: tidak diatur, jadi alur kerja aktif kecuali Anda berada di paket Pro, di mana alur kerja dimatikan
  • Per-session overrides: CLAUDE_CODE_DISABLE_WORKFLOWS mematikan alur kerja untuk satu sesi, dan true di sini tidak dapat menyalakannya kembali saat diatur
{
  "enableWorkflows": true
}

disableWorkflows dan kebijakan alur kerja organisasi Anda juga diutamakan: enableWorkflows: true tidak dapat menyalakan alur kerja kembali saat sumber apa pun mematikan alur kerja. Claude Code menyembunyikan baris /config saat sumber selain pengaturan pengguna Anda menyetel enableWorkflows, atau menyetel disableWorkflows ke true.

hooks

Jalankan perintah, prompt, agent, permintaan HTTP, atau tool MCP Anda sendiri sebagai hooks pada titik dalam siklus hidup Claude Code, seperti sebelum panggilan tool atau ketika sesi dimulai; referensi hooks mencantumkan setiap acara, payload-nya, dan exit code-nya. Setiap acara memetakan ke daftar grup matcher, dan setiap grup mencantumkan handler yang akan dijalankan ketika matcher berlaku.

  • Scope: Any file. Hooks digabungkan di seluruh file daripada menggantikan satu sama lain, dan hooks dari pengaturan terkelola tidak dapat dihapus dari file lain.
  • Type: object yang dikunci oleh hook event; setiap nilai adalah array dari grup { "matcher", "hooks" } yang entri hooks-nya memiliki type dari "command", "prompt", "agent", "http", atau "mcp_tool"
  • Default: tidak diatur, jadi tidak ada hooks yang berjalan

Contoh ini menjalankan skrip sebelum setiap panggilan tool Bash:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          { "type": "command", "command": "~/.claude/hooks/check-bash.sh" }
        ]
      }
    ]
  }
}

Untuk setiap acara, pola matcher, dan bidang handler, lihat referensi hooks. Untuk mematikan hooks, lihat disableAllHooks; untuk membatasi hooks ke yang digunakan organisasi Anda, lihat allowManagedHooksOnly.

httpHookAllowedEnvVars

HTTP hook dapat menempatkan nilai environment variable ke dalam header permintaan, misalnya header Authorization: Bearer $HOOK_TOKEN, tetapi hanya untuk variabel yang dicantumkan hook dalam allowedEnvVars-nya sendiri. Kunci ini menetapkan batas luar pada daftar itu untuk setiap HTTP hook: hook dapat menggunakan variabel hanya jika baik allowedEnvVars-nya sendiri maupun kunci ini menamakannya. Gunakan untuk menghentikan hook dari membaca rahasia yang tidak seharusnya, bahkan ketika definisi hook memintanya.

  • Scope: Any file. Array digabungkan di seluruh file pengaturan.
  • Type: array nama environment variable
  • Default: tidak diatur, jadi daftar allowedEnvVars hook sendiri berlaku

Contoh ini membatasi interpolasi header ke MY_TOKEN dan HOOK_SECRET:

{
  "httpHookAllowedEnvVars": ["MY_TOKEN", "HOOK_SECRET"]
}

Allowlist berlaku untuk hooks dari setiap sumber, termasuk pengaturan terkelola.

Dalam opsi managedSettings Agent SDK, Claude Code mengabaikan daftar yang berisi entri, jadi teruskan daftar tersebut dalam opsi settings SDK sebagai gantinya. Lihat apa yang dilakukan daftar kosong dalam pengaturan induk.

workflowKeywordTriggerEnabled

Pilih apakah mengetik kata kunci ultracode dalam prompt memicu dynamic workflow. Atur ke false untuk mengetik kata tanpa memicu satu.

  • Scope: Any file. Muncul di /config sebagai Ultracode keyword trigger.
  • Type: Boolean
    • true: mengetik ultracode dalam prompt memicu dynamic workflow
    • false: Anda dapat mengetik kata tanpa memicu satu
  • Default: true
{
  "workflowKeywordTriggerEnabled": false
}

Pengaturan upaya ultracode, /workflows, dan perintah alur kerja yang disimpan tidak terpengaruh.

workflowSizeGuideline

Atur jumlah agent yang Claude targetkan dalam dynamic workflows yang ditulisnya. Claude Code mengirimkan nilai ke Claude sebagai saran, bukan batas yang diberlakukan: "small" meminta lebih sedikit dari 5 agent, "medium" lebih sedikit dari 10, dan "large" lebih sedikit dari 50. Pilih "small" ketika Anda ingin membatasi apa yang dihabiskan alur kerja.

  • Scope: Any file. Nilai di sana diutamakan daripada pilihan Dynamic workflow size di /config, yang disimpan Claude Code di ~/.claude.json, dan Claude Code menyembunyikan baris itu saat file pengaturan menyetel kunci.
  • Type: string, salah satu dari:
    • "unrestricted": tidak ada panduan, jadi Claude mengukur alur kerja ke tugas
    • "small": Claude menargetkan lebih sedikit dari 5 agent
    • "medium": Claude menargetkan lebih sedikit dari 10 agent
    • "large": Claude menargetkan lebih sedikit dari 50 agent
  • Default: "medium", atau "small" ketika Anda masuk di paket Pro dengan Claude Code v2.1.271 atau lebih baru
{
  "workflowSizeGuideline": "small"
}

Plugin dan skill

Aktifkan plugin, daftarkan marketplace, batasi sumber plugin yang diizinkan oleh organisasi, dan kendalikan skill mana yang dimuat. Untuk menginstal dan membangun plugin, lihat Plugin.

disableBundledSkills

Matikan skill dan alur kerja yang disertakan bersama Claude Code. Claude Code menghapus skill bawaan dan alur kerja sepenuhnya, sementara perintah bawaan seperti /init tetap dapat diketik tetapi disembunyikan dari model.

  • Cakupan: Any file
  • Tipe: Boolean
    • true: Claude Code menghapus skill bawaan dan alur kerja serta menyembunyikan perintah bawaan seperti /init dari model
    • false: skill bawaan dimuat
  • Default: tidak diatur, sehingga skill bawaan dimuat
  • Override per sesi: CLAUDE_CODE_DISABLE_BUNDLED_SKILLS yang diatur ke 1 mematikan skill bawaan untuk satu sesi; mana pun dari keduanya yang mematikannya, yang lain tidak dapat mengaktifkannya kembali
{
  "disableBundledSkills": true
}

Skill dari plugin, .claude/skills/, dan .claude/commands/ tidak terpengaruh. /doctor tetap dapat diketik seperti perintah bawaan; untuk menyembunyikannya, atur DISABLE_DOCTOR_COMMAND sebagai gantinya.

disableSkillShellExecution

Matikan eksekusi shell inline untuk blok !`...` dan ```! dalam skill dan perintah kustom dari sumber pengguna, proyek, plugin, atau direktori tambahan. Claude Code mengganti setiap perintah dengan [shell command execution disabled by policy] alih-alih menjalankannya.

  • Cakupan: Any file. Nilai true dalam pengaturan terkelola tidak dapat ditimpa oleh false di tempat lain.
  • Tipe: Boolean
    • true: Claude Code mengganti setiap perintah shell inline dengan [shell command execution disabled by policy] alih-alih menjalankannya
    • false: shell inline dijalankan
  • Default: tidak diatur, sehingga shell inline dijalankan
{
  "disableSkillShellExecution": true
}

Skill bawaan dan skill yang di-deploy melalui pengaturan terkelola tidak terpengaruh.

skillOverrides

Sembunyikan atau ciutkan sebuah skill tanpa mengedit SKILL.md-nya. Claude Code menerapkan nilai di bawah nama setiap skill pada daftar skill yang dilihat Claude dan pada pelengkapan otomatis / Anda.

  • Cakupan: Any file. Menu /skills menulis ke .claude/settings.local.json.
  • Tipe: objek yang memetakan nama skill ke salah satu dari:
    • "on": Claude melihat skill tersebut dan Anda dapat mengetik /name
    • "name-only": Claude melihat skill tersebut berdasarkan nama tanpa deskripsinya
    • "user-invocable-only": Claude tidak melihat skill tersebut, tetapi Anda tetap dapat mengetik /name
    • "off": Claude tidak melihat skill tersebut dan /name disembunyikan dari pelengkapan otomatis
  • Default: tidak diatur, sehingga setiap skill bernilai "on"

Contoh ini menampilkan legacy-context kepada Claude hanya berdasarkan nama dan menyembunyikan deploy dari Claude dan dari pelengkapan otomatis /:

{
  "skillOverrides": {
    "legacy-context": "name-only",
    "deploy": "off"
  }
}

Override tidak berlaku untuk skill plugin, yang Anda kelola melalui /plugin.

Dalam pengaturan terkelola dan file yang diteruskan dengan --settings, kunci pada alias skill bawaan, seperti checkup untuk /doctor, juga berlaku untuk skill tersebut; lihat bagaimana kunci alias digabungkan dengan kunci pada nama skill itu sendiri.

syncClaudeAiSkills

Matikan pengunduhan skill yang diaktifkan untuk akun claude.ai Anda. Claude Code mengunduhnya ke ~/.claude/skills/synced/ dalam sesi terminal tempat Anda masuk dengan akun claude.ai Anda, baik interaktif maupun non-interaktif, serta dalam sesi Cowork dan sesi cloud. Atur false untuk menghentikan pengunduhan tersebut dan berhenti memuat skill yang sudah disinkronkan. Claude Code hanya mematuhi false: true sama dengan tidak diatur dan tidak mengaktifkan sinkronisasi di tempat yang sebaliknya dimatikan.

  • Cakupan: User, local, or managed, dan file yang diteruskan dengan --settings. Sebuah repositori tidak dapat mematikannya untuk Anda.
  • Tipe: Boolean
    • false: Claude Code berhenti mengunduh skill yang disinkronkan dan berhenti memuat skill yang sudah ada di ~/.claude/skills/synced/. Dalam pengaturan pengguna atau pengaturan terkelola, Claude Code juga memindahkannya ke ~/.claude/skills/.trash/
    • true: sama dengan tidak diatur
  • Default: tidak diatur, sehingga sesi yang masuk dengan akun claude.ai Anda menyinkronkan skill Anda

Contoh ini mencegah sebuah mesin mengunduh skill akun dalam sesi apa pun:

{
  "syncClaudeAiSkills": false
}

syncClaudeAiPlugins

Matikan pengunduhan plugin yang diaktifkan untuk akun claude.ai Anda. Claude Code mengunduhnya ke ~/.claude/plugins/synced/ di awal sesi terminal tempat Anda masuk dengan akun claude.ai Anda dan dalam sesi Cowork, lalu memuat masing-masing sebagai <name>@synced. Atur false untuk menghentikan pengunduhan tersebut dan berhenti memuat plugin yang sudah disinkronkan. Claude Code hanya mematuhi false: true sama dengan tidak diatur dan tidak mengaktifkan sinkronisasi di tempat yang sebaliknya dimatikan. Memerlukan Claude Code v2.1.273 atau yang lebih baru.

  • Cakupan: User, local, or managed, dan file yang diteruskan dengan --settings. Sebuah repositori tidak dapat mematikannya untuk Anda.
  • Tipe: Boolean
    • false: Claude Code berhenti mengunduh plugin yang disinkronkan dan berhenti memuat plugin yang sudah ada di ~/.claude/plugins/synced/. Dalam pengaturan pengguna atau pengaturan terkelola, Claude Code juga memindahkannya ke ~/.claude/plugins/.trash/
    • true: sama dengan tidak diatur
  • Default: tidak diatur, sehingga sesi yang masuk dengan akun claude.ai Anda menyinkronkan plugin Anda

Untuk mematikan satu plugin yang disinkronkan alih-alih semuanya, atur "<name>@synced": false di enabledPlugins.

Contoh ini mencegah sebuah mesin mengunduh plugin akun dalam sesi apa pun:

{
  "syncClaudeAiPlugins": false
}

allowedChannelPlugins

Pilih plugin channel mana yang dapat mengirim pesan ke dalam sesi di organisasi Anda. Ketika Anda mengaturnya, Claude Code menggunakan daftar Anda sebagai pengganti allowlist default Anthropic; setiap entri menyebutkan sebuah plugin dan marketplace asalnya.

  • Cakupan: Managed
  • Tipe: array objek, masing-masing dengan string marketplace dan plugin. Sebuah entri dapat berupa string "plugin@marketplace" seperti "telegram@claude-plugins-official", yang diperlakukan Claude Code sebagai objek yang setara. Bentuk string memerlukan Claude Code v2.1.267 atau yang lebih baru; versi sebelumnya menolak seluruh nilai allowedChannelPlugins jika nilai tersebut berisi bentuk string
  • Default: tidak diatur, sehingga Claude Code menggunakan allowlist default Anthropic

Contoh ini mengaktifkan channel dan hanya mengizinkan plugin Telegram dari marketplace resmi Anthropic:

{
  "channelsEnabled": true,
  "allowedChannelPlugins": [
    { "marketplace": "claude-plugins-official", "plugin": "telegram" }
  ]
}

Array kosong memblokir setiap plugin channel.

Kunci ini berlaku setelah channel melewati gerbang channelsEnabled untuk akun tersebut: pada paket Team dan Enterprise, serta pada akun Console dengan pengaturan terkelola, itu berarti channelsEnabled: true. Lihat Membatasi plugin channel mana yang dapat berjalan.

blockedMarketplaces

Blokir sumber marketplace plugin untuk organisasi Anda. Claude Code memeriksa daftar blokir saat penambahan marketplace serta saat instalasi, pembaruan, penyegaran, dan pembaruan otomatis plugin, sehingga marketplace yang ditambahkan seseorang sebelum Anda menetapkan kebijakan juga tidak dapat digunakan untuk mengambil plugin. Sumber yang diblokir diperiksa sebelum pengunduhan, sehingga tidak pernah menyentuh sistem file.

Jika Anda mengatur kunci ini di konsol admin claude.ai, claude.ai juga menerapkannya ketika siapa pun di organisasi Anda menambahkan marketplace dari repositori git di claude.ai, seperti yang dijelaskan di Cara kerja pembatasan.

  • Cakupan: Managed
  • Tipe: array objek sumber marketplace, dalam bentuk yang sama dengan strictKnownMarketplaces
  • Default: tidak diatur, sehingga tidak ada marketplace yang diblokir

Contoh ini memblokir satu repositori GitHub sebagai sumber marketplace:

{
  "blockedMarketplaces": [
    { "source": "github", "repo": "untrusted/plugins" }
  ]
}

Entri github dapat menggunakan bentuk wildcard pemilik "owner/*" untuk memblokir setiap repositori di bawah pemilik GitHub tersebut, yang memerlukan Claude Code v2.1.223 atau yang lebih baru. Tambahkan { "source": "skills-dir" } untuk menghentikan Claude Code memuat plugin @skills-dir dari ~/.claude/skills/ maupun .claude/skills/ milik proyek, tanpa membatasi marketplace apa pun. Lihat Pembatasan marketplace terkelola.

channelsEnabled

Izinkan channel untuk organisasi Anda. Pada paket Team dan Enterprise claude.ai, Claude Code memblokir channel hingga Anda mengatur ini ke true. Untuk akun Anthropic Console yang melakukan autentikasi dengan kunci API, channel diizinkan secara default. Jika organisasi Anda men-deploy pengaturan terkelola, Claude Code juga memblokir channel pada akun tersebut hingga Anda mengatur kunci ini ke true.

  • Cakupan: Managed
  • Tipe: Boolean
    • true: Claude Code mengizinkan channel untuk organisasi Anda
    • false: sama dengan tidak diatur; apakah channel diblokir bergantung pada paket Anda, seperti yang dijelaskan pada Default
  • Default: tidak diatur; channel diblokir pada paket Team dan Enterprise serta pada akun Console dengan pengaturan terkelola, dan diizinkan pada paket Pro, Max, dan Ultra serta pada akun Console tanpa pengaturan terkelola
{
  "channelsEnabled": true
}

Untuk membatasi plugin mana yang dapat mendaftar sebagai channel setelah channel diaktifkan, atur allowedChannelPlugins. Lihat Kontrol enterprise.

disableCommandPluginSources

Blokir sumber plugin command, yang menginstal plugin dengan menjalankan perintah yang dideklarasikan marketplace pada mesin pengguna. Ketika Anda mengaturnya ke true, Claude Code tidak pernah menjalankan perintah tersebut, tidak menginstal atau memperbarui plugin bersumber command, dan berhenti memuat plugin yang sudah terinstal. Atur ke false untuk mengizinkannya secara eksplisit. Setiap kali memblokir sumber command, baik Anda mengaturnya ke true maupun membiarkannya tidak diatur di bawah allowManagedHooksOnly, kunci ini juga memblokir perintah headersHelper marketplace, kecuali untuk marketplace yang dideklarasikan oleh pengaturan terkelola itu sendiri. Memerlukan Claude Code v2.1.229 atau yang lebih baru, dan pemblokiran headersHelper memerlukan v2.1.238 atau yang lebih baru.

  • Cakupan: Managed
  • Tipe: Boolean
    • true: Claude Code tidak pernah menjalankan perintah yang dideklarasikan marketplace, tidak menginstal atau memperbarui plugin bersumber command, dan berhenti memuat plugin yang sudah terinstal
    • false: Claude Code mengizinkan plugin bersumber command secara eksplisit
  • Default: tidak diatur, sehingga Claude Code mengikuti allowManagedHooksOnly: organisasi yang membatasi eksekusi hook ke pengaturan terkelola juga mendapatkan sumber command yang dinonaktifkan. Aplikasi yang meneruskan disableAllHooks: true dalam opsi managedSettings milik Agent SDK tidak dengan sendirinya menonaktifkan sumber command.
{
  "disableCommandPluginSources": true
}

Memerlukan Claude Code v2.1.229 atau yang lebih baru.

pluginSuggestionMarketplaces

Sebutkan marketplace yang plugin-pluginnya dapat muncul sebagai saran instalasi kontekstual, dalam tips spinner dan disematkan di bagian atas tab Discover pada /plugin. Tip frontend-design pihak pertama bawaan tidak terpengaruh. Saran berasal dari deklarasi relevance setiap plugin dalam entri marketplace-nya.

  • Cakupan: Managed
  • Tipe: array nama marketplace
  • Default: tidak diatur, sehingga tidak ada saran yang dideklarasikan marketplace yang muncul
{
  "pluginSuggestionMarketplaces": ["acme-corp-plugins"]
}

Sebuah nama hanya berlaku ketika marketplace tersebut terdaftar di mesin dan sumber terdaftarnya juga dideklarasikan dalam pengaturan terkelola yang sama, baik sebagai entri extraKnownMarketplaces untuk nama tersebut maupun sebagai entri strictKnownMarketplaces. Claude Code mengabaikan marketplace yang didaftarkan dari sumber berbeda di bawah nama yang ada di allowlist. Marketplace resmi dikecualikan dari persyaratan sumber: cukup memasukkan namanya ke allowlist, karena nama tersebut hanya dapat didaftarkan dari sumber resmi Anthropic. Lihat Menyarankan plugin berdasarkan konteks.

pluginTrustMessage

Tambahkan teks milik organisasi Anda ke peringatan kepercayaan plugin yang ditampilkan Claude Code sebelum instalasi, misalnya untuk mengonfirmasi bahwa plugin dari marketplace internal Anda telah diperiksa.

  • Cakupan: Managed
  • Tipe: string
  • Default: tidak diatur, sehingga Claude Code hanya menampilkan peringatan standar
{
  "pluginTrustMessage": "All plugins from our marketplace are approved by IT"
}

strictKnownMarketplaces

Batasi sumber marketplace plugin mana yang dapat ditambahkan dan digunakan untuk menginstal plugin oleh orang-orang di organisasi Anda. Claude Code menerapkan allowlist saat penambahan marketplace serta saat instalasi, pembaruan, penyegaran, dan pembaruan otomatis plugin, sebelum operasi jaringan atau sistem file apa pun, sehingga marketplace yang ditambahkan seseorang sebelum Anda menetapkan kebijakan tidak dapat digunakan untuk mengambil plugin setelah sumbernya tidak lagi cocok. Pengguna yang diblokir melihat pesan galat yang menyebutkan kebijakan terkelola.

Jika Anda mengatur kunci ini di konsol admin claude.ai, claude.ai juga menerapkannya ketika siapa pun di organisasi Anda menambahkan marketplace dari repositori git di claude.ai, seperti yang dijelaskan di Cara kerja pembatasan.

  • Cakupan: Managed
  • Tipe: array objek sumber marketplace; lihat Jenis sumber yang diizinkan
  • Default: tidak diatur, sehingga pengguna dapat menambahkan marketplace apa pun. Array kosong merupakan penguncian total yang memblokir setiap sumber marketplace, termasuk marketplace resmi Anthropic

Contoh ini mengizinkan dua repositori GitHub, salah satunya disematkan ke ref v2.0, dan satu URL marketplace.json yang di-hosting:

{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "acme-corp/approved-plugins" },
    { "source": "github", "repo": "acme-corp/security-tools", "ref": "v2.0" },
    { "source": "url", "url": "https://plugins.example.com/marketplace.json" }
  ]
}

Anda juga dapat menulis kunci ini sebagai allowedMarketplaces; Alias kunci marketplace menjelaskan bagaimana Claude Code memperlakukan alias tersebut dan versi mana yang menerimanya. Kunci ini adalah gerbang kebijakan: kunci ini mengontrol apa yang boleh ditambahkan pengguna tetapi tidak mendaftarkan apa pun. Untuk membatasi dan mendaftarkan sebelumnya dalam satu file, lihat Menggabungkan dengan extraKnownMarketplaces. Untuk tampilan dari sisi pengguna, lihat Pembatasan marketplace terkelola.

Jenis sumber yang diizinkan

Setiap entri di bawah menunjukkan satu entri allowlist per jenis sumber beserta field yang diterimanya. Sebagian besar jenis dicocokkan secara persis; hostPattern dan pathPattern dicocokkan dengan regex, dan entri github dapat menggunakan wildcard pemilik.

Sumber Contoh entri Field
github { "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" } repo wajib; ref adalah branch atau tag; path adalah subdirektori
git { "source": "git", "url": "https://gitlab.example.com/tools/plugins.git", "ref": "production" } url wajib; ref dan path seperti pada github
url { "source": "url", "url": "https://plugins.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } } url wajib; headers menambahkan header HTTP untuk akses terautentikasi
file { "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" } path wajib, path absolut ke file marketplace.json
directory { "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" } path wajib, path absolut ke direktori yang berisi .claude-plugin/marketplace.json
hostPattern { "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" } hostPattern wajib, regex yang dicocokkan di mana saja dalam host marketplace; jangkarkan dengan ^ dan $ untuk mencocokkan seluruh host
pathPattern { "source": "pathPattern", "pathPattern": "^/opt/approved/" } pathPattern wajib, regex yang dicocokkan di mana saja dalam path sumber file dan directory; awali dengan ^ untuk menyematkan prefiks
skills-dir { "source": "skills-dir" } Tanpa field

Beberapa jenis sumber memiliki aturan di luar tabel:

  • url: marketplace URL hanya mengunduh file marketplace.json, dan Claude Code tidak mengambil file plugin berdasarkan path relatif dari server tersebut, sehingga plugin-pluginnya harus menggunakan sumber plugin selain path relatif, seperti URL arsip, yang dapat berada di host yang sama. Untuk plugin dengan path relatif, gunakan marketplace berbasis Git sebagai gantinya. Lihat Plugin dengan path relatif gagal di marketplace berbasis URL.

  • hostPattern: gunakan untuk mengizinkan setiap marketplace di server GitHub Enterprise atau GitLab internal tanpa mencantumkan setiap repositori. Claude Code mencocokkan sumber github terhadap github.com, mengambil hostname dari sumber url, dan mengambilnya dari sumber git bergantung pada bentuk URL git:

    • URL dengan skema, seperti https:// atau ssh://: hostname dalam URL.
    • Alamat SSH tanpa skema, dalam bentuk user@host:path milik git, seperti git@git.example.com:tools/plugins.git: host di antara @ dan :, yaitu host yang dihubungi git.
    • Bentuk lain tanpa skema: tidak ada host, sehingga tidak ada entri hostPattern pada strictKnownMarketplaces yang cocok dengannya. Untuk hostPattern pada blockedMarketplaces, Claude Code mengambil host dari kumpulan bentuk yang lebih luas, sehingga entri daftar blokir tetap dapat cocok dengan bentuk seperti itu. Sebelum v2.1.234, hostPattern pada strictKnownMarketplaces juga mencocokkan beberapa bentuk yang tidak diperlakukan git sebagai alamat SSH.

    Sumber file dan directory tidak memiliki host dan tidak pernah cocok dengan entri hostPattern.

  • pathPattern: gunakan untuk mengizinkan marketplace sistem file bersamaan dengan entri hostPattern untuk sumber jaringan. ".*" mengizinkan setiap path lokal; pola yang lebih sempit seperti "^/opt/approved/" membatasi ke sebuah direktori.

  • skills-dir: allowlist apa pun, bahkan yang kosong, menghentikan Claude Code memuat plugin @skills-dir dari ~/.claude/skills/ maupun .claude/skills/ milik proyek. Untuk tetap memuatnya, tambahkan entri { "source": "skills-dir" } dan biarkan strictPluginOnlyCustomization tidak diatur. Entri ini tidak memiliki arti di luar kunci ini dan blockedMarketplaces.

Wildcard pemilik

Entri github yang nilai repo-nya adalah "<owner>/*" mencocokkan setiap repositori di bawah pemilik GitHub tersebut. Wildcard pemilik memerlukan Claude Code v2.1.223 atau yang lebih baru dan hanya berfungsi di strictKnownMarketplaces dan blockedMarketplaces. Di tempat lain mana pun sumber github muncul, seperti extraKnownMarketplaces atau /plugin marketplace add, nilai repo harus menyebutkan satu repositori. Sebelum v2.1.223, Claude Code membandingkan entri secara harfiah, sehingga entri allowlist tidak cocok dengan repositori mana pun dan entri daftar blokir tidak memblokir apa pun; entri satu repositori diterapkan di setiap versi.

Entri ini mengizinkan repositori marketplace apa pun di organisasi acme-corp:

{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "acme-corp/*" }
  ]
}

Hanya seluruh posisi nama repositori yang dapat berupa wildcard. Claude Code mengabaikan entri seperti *, */plugins, atau acme-corp/tools-* karena tidak valid, sehingga entri tersebut tidak cocok dengan repositori mana pun.

Aturan pencocokan berbeda di antara kedua pengaturan:

Aturan strictKnownMarketplaces blockedMarketplaces
Penulisan sumber yang cocok Hanya bentuk owner/repo. URL git yang meng-clone repositori yang sama tidak cocok Penulisan apa pun, termasuk URL git yang di-resolve ke repositori github.com yang sama
Huruf besar/kecil pemilik Peka huruf besar/kecil Tidak peka huruf besar/kecil
ref Mengikuti aturan entri persis: entri dengan ref hanya cocok dengan sumber yang memiliki ref persis tersebut, dan entri tanpa ref hanya cocok dengan sumber yang tidak menentukan ref Entri tanpa ref memblokir semua ref dari repositori yang dicocokkannya
path Lebih longgar daripada aturan entri persis: entri dengan path mensyaratkan nilai persis tersebut, sementara entri tanpa path cocok dengan path apa pun di dalam repositori Entri tanpa path memblokir semua path dari repositori yang dicocokkannya

Pencocokan persis

Untuk setiap jenis sumber kecuali entri github dengan wildcard pemilik serta entri hostPattern dan pathPattern yang dicocokkan dengan regex, Claude Code mengizinkan penambahan oleh pengguna hanya ketika sumber marketplace cocok persis dengan sebuah entri. Untuk sumber berbasis git github dan git, pencocokan persis mencakup field opsional:

  • repo atau url harus cocok persis
  • Field ref harus cocok persis, atau keduanya harus tidak terdefinisi
  • Field path harus cocok persis, atau keduanya harus tidak terdefinisi

Misalnya, Claude Code memperlakukan setiap pasangan di bawah sebagai dua sumber yang berbeda:

  • { "source": "github", "repo": "acme-corp/plugins" } dan { "source": "github", "repo": "acme-corp/plugins", "ref": "main" }
  • { "source": "github", "repo": "acme-corp/plugins", "path": "marketplace" } dan { "source": "github", "repo": "acme-corp/plugins" }

Hanya mengizinkan marketplace resmi

Untuk mengizinkan marketplace resmi Anthropic dan tidak ada yang lain, cantumkan repositorinya:

{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "anthropics/claude-plugins-official" }
  ]
}

Dengan entri ini, Claude Code menjaga marketplace resmi yang sudah terdaftar tetap tersedia dan, pada mesin baru, mendaftarkan marketplace secara otomatis saat pertama kali Anda memulai sesi terminal interaktif. Pendaftaran otomatis paling sering terlewat pada:

  • Lingkungan non-interaktif yang berjalan sebelum sesi terminal interaktif pertama di mesin tersebut.
  • Mesin tempat Claude Code hanya pernah dijalankan melalui ekstensi VS Code.
  • Mesin tempat Claude Code sudah menjalankan sesi terminal interaktif di bawah kebijakan yang memblokir marketplace, seperti penguncian array kosong. Claude Code mencatat upaya yang diblokir dan tidak mencoba ulang setelah kebijakan berubah.

Pada mesin-mesin ini, tambahkan marketplace ke extraKnownMarketplaces dalam managed-settings.json yang sama agar Claude Code mendaftarkannya secara otomatis, atau jalankan claude plugin marketplace add anthropics/claude-plugins-official.

Menggabungkan dengan extraKnownMarketplaces

Kedua kunci melakukan tugas yang berbeda. Tabel ini membandingkannya:

Aspek strictKnownMarketplaces extraKnownMarketplaces
Tujuan Penegakan kebijakan organisasi Kemudahan tim
File pengaturan Hanya pengaturan terkelola File pengaturan apa pun
Perilaku Memblokir penambahan yang tidak ada di allowlist Mendaftarkan marketplace yang belum ada
Kapan diterapkan Sebelum operasi jaringan dan sistem file Segera dari pengaturan pengguna atau pengaturan terkelola; setelah dialog kepercayaan workspace untuk file milik repositori
Dapat ditimpa Tidak, prioritas tertinggi Ya, oleh pengaturan dengan prioritas lebih tinggi
Format sumber Objek sumber langsung Marketplace bernama dengan objek source bersarang

Untuk membatasi sekaligus mendaftarkan sebelumnya sebuah marketplace untuk semua pengguna, atur keduanya di managed-settings.json:

{
  "strictKnownMarketplaces": [
    { "source": "github", "repo": "acme-corp/plugins" }
  ],
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": { "source": "github", "repo": "acme-corp/plugins" }
    }
  }
}

Jika hanya strictKnownMarketplaces yang diatur, pengguna tetap dapat menambahkan marketplace yang diizinkan sendiri dengan /plugin marketplace add. Marketplace resmi Anthropic adalah satu-satunya yang didaftarkan Claude Code secara otomatis, dan hanya ketika allowlist mengizinkannya. Hanya mengizinkan marketplace resmi mencantumkan mesin-mesin yang terlewat.

strictPluginOnlyCustomization

Blokir skill, agent, hook, dan server MCP dari sumber pengguna dan proyek. Gabungkan dengan strictKnownMarketplaces untuk memilih marketplace mana yang dapat digunakan pengguna untuk menginstal plugin. Tambahkan disableSideloadFlags untuk menolak flag CLI yang melakukan sideload plugin, agent, dan server MCP untuk satu kali jalan.

  • Cakupan: Managed
  • Tipe: true untuk mengunci semuanya, atau array yang menyebutkan yang akan dikunci, dari "skills", "agents", "hooks", dan "mcp"
  • Default: tidak diatur, sehingga tidak ada yang dikunci

Contoh ini mengunci skill dan hook serta membiarkan agent dan server MCP tidak terkunci:

{
  "strictPluginOnlyCustomization": ["skills", "hooks"]
}

Jika Anda mengunci surface apa pun, Claude Code juga berhenti memuat plugin direktori skill, yaitu folder plugin yang disimpan pengguna di bawah ~/.claude/skills/ atau .claude/skills/. Pengguna menempatkan folder tersebut sendiri alih-alih menginstalnya dari marketplace, sehingga Claude Code memperlakukannya sebagai kustomisasi pengguna di bawah pengaturan ini.

Empat entri sub-kunci di bawah mencantumkan apa lagi yang diblokir oleh setiap surface dan apa yang tetap dimuat. Claude Code mengabaikan nama surface yang tidak dikenalinya alih-alih menggagalkan file pengaturan, sehingga Anda dapat menambahkan nama surface baru sebelum setiap klien diperbarui.

strictPluginOnlyCustomization.skills

Kunci surface skills. Claude Code berhenti memuat skill dari ~/.claude/skills/ dan .claude/skills/, perintah kustom dari ~/.claude/commands/ dan .claude/commands/, skill dan perintah di bawah direktori --add-dir, serta skill yang disinkronkan dari akun claude.ai Anda. Claude Code tetap memuat skill bawaan, skill di direktori kebijakan terkelola, dan skill dari plugin selain plugin direktori skill.

{
  "strictPluginOnlyCustomization": ["skills"]
}

strictPluginOnlyCustomization.agents

Kunci surface agents. Claude Code berhenti memuat agent dari ~/.claude/agents/, .claude/agents/, dan direktori --add-dir. Claude Code tetap memuat agent bawaan, agent di direktori kebijakan terkelola, dan agent dari plugin selain plugin direktori skill.

{
  "strictPluginOnlyCustomization": ["agents"]
}

strictPluginOnlyCustomization.hooks

Kunci surface hooks:

  • Berhenti dijalankan:
    • Hook dari settings.json pengguna, proyek, dan lokal
    • Hook frontmatter dalam skill, perintah kustom, dan agent, dari sumber yang akan diblokir oleh penguncian skills atau agents
  • Tetap dijalankan: hook dalam pengaturan terkelola, dan hook dari plugin selain plugin direktori skill

Skill, perintah kustom, dan agent yang hook frontmatter-nya berhenti dijalankan tetap dimuat selama surface mereka sendiri tidak dikunci.

Skill pribadi atau proyek yang mendeklarasikan hooks dalam frontmatter-nya juga kehilangan pra-persetujuan allowed-tools, sehingga pengguna Anda mendapatkan permintaan izin untuk tool yang dicantumkan field tersebut. Ketika skill seperti itu berjalan dalam subagent melalui context: fork, skill tersebut tetap mempertahankan pra-persetujuannya. Skill yang tidak mendeklarasikan hooks juga tetap mempertahankan pra-persetujuannya.

{
  "strictPluginOnlyCustomization": ["hooks"]
}

strictPluginOnlyCustomization.mcp

Kunci surface mcp. Claude Code berhenti memuat server MCP dari ~/.claude.json dan .mcp.json. Claude Code tetap memuat server managed-mcp.json, server dari managedMcpServers, dan server MCP dari plugin selain plugin direktori skill.

{
  "strictPluginOnlyCustomization": ["mcp"]
}

enabledPlugins

Aktifkan atau matikan plugin secara individual, dengan kunci plugin-name@marketplace-name. Plugin tanpa entri di cakupan mana pun kembali ke nilai defaultEnabled-nya. Ketika Anda mengaktifkan atau menonaktifkan plugin dengan /plugin atau claude plugin enable, Claude Code menulis kunci ini untuk Anda.

  • Cakupan: Any file
  • Tipe: objek yang memetakan plugin-name@marketplace-name ke Boolean
  • Default: tidak diatur, sehingga setiap plugin mengikuti nilai defaultEnabled-nya

Contoh ini mengaktifkan dua plugin dari marketplace team-tools dan menonaktifkan satu plugin dari personal:

{
  "enabledPlugins": {
    "code-formatter@team-tools": true,
    "deployment-tools@team-tools": true,
    "experimental-features@personal": false
  }
}

Setiap cakupan memiliki tujuan yang berbeda:

  • Pengaturan pengguna: preferensi plugin pribadi Anda
  • Pengaturan proyek: plugin yang diaktifkan untuk semua orang di repositori. Ini tidak menginstalnya, sehingga setiap pengguna menginstalnya.
  • Pengaturan lokal: override per mesin, di-gitignore ketika Claude Code menyimpan pengaturan di sana
  • Pengaturan terkelola: kebijakan seluruh organisasi. Plugin yang diatur ke false di sini diblokir dari instalasi di setiap cakupan dan disembunyikan dari marketplace

Pengaturan proyek memiliki prioritas lebih tinggi daripada pengaturan pengguna, sehingga mengatur plugin ke false di ~/.claude/settings.json tidak menonaktifkan plugin yang diaktifkan oleh .claude/settings.json milik proyek. Untuk menolak plugin yang diaktifkan proyek di mesin Anda, atur ke false di .claude/settings.local.json sebagai gantinya. Plugin yang diaktifkan secara paksa oleh pengaturan terkelola tidak dapat dinonaktifkan dengan cara ini, karena pengaturan terkelola menimpa pengaturan lokal.

extraKnownMarketplaces

Daftarkan marketplace plugin tambahan berdasarkan nama, sehingga orang yang membuka repositori, atau semua orang yang dijangkau pengaturan terkelola Anda, mendapatkan marketplace tersebut tanpa menambahkannya sendiri. Claude Code mendaftarkan setiap marketplace yang belum dikenalinya. Apakah plugin dari marketplace tersebut yang disebutkan oleh enabledPlugins terinstal bergantung pada sumber plugin dan file mana yang mengaktifkannya; Diaktifkan di pengaturan proyek tetapi tidak terinstal berisi aturannya.

  • Cakupan: Any file. Claude Code hanya mematuhi entri dalam .claude/settings.json atau .claude/settings.local.json milik repositori setelah Anda menerima dialog kepercayaan workspace untuk folder tersebut; di folder yang belum Anda percayai, termasuk saat menjalankan -p di sana, Claude Code mengabaikannya tanpa pesan.
  • Tipe: objek yang memetakan nama marketplace ke objek dengan objek source dan Boolean autoUpdate opsional
  • Default: tidak diatur

Contoh ini mendaftarkan marketplace GitHub dan marketplace dari URL git yang di-hosting sendiri:

{
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": {
        "source": "github",
        "repo": "acme-corp/claude-plugins"
      }
    },
    "security-plugins": {
      "source": {
        "source": "git",
        "url": "https://git.example.com/security/plugins.git"
      }
    }
  }
}

Apa yang berjalan sebelum Anda memercayai folder membandingkan gerbang kepercayaan dengan konten lain yang dapat disediakan repositori. Anda juga dapat menulis kunci ini sebagai additionalMarketplaces; lihat Alias kunci marketplace.

Atur "autoUpdate": true bersama source agar Claude Code menyegarkan marketplace tersebut dan memperbarui plugin yang terinstal di latar belakang setelah startup. Jika dihilangkan, claude-plugins-official dan sebagian besar marketplace resmi Anthropic lainnya default ke true, dan marketplace pihak ketiga default ke false. Lihat Mengonfigurasi pembaruan otomatis.

Ketika lebih dari satu file pengaturan mendefinisikan entri marketplace dengan nama yang sama, Claude Code menggunakan entri dari file dengan prioritas tertinggi secara utuh. Entri tersebut menggantikan entri dengan prioritas lebih rendah dan tidak mewarisi field-nya sama sekali, sehingga definisi ulang tidak dapat menggabungkan kredensial source.headers dari satu file dengan URL yang dikendalikan file lain. Sebelum v2.1.228, Claude Code menggabungkan entri bernama sama field demi field, sehingga entri dalam file dengan prioritas lebih tinggi dapat mewarisi field yang tidak diaturnya, termasuk headers milik file lain.

Jenis sumber marketplace

Objek source mengambil salah satu bentuk berikut:

  • github: repositori GitHub, dengan repo
  • git: URL git apa pun, dengan url
  • url: URL langsung ke file marketplace.json, dengan url serta headers opsional dan headersHelper untuk akses terautentikasi. headersHelper menyebutkan perintah yang mencetak header yang nilainya terlalu singkat masa berlakunya untuk dicantumkan di headers, dan memerlukan Claude Code v2.1.238 atau yang lebih baru
  • file: path lokal ke file marketplace.json, dengan path
  • directory: path sistem file lokal, dengan path. Gunakan untuk pengembangan, atau untuk marketplace yang di-deploy organisasi Anda ke setiap mesin.
  • settings: marketplace inline yang dideklarasikan langsung di file pengaturan tanpa repositori yang di-hosting, dengan name dan plugins

Jenis sumber git berfungsi dengan layanan hosting git apa pun, termasuk GitLab dan Bitbucket yang di-hosting sendiri. Claude Code meng-clone repositori dengan autentikasi yang sama dengan yang akan digunakan git clone di mesin tersebut: credential helper atau kunci SSH yang dikonfigurasi. Token penyedia seperti GITHUB_TOKEN berlaku melalui credential helper yang membacanya. Lihat Repositori privat untuk detail penyiapan.

Untuk sumber github dan git, Claude Code tidak pernah mengunduh konten Git LFS ketika meng-clone repositori marketplace untuk menambahkan atau memperbaruinya. File yang dilacak LFS di-checkout sebagai file pointer, dan output penambahan atau pembaruan melaporkan jumlahnya.

Field skipLfs di dalam objek source diterima dan tidak berpengaruh. Sebelum v2.1.274, Claude Code mengunduh konten LFS kecuali Anda mengatur "skipLfs": true.

Untuk sumber url, atur headersHelper di dalam objek source ketika kredensial di headers kedaluwarsa dan sebuah perintah harus menghasilkan kredensial baru. Memerlukan Claude Code v2.1.238 atau yang lebih baru. Untuk apa yang harus dicetak perintah tersebut dan di mana Claude Code menjalankannya, lihat Menulis perintah headersHelper, dan untuk kasus di mana Claude Code tidak menjalankannya, lihat Kapan Claude Code melewati perintah headersHelper. Setelah Anda mengatur headersHelper pada URL marketplace https://, Claude Code menjalankan perintah tersebut pada dua titik, menggunakan kembali output dari satu kali jalan hingga 60 detik:

  • Sebelum setiap pengambilan marketplace.json milik marketplace tersebut, termasuk penyegaran berikutnya. Claude Code mengirim header yang dicetak bersama pengambilan tersebut.
  • Sebelum setiap pengunduhan arsip plugin pada origin URL marketplace, yaitu skema, host, dan port yang sama. Claude Code mengirim output bersama pengunduhan tersebut, dan tidak ada pengunduhan lain yang mendapatkan header tersebut.

Claude Code mengabaikan headersHelper apa pun yang diatur dalam .claude/settings.json atau .claude/settings.local.json dari direktori yang Anda tambahkan dengan --add-dir, baik pada sumber url maupun pada entri plugin inline, dan hanya mengirim headers tetap yang diatur dalam file tersebut. Bagaimana pengguna menerima perintah headersHelper membahas file pengaturan lainnya.

Plugin yang dicantumkan dalam sumber settings harus merujuk ke sumber eksternal seperti GitHub atau npm, dan name harus cocok dengan kunci marketplace. Anda tetap mengaktifkan setiap plugin secara terpisah di enabledPlugins. Contoh ini mendeklarasikan satu plugin secara inline:

{
  "extraKnownMarketplaces": {
    "team-tools": {
      "source": {
        "source": "settings",
        "name": "team-tools",
        "plugins": [
          {
            "name": "code-formatter",
            "source": {
              "source": "github",
              "repo": "acme-corp/code-formatter"
            }
          }
        ]
      }
    }
  }
}

Entri plugin di bawah source: 'settings' yang source-nya sendiri berupa archive dapat mengatur headers untuk pengunduhan arsip. Jika nilai yang akan Anda masukkan ke headers berumur pendek, seperti token yang dibuat registri Anda berdasarkan permintaan, atur perintah headersHelper sebagai gantinya. Sebuah entri dapat mengatur keduanya. Kedua field memerlukan Claude Code v2.1.238 atau yang lebih baru.

Claude Code mengirim headers milik entri, dan apa pun yang dicetak perintah tersebut, bersama pengunduhan arsip plugin tersebut dan tidak dengan pengunduhan lain. Claude Code hanya menjalankan perintah tersebut ketika pengguna menginstal atau memperbarui plugin tersebut secara tersendiri. Tiga aturan lebih lanjut bergantung pada file mana yang memuat entri tersebut:

  • strict: tidak seperti entri dalam marketplace.json milik marketplace, entri dalam pengaturan tidak memerlukan "strict": false, karena file pengaturan tidak membawa field manifest untuk di-inline. Lihat Mode strict.
  • Kepercayaan folder: untuk entri dalam .claude/settings.json atau .claude/settings.local.json milik proyek, Claude Code hanya menjalankan perintah tersebut setelah pengguna juga memercayai folder tersebut.
  • Filter header: Claude Code membuang nama header perutean permintaan dan identitas klien dari entri dalam .claude/settings.json atau .claude/settings.local.json milik proyek, karena repositori dapat menyediakan file-file tersebut. Claude Code menerapkan filter yang sama pada entri katalog dan pada entri dalam pengaturan direktori --add-dir, dan tidak menerapkan filter pada entri di pengaturan pengguna Anda, file --settings, atau pengaturan terkelola.

Alias kunci marketplace

Pada Claude Code v2.1.232 atau yang lebih baru, Anda dapat menulis extraKnownMarketplaces sebagai additionalMarketplaces dan strictKnownMarketplaces sebagai allowedMarketplaces. Claude Code memperlakukan setiap alias sebagai berikut:

  • Versi sebelumnya mengabaikan alias, jadi pertahankan penulisan kanonis dalam file yang juga dibaca oleh versi lama, seperti file pengaturan terkelola untuk armada dengan versi Claude Code yang beragam.
  • Dalam file pengaturan apa pun yang menerima kunci kanonis, Claude Code membaca alias persis seperti membaca kunci kanonis.
  • Claude Code dapat menulis ulang additionalMarketplaces menjadi extraKnownMarketplaces ketika memperbarui file.
  • Jika Anda mengatur kedua penulisan dalam satu file, Claude Code menggunakan nilai kanonis dan mengabaikan alias.

pluginConfigs

Simpan jawaban non-sensitif yang Anda berikan pada dialog konfigurasi userConfig milik plugin, dengan kunci ID plugin. Claude Code menulis kunci ini ke pengaturan pengguna Anda ketika Anda mengisi dialog, sehingga Anda tidak perlu mengeditnya secara manual. Claude Code menyimpan opsi sensitif di macOS Keychain sebagai gantinya, dengan fallback ke ~/.claude/.credentials.json ketika Keychain menolak penulisan; pada platform tanpa keychain yang didukung, Claude Code menyimpannya di ~/.claude/.credentials.json.

  • Cakupan: User or managed
  • Tipe: objek yang memetakan ID plugin ke objek dengan field options, yang memetakan setiap nama opsi ke string, angka, Boolean, atau array string, serta field mcpServers opsional yang menyimpan nilai konfigurasi pengguna per server dalam bentuk yang sama
  • Default: tidak diatur

Contoh ini menyimpan opsi api_endpoint untuk plugin deployer dari acme-tools:

{
  "pluginConfigs": {
    "deployer@acme-tools": {
      "options": {
        "api_endpoint": "https://api.example.com"
      }
    }
  }
}

Plugin bawaan menyimpan opsinya di bawah kunci yang sama dengan sufiks @builtin. Misalnya, pengaturan Project instructions yang mengontrol apakah Claude Code membaca file AGENTS.md adalah pluginConfigs["cc-plugin-agents-md@builtin"].options.instructionFiles. Sebelum v2.1.285, ID plugin tersebut adalah agents-md@builtin. Versi yang lebih baru membaca entri di bawah salah satu ID.

Claude Code mengabaikan entri proyek dan lokal karena Claude Code menyubstitusikan nilai-nilai ini ke dalam konfigurasi hook, MCP, dan LSP plugin, dan repositori hasil clone tidak boleh dapat menyediakannya.

prependPlugins

Cantumkan plugin terkelola yang mod-nya berjalan sebelum setiap mod yang diinstal pengguna, sesuai urutan yang dicantumkan. Ketika Anda mengatur kunci ini dalam pengaturan terkelola, sebutkan sec-default@builtin dalam daftar untuk mempertahankan penjaga bawaan. Dalam pengaturan terkelola, Claude Code melewati id yang plugin-nya tidak terhitung sebagai milik organisasi Anda. Lihat Menginstal mod organisasi Anda dan mengatur urutannya untuk syarat-syarat tersebut dan untuk cara kedua kunci pengurutan bekerja bersama.

  • Cakupan: User or managed. Claude Code membaca kunci ini dari pengaturan terkelola. Claude Code membaca kunci ini dari pengaturan pengguna hanya di mesin tanpa pengaturan terkelola atau file managed-mcp.json, dalam sesi yang kredensialnya bukan /login Team atau Enterprise. Claude Code mengabaikan kunci ini dalam pengaturan proyek dan lokal serta dalam file --settings.
  • Tipe: array string plugin-name@marketplace-name
  • Default: tidak diatur
{
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": { "source": "directory", "path": "/opt/acme/claude-plugins" }
    }
  },
  "enabledPlugins": { "acme-guard@acme-tools": true },
  "prependPlugins": ["acme-guard@acme-tools", "sec-default@builtin"]
}

appendPlugins

Cantumkan plugin terkelola yang mod-nya berjalan setelah setiap mod yang diinstal pengguna, sesuai urutan yang dicantumkan. Id yang dicantumkan di prependPlugins dan appendPlugins sekaligus akan ditempatkan di awal. Dalam pengaturan terkelola, Claude Code melewati id yang plugin-nya tidak terhitung sebagai milik organisasi Anda.

  • Cakupan: User or managed. Claude Code membaca kunci ini dari pengaturan terkelola. Claude Code membaca kunci ini dari pengaturan pengguna hanya di mesin tanpa pengaturan terkelola atau file managed-mcp.json, dalam sesi yang kredensialnya bukan /login Team atau Enterprise. Claude Code mengabaikan kunci ini dalam pengaturan proyek dan lokal serta dalam file --settings.
  • Tipe: array string plugin-name@marketplace-name
  • Default: tidak diatur
{
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": { "source": "directory", "path": "/opt/acme/claude-plugins" }
    }
  },
  "enabledPlugins": { "acme-audit@acme-tools": true },
  "appendPlugins": ["acme-audit@acme-tools"]
}

MCP

Kontrol server MCP mana yang Claude Code terhubung dan mana yang diizinkan organisasi. Lihat Terhubung ke alat eksternal dengan MCP dan Konfigurasi MCP yang dikelola.

allowAllClaudeAiMcps

Muat konektor claude.ai yang Claude Code ambil sendiri bersama dengan managed-mcp.json yang diterapkan. Tanpa kunci ini, managed-mcp.json mengambil kontrol eksklusif atas server MCP dan menekan konektor tersebut.

  • Scope: Managed. Pengguna tidak dapat mengaktifkan kembali konektor yang kontrol eksklusif tekan.
  • Type: Boolean
    • true: Claude Code memuat konektor claude.ai bersama dengan managed-mcp.json yang diterapkan
    • false: managed-mcp.json yang diterapkan mengambil kontrol eksklusif atas server MCP dan menekan konektor claude.ai yang Claude Code ambil sendiri
  • Default: false, jadi managed-mcp.json yang diterapkan menekan konektor claude.ai yang Claude Code ambil sendiri
{
  "allowAllClaudeAiMcps": true
}

allowedMcpServers dan deniedMcpServers masih berlaku untuk konektor yang kunci ini muat. Konektor yang dikirimkan ke sesi cloud yang hostnya membawa managed-mcp.json, seperti runner yang di-host sendiri, tetap ditekan. Lihat Izinkan konektor claude.ai bersama dengan set yang dikelola.

allowClaudeInChromeWithManagedMcp

Biarkan server Claude di Chrome bawaan berjalan bersama dengan managed-mcp.json yang diterapkan. Tanpa kunci ini, managed-mcp.json yang diterapkan memblokir Claude di Chrome dalam sesi terminal. Memerlukan Claude Code v2.1.282 atau lebih baru.

  • Scope: Managed, dari pengaturan yang dikelola perangkat itu sendiri saja: plist yang diterapkan MDM atau kunci registri HKLM, atau file managed-settings.json sistem. Claude Code mengabaikannya dalam pengaturan yang dikelola server, dalam registri HKCU yang dapat ditulis pengguna, dan dalam pengaturan pengguna atau proyek.
  • Type: Boolean
    • true: server Claude di Chrome bawaan dapat berjalan bersama dengan managed-mcp.json yang diterapkan
    • false: managed-mcp.json yang diterapkan memblokir Claude di Chrome dalam sesi terminal
  • Default: false, jadi managed-mcp.json yang diterapkan memblokir Claude di Chrome dalam sesi terminal
{
  "allowClaudeInChromeWithManagedMcp": true
}

Entri deniedMcpServers untuk claude-in-chrome masih memblokir server dengan kunci ini aktif. Lihat Izinkan Claude di Chrome bersama dengan set yang dikelola.

allowedMcpServers

Daftar putih server MCP yang dapat ditambahkan orang. Claude Code memblokir server apa pun yang tidak cocok dengan entri di mana pun didefinisikan, termasuk server plugin, server yang dilewatkan dengan --mcp-config, dan server dari claude.ai.

Server bawaan seperti Claude di Chrome, server ide yang Claude Code terhubung dalam VS Code atau JetBrains IDE yang sedang berjalan, dan server yang CLI sendiri konfigurasi dikecualikan dari daftar putih, dan daftar hitam masih berlaku untuk mereka. Pada Claude Code v2.1.268 atau lebih baru, alat Slack sesi Claude Tag juga dikecualikan dari daftar putih, dan daftar hitam masih berlaku untuk mereka. Server type: "sdk" dalam proses dikecualikan dari kedua daftar; aplikasi yang memulai sesi mendaftarkan mereka.

Server yang disediakan organisasi Anda juga dikecualikan dari allowlist, dan denylist masih berlaku untuk mereka. Pengecualian mencakup setiap entri managedMcpServers, dan entri managed-mcp.json apa pun yang nilainya tidak menggunakan ekspansi ${VAR} di luar env. Lihat Bagaimana server dievaluasi untuk urutan pemeriksaan lengkap. Sebelum v2.1.259, server dari managed-mcp.json juga harus cocok.

  • Scope: Any file. Entri dari setiap file bergabung menjadi satu daftar putih kecuali allowManagedMcpServersOnly diatur. Terapkan di pengaturan yang dikelola untuk memberlakukannya.
  • Type: array objek, masing-masing dengan tepat satu kunci. Gunakan serverName, string terbatas pada huruf, angka, tanda hubung, dan garis bawah; serverCommand, array perintah dan argumennya yang dicocokkan persis; atau serverUrl, pola URL dengan wildcard *
  • Default: tidak diatur, jadi setiap server diizinkan; array kosong memblokir setiap server yang ditambahkan pengguna

Contoh ini hanya mengizinkan server stdio yang perintah npx yang terdaftar mulai:

{
  "allowedMcpServers": [
    { "serverCommand": ["npx", "-y", "@modelcontextprotocol/server-filesystem"] }
  ]
}

Entri deniedMcpServers memiliki prioritas, jadi server di kedua daftar diblokir. Setelah daftar berisi entri serverCommand apa pun, server stdio harus cocok dengan entri serverCommand, dan setelah berisi entri serverUrl apa pun, server jarak jauh harus cocok dengan entri serverUrl: kecocokan serverName tidak lagi mengakui jenis server itu. Lihat Kontrol berbasis kebijakan dengan daftar putih dan daftar hitam.

allowManagedMcpServersOnly

Buat daftar putih yang dikelola satu-satunya yang berlaku. Claude Code kemudian membaca allowedMcpServers dari pengaturan yang dikelola saja dan mengabaikan daftar putih di pengaturan pengguna, proyek, dan lokal; deniedMcpServers masih bergabung dari setiap cakupan pengaturan, jadi pengguna masih dapat memblokir server untuk diri mereka sendiri. Administrator menetapkannya sehingga pengaturan pengguna mereka sendiri tidak dapat memperluas apa yang daftar putih yang dikelola izinkan.

  • Scope: Managed
  • Type: Boolean
    • true: Claude Code membaca allowedMcpServers dari pengaturan yang dikelola saja dan mengabaikan daftar putih di pengaturan pengguna, proyek, dan lokal
    • false: daftar putih dari setiap cakupan pengaturan bergabung
  • Default: false, jadi daftar putih dari setiap cakupan pengaturan bergabung

Contoh ini mengunci daftar putih ke pengaturan yang dikelola dan hanya mengizinkan server bernama github:

{
  "allowManagedMcpServersOnly": true,
  "allowedMcpServers": [
    { "serverName": "github" }
  ]
}

Pengguna masih dapat menambahkan server MCP mereka sendiri; hanya server yang cocok dengan daftar putih yang dikelola yang dimuat. Lihat Batasi daftar putih ke pengaturan yang dikelola saja.

deniedMcpServers

Blokir server MCP tertentu. Claude Code menolak untuk memuat server yang cocok di mana pun didefinisikan, termasuk server plugin, server yang dilewatkan dengan --mcp-config, server dari managed-mcp.json, server dari managedMcpServers, dan konektor claude.ai yang diambilnya sendiri. Server type: "sdk" dalam proses dikecualikan; aplikasi yang memulai sesi mendaftarkan mereka.

  • Scope: Any file. Entri dari setiap file bergabung menjadi satu daftar hitam, dan allowManagedMcpServersOnly tidak mengubah itu. Terapkan di pengaturan yang dikelola untuk memberlakukannya.
  • Type: array objek, masing-masing dengan tepat satu kunci: serverName, string, jadi nama tampilan konektor claude.ai seperti "claude.ai Slack" berfungsi; serverCommand, array perintah dan argumennya yang cocok persis; atau serverUrl, pola URL dengan wildcard *
  • Default: tidak diatur, jadi tidak ada server yang diblokir; array kosong juga tidak memblokir apa pun
{
  "deniedMcpServers": [
    { "serverName": "filesystem" }
  ]
}

Daftar hitam memiliki prioritas atas allowedMcpServers, jadi server di kedua daftar diblokir. Lihat Kontrol berbasis kebijakan dengan daftar putih dan daftar hitam.

disableClaudeAiConnectors

Matikan konektor MCP claude.ai yang Claude Code ambil sendiri, sehingga tidak mengambil atau menghubungkan mereka. true di file pengaturan apa pun berlaku: file .claude/settings.json proyek yang diperiksa dapat menolak repositori dari konektor tersebut, tetapi false tingkat proyek tidak dapat mengganti true tingkat pengguna atau yang dikelola.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code tidak mengambil atau menghubungkan konektor tersebut
    • false: sama dengan tidak diatur; Claude Code mengambil konektor Anda kecuali file pengaturan lain atau ENABLE_CLAUDEAI_MCP_SERVERS mematikannya
  • Default: false, jadi Claude Code mengambil konektor Anda
  • Per-session overrides: ENABLE_CLAUDEAI_MCP_SERVERS diatur ke false mematikan konektor untuk satu sesi; mana pun dari keduanya yang mematikannya, yang lain tidak dapat menghidupkannya kembali
{
  "disableClaudeAiConnectors": true
}

Server yang Anda lewatkan secara eksplisit dengan --mcp-config tidak terpengaruh. Untuk memblokir konektor individual alih-alih semuanya, gunakan deniedMcpServers. Lihat Nonaktifkan konektor claude.ai.

disabledMcpjsonServers

Tolak server tertentu yang didefinisikan dalam file .mcp.json proyek sehingga Claude Code tidak pernah menghubungkannya atau meminta Anda menyetujuinya. Penolakan di file pengaturan apa pun berlaku, termasuk .claude/settings.json proyek yang diperiksa ke dalam repositori.

  • Scope: Any file
  • Type: array string, nama server seperti yang muncul di .mcp.json
  • Default: tidak diatur
{
  "disabledMcpjsonServers": ["filesystem"]
}

Claude Code menulis kunci ini ke .claude/settings.local.json ketika Anda menolak server di dialog persetujuan. claude mcp get <name> menampilkan server yang ditolak sebagai ✘ Rejected (see disabledMcpjsonServers in settings). Penolakan memiliki prioritas atas enabledMcpjsonServers dan enableAllProjectMcpServers.

enableAllProjectMcpServers

Setujui setiap server MCP yang didefinisikan dalam file .mcp.json proyek tanpa prompt. Claude Code menulis kunci ini ke .claude/settings.local.json ketika Anda memilih untuk menyetujui semua server di dialog persetujuan.

  • Scope: Any file. Di folder yang dialog kepercayaan Anda belum terima, Claude Code menghormatinya dari pengaturan pengguna, pengaturan yang dikelola, dan --settings dan mengabaikannya di file proyek bersama, baik dalam sesi maupun untuk claude mcp list dan claude mcp get; Persetujuan server proyek dan kepercayaan ruang kerja mengatakan kapan .claude/settings.local.json yang tidak dilacak dihitung juga.
  • Type: Boolean
    • true: Claude Code menyetujui setiap server MCP yang didefinisikan dalam file .mcp.json proyek tanpa prompt
    • false: Claude Code meminta Anda menyetujui setiap server. Di folder yang dipercaya, false di file prioritas lebih tinggi mengganti true di file prioritas lebih rendah; di folder yang belum Anda percayai, true di file yang dihormati apa pun sudah cukup
  • Default: tidak diatur, jadi Claude Code meminta Anda menyetujui setiap server
{
  "enableAllProjectMcpServers": true
}

Entri disabledMcpjsonServers masih menolak server.

enabledMcpjsonServers

Setujui server tertentu yang didefinisikan dalam file .mcp.json proyek sehingga Claude Code menghubungkannya tanpa bertanya. Claude Code menulis kunci ini ke .claude/settings.local.json ketika Anda menyetujui server di dialog persetujuan.

  • Scope: Any file. Di folder yang dialog kepercayaan Anda belum terima, Claude Code menghormatinya dari pengaturan pengguna, pengaturan yang dikelola, dan --settings dan mengabaikannya di file proyek bersama, baik dalam sesi maupun untuk claude mcp list dan claude mcp get; Persetujuan server proyek dan kepercayaan ruang kerja mengatakan kapan .claude/settings.local.json yang tidak dilacak dihitung juga.
  • Type: array string, nama server seperti yang muncul di .mcp.json
  • Default: tidak diatur

Contoh ini menyetujui server memory dan github dari .mcp.json proyek:

{
  "enabledMcpjsonServers": ["memory", "github"]
}

Entri disabledMcpjsonServers masih menolak server.

managedMcpServers

Sediakan server MCP jarak jauh untuk setiap pengguna dari pengaturan yang dikelola. Pengguna menyimpan server yang mereka tambahkan sendiri dan tidak dapat mengedit atau menghapus yang Anda sediakan. Memerlukan Claude Code v2.1.259 atau lebih baru.

  • Scope: Managed. Claude Code menghapus kunci dengan peringatan di pengaturan pengguna, proyek, dan lokal, dan tidak membacanya di tab Code aplikasi Claude Desktop pada penerapan pihak ketiga atau di sesi Cowork aplikasi, di mana Claude Desktop menyediakan dan mengunci server MCP sesi tersebut sendiri.
  • Type: objek yang dikunci berdasarkan nama server. Setiap entri memiliki bentuk .mcp.json untuk server http atau sse: url https:// yang diperlukan, dan secara opsional headers, oauth, dan opsi HTTP dan SSE lainnya. Claude Code menghapus entri yang gagal validasi, dan Apa yang dapat berisi entri mencantumkan kondisinya
  • Default: tidak diatur, jadi pengaturan yang dikelola tidak menyediakan server

Contoh ini menyediakan satu server HTTP bernama search:

{
  "managedMcpServers": {
    "search": {
      "type": "http",
      "url": "https://search.example.com/mcp"
    }
  }
}

Untuk prioritas, bagaimana server yang disediakan bergabung dengan managed-mcp.json dan daftar izin dan tolak, dan apa yang dilihat pengguna, lihat Sediakan server melalui pengaturan yang dikelola.

Agents, sessions, dan worktrees

Atur agent default, kontrol rekan kerja dan pesan lintas-sesi, dan konfigurasi worktrees. Lihat Subagents dan Worktrees.

agent

Jalankan thread utama sebagai subagent bernama, sehingga Claude Code menerapkan system prompt, pembatasan tool, dan model subagent tersebut ke sesi Anda. Kunci yang sama menetapkan agent default untuk sesi yang Anda dispatch dari claude agents.

  • Scope: Any file
  • Type: string, nama agent bawaan atau kustom
  • Default: unset, sehingga thread utama berjalan sebagai agent default Claude Code
  • Per-session overrides: --agent diutamakan daripada kunci ini untuk satu sesi
{
  "agent": "code-reviewer"
}

settings.json plugin sendiri juga dapat menyediakan kunci ini; lihat Ship default settings with your plugin.

crossSessionInbound

Pilih apa yang dilakukan sesi ini dengan pesan yang tiba dari sesi Claude Code lain Anda. Ketika tidak ada nilai yang berlaku, Claude Code memutuskan per pesan dari kelas permission-mode kedua sesi.

  • Scope: Any file. Nilai proyek atau lokal hanya berlaku ketika lebih ketat daripada nilai managed settings, flag --settings, atau user settings yang diberikan.
  • Type: string, salah satu dari:
    • "accept": Claude Code mengirimkan pesan ke Claude
    • "hold": Claude Code menampilkan pemberitahuan untuk pesan tanpa mengirimkannya
    • "refuse": Claude Code menghapus pesan
  • Default: unset, sehingga Claude Code memutuskan per pesan
{
  "crossSessionInbound": "hold"
}

Claude Code membaca managed settings terlebih dahulu, kemudian flag --settings, kemudian user settings, dan menerapkan nilai pertama yang ditemukan. refuse lebih ketat daripada hold, dan hold lebih ketat daripada accept. Ketika tidak ada sumber terpercaya yang menetapkan nilai, hold atau refuse dari proyek atau lokal masih berlaku, menggantikan default per-pesan. Dalam sesi dengan cross-session messaging, kunci ini muncul di /config sebagai Messages from your other sessions, yang menulisnya ke user settings; baris memerlukan Claude Code v2.1.232 atau lebih baru, dan Claude Code menyembunyikannya saat flag --settings atau managed settings menetapkan kunci.

Claude Code warns ketika Anda menetapkan nilai yang tidak dikenalinya. Sementara nilai itu ada di file user, project, local, atau --settings, Claude Code menahan pesan inbound, bahkan ketika sumber yang memiliki prioritas lebih tinggi menetapkan accept. refuse yang ditetapkan sumber lain masih berlaku. Perbaiki atau hapus nilai untuk menghapus hold.

Ketika nilai yang tidak dikenali ada di managed settings, Claude Code malah memperlakukannya sebagai refuse sampai administrator memperbaikinya. Sebelum v2.1.248, Claude Code mengabaikan nilai yang tidak dikenali tanpa peringatan.

disableAgentView

Matikan background agents dan agent view: claude agents, --bg, /background, dan supervisor on-demand. Atur di managed settings untuk memberlakukannya untuk organisasi.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code mematikan claude agents, --bg, /background, dan supervisor on-demand
    • false: agent view tersedia
  • Default: unset, sehingga agent view tersedia
  • Per-session overrides: CLAUDE_CODE_DISABLE_AGENT_VIEW mematikan agent view untuk satu sesi; mana pun dari keduanya yang mematikannya, yang lain tidak dapat menghidupkannya kembali
{
  "disableAgentView": true
}

isolatePeerMachines

Memerlukan persetujuan eksplisit Anda sebelum SendMessage Claude mencapai salah satu sesi Anda di luar mesin ini; lihat Require approval for cross-machine messages. Dialog persetujuan muncul bahkan dalam bypassPermissions mode.

  • Scope: Any file. true dari cakupan apa pun berlaku, sehingga file proyek yang di-commit dapat menghidupkan persyaratan tetapi tidak mematikannya.
  • Type: Boolean
    • true: Claude Code meminta persetujuan Anda sebelum SendMessage Claude mencapai salah satu sesi Anda di luar mesin ini
    • false: pesan lintas-mesin tidak meminta persetujuan
  • Default: unset, sehingga pesan lintas-mesin tidak meminta persetujuan
{
  "isolatePeerMachines": true
}

Persetujuan SendMessage lintas-mesin memerlukan Claude Code v2.1.224 atau lebih baru.

processWrapper

Di macOS dan Linux, tempatkan perintah launcher korporat di depan background processes yang dimulai Claude Code. Claude Code menjalankan launcher dengan baris perintahnya sendiri ditambahkan, sehingga launcher harus exec ke Claude Code; lihat Run Claude Code behind a corporate launcher untuk kontrak launcher. Memerlukan Claude Code v2.1.210 atau lebih baru.

  • Scope: User or managed
  • Type: string, perintah launcher sebagai awalan argv, seperti jalur absolut dengan argumen opsional
  • Default: unset, sehingga background processes dimulai tanpa wrapper
  • Per-session overrides: CLAUDE_CODE_PROCESS_WRAPPER diutamakan daripada kunci ini untuk satu sesi
{
  "processWrapper": "/opt/corp/launcher --profile claude"
}

Claude Code mengabaikan launcher di Windows dan memulai setiap proses tanpa wrapper. Memerlukan Claude Code v2.1.210 atau lebih baru.

teammateMode

Pilih di mana Claude Code menampilkan rekan kerja tim agent: di dalam pane terminal utama Anda, atau di pane terpisah ketika terminal Anda mendukungnya. Lihat Choose a display mode.

  • Scope: Any file. Claude Code juga membaca nilai yang ditinggalkan di ~/.claude.json oleh versi yang lebih lama.
  • Type: string, salah satu dari:
    • "in-process": rekan kerja berjalan di dalam pane terminal utama Anda
    • "auto": pane terpisah ketika Anda menjalankan di dalam tmux, atau di dalam iTerm2 dengan it2 di PATH Anda atau tmux terinstal; in-process sebaliknya
    • "tmux": pane terpisah menggunakan tmux atau iTerm2, terdeteksi dari terminal Anda
    • "iterm2": pane terpisah native iTerm2 melalui CLI it2
  • Default: "in-process"
  • Per-session overrides: --teammate-mode diutamakan daripada kunci ini untuk satu sesi
{
  "teammateMode": "auto"
}

worktree

Konfigurasi cara Claude Code membuat dan mengelola git worktrees untuk --worktree, tool EnterWorktree, dan subagent terisolasi serta background sessions.

  • Scope: Any file
  • Type: object dengan baseRef, symlinkDirectories, sparsePaths, dan bgIsolation
  • Default: unset

Contoh ini membuat branch worktree baru dari HEAD Anda saat ini dan membuat symlink node_modules ke masing-masing:

{
  "worktree": {
    "baseRef": "head",
    "symlinkDirectories": ["node_modules"]
  }
}

Untuk menyalin file yang diabaikan gitignore seperti .env ke worktree baru, tambahkan file .worktreeinclude ke root proyek Anda, alih-alih menggunakan pengaturan.

worktree.baseRef

Pilih ref mana yang menjadi asal branch worktree baru. "fresh" membuat branch dari origin/<default-branch> untuk pohon bersih yang cocok dengan remote; "head" membuat branch dari HEAD lokal Anda saat ini, sehingga commit yang belum di-push dan state feature-branch ada di worktree.

  • Scope: Any file
  • Type: string, salah satu dari:
    • "fresh": worktree baru membuat branch dari origin/<default-branch>
    • "head": worktree baru membuat branch dari HEAD lokal Anda saat ini, termasuk commit yang belum di-push
  • Default: "fresh"
{
  "worktree": {
    "baseRef": "head"
  }
}

Di dalam linked worktree, "head" merujuk ke HEAD worktree itu, bukan milik checkout utama.

Buat symlink direktori dari repositori utama ke setiap worktree sehingga Anda tidak menduplikasi direktori besar di disk.

  • Scope: Any file
  • Type: array of strings, jalur direktori relatif terhadap root repositori
  • Default: unset, sehingga Claude Code tidak membuat symlink direktori apa pun

Contoh ini membuat symlink node_modules dan .cache dari repositori utama ke setiap worktree baru:

{
  "worktree": {
    "symlinkDirectories": ["node_modules", ".cache"]
  }
}

worktree.sparsePaths

Lakukan checkout hanya untuk direktori yang terdaftar di setiap worktree melalui git sparse-checkout. Claude Code menulis hanya direktori tersebut ditambah file tingkat root ke disk, yang lebih cepat di monorepo besar; lihat Check out only the directories you need.

  • Scope: Any file
  • Type: array of strings, jalur direktori relatif terhadap root repositori
  • Default: unset, sehingga setiap worktree melakukan checkout seluruh pohon

Sertakan .claude dalam daftar agar setiap worktree juga memiliki .claude/settings.json dan .claude/rules/ milik repositori. Contoh ini melakukan checkout hanya untuk .claude, packages/my-app, dan shared/utils, ditambah file tingkat root, di setiap worktree:

{
  "worktree": {
    "sparsePaths": [".claude", "packages/my-app", "shared/utils"]
  }
}

Selama sparse worktree ada, git mengaktifkan extensions.worktreeConfig di .git/config bersama milik repositori.

worktree.bgIsolation

Pilih cara background sessions mengisolasi pengeditan file mereka. Jika Anda memindahkan sesi ke latar belakang dengan ← atau /background, sesi tersebut mengedit file di tempat apa pun nilai kunci ini. Dengan "worktree", Claude Code memblokir Edit dan Write di checkout utama sampai sesi memanggil EnterWorktree; dengan "none", background jobs mengedit working copy secara langsung. Atur "none" untuk repositori di mana git worktrees tidak praktis.

  • Scope: Any file
  • Type: string, salah satu dari:
    • "worktree": Claude Code memblokir Edit dan Write di checkout utama sampai sesi memanggil EnterWorktree
    • "none": background jobs mengedit working copy secara langsung
  • Default: "worktree"
{
  "worktree": {
    "bgIsolation": "none"
  }
}

Di luar repositori git, WorktreeCreate hook yang gagal melepaskan blok sehingga sesi dapat mengedit direktori kerja di tempat.

worktree.location

Pilih folder di mesin remote tempat sesi SSH Desktop membuat worktree mereka, alih-alih <project-root>/.claude/worktrees/. Hanya aplikasi desktop yang membaca kunci ini: --worktree, tool EnterWorktree, subagent terisolasi, dan background sessions mengabaikannya. Memerlukan Claude Desktop v1.44121.0 atau lebih baru.

  • Scope: User, di ~/.claude/settings.json pada mesin remote
  • Type: string, jalur absolut atau jalur yang diawali dengan ~/
  • Default: unset, sehingga worktree ditempatkan di dalam proyek

Contoh ini menetapkan folder ke ~/worktrees:

{
  "worktree": {
    "location": "~/worktrees"
  }
}

Worktree folder yang ditetapkan pada koneksi SSH di Desktop diutamakan. Jika organisasi Anda membatasi folder yang boleh digunakan sesi, Desktop menyimpan worktree di dalam proyek.

Remote, desktop, dan notifikasi

Konfigurasi Remote Control, lingkungan cloud, aplikasi desktop, dan notifikasi yang Claude Code kirimkan ketika membutuhkan Anda. Lihat Remote Control.

agentPushNotifEnabled

Izinkan Claude mengirimkan notifikasi push ke ponsel Anda ketika Claude memutuskan bahwa notifikasi tersebut layak dikirim, misalnya ketika tugas yang panjang selesai. Dalam sesi lokal, Claude dapat mengirimkannya saat Remote Control terhubung. Muncul di /config sebagai Push when Claude decides. Ketika Anda mengubahnya di sana, Claude Code juga menyimpan nilainya ke akun Anda.

  • Scope: Any file. Claude Code juga membaca nilai yang ditinggalkan di ~/.claude.json oleh versi yang lebih lama.
  • Type: Boolean
    • true: Claude dapat mengirimkan notifikasi push ke ponsel Anda ketika Claude memutuskan bahwa notifikasi tersebut layak dikirim
    • false: Claude tidak mengirimkan notifikasi tersebut
  • Default: false
{
  "agentPushNotifEnabled": true
}

Jika Anda menjalankan sesi di bawah server claude remote-control, sesi tersebut mengikuti nilai yang disimpan ke akun Anda, bukan kunci ini. Untuk mengubah nilai tersebut, jalankan /config dalam sesi Claude Code di terminal Anda dan aktifkan atau matikan Push when Claude decides. Jika toggle sudah menunjukkan nilai yang Anda inginkan, ubah lalu kembalikan agar Claude Code menyimpan nilai tersebut ke akun Anda.

Lihat Mobile push notifications.

awaySummaryEnabled

Tampilkan ringkasan sesi satu baris ketika Anda kembali ke terminal setelah beberapa menit pergi. Atur ke false, atau matikan Session recap di /config, untuk menghentikan ringkasan.

  • Scope: Any file
  • Type: Boolean
    • true: Anda melihat ringkasan sesi satu baris ketika Anda kembali setelah beberapa menit pergi
    • false: Claude Code tidak menampilkan ringkasan
  • Default: unset, jadi ringkasan aktif
  • Per-session overrides: CLAUDE_CODE_ENABLE_AWAY_SUMMARY mengambil alih kunci ini untuk satu sesi, dalam kedua arah
{
  "awaySummaryEnabled": false
}

Claude Code tidak pernah menampilkan ringkasan dalam mode non-interaktif.

disableArtifact

[!WARNING]

Deprecated, dan diganti oleh enableArtifact. Claude Code masih menghormati disableArtifact: true sebagai setara dengan enableArtifact: false, dan mengabaikan disableArtifact: false.

Gunakan enableArtifact sebagai gantinya untuk mematikan alat Artifact, yang menerbitkan output sesi sebagai halaman web pribadi di claude.ai. Ketika Anda mematikan baris Artifacts di /config, Claude Code menulis enableArtifact ke pengaturan pengguna Anda dan menghapus kunci ini.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code mematikan alat Artifact untuk setiap sesi yang berlaku file, dan tidak ada file lain yang menghidupkannya kembali
    • false: diabaikan; untuk membiarkan alat tetap aktif, hapus kunci
  • Default: unset, jadi alat mengikuti availability akun Anda
  • Per-session overrides: CLAUDE_CODE_DISABLE_ARTIFACT diatur ke 1 mematikan alat untuk satu sesi
{
  "disableArtifact": true
}

Disable artifacts mencantumkan setiap cara untuk mematikan alat.

Hentikan Claude Code dari mendaftarkan penanganan protokol claude-cli:// dengan sistem operasi. Deep links memungkinkan alat eksternal membuka sesi Claude Code dengan prompt yang sudah diisi. Atur ini di lingkungan di mana pendaftaran penanganan protokol dibatasi atau dikelola secara terpisah.

  • Scope: Any file
  • Type: string "disable"
  • Default: unset, jadi Claude Code mendaftarkan penanganan
{
  "disableDeepLinkRegistration": "disable"
}

disableDesktopLocalSessions

Matikan sesi Code yang berjalan di perangkat di aplikasi desktop, untuk deployment di mana pengembang harus bekerja di mesin jarak jauh melalui SSH. Dengan kunci diatur ke true, pengguna melihat hal berikut di tab Code:

  • Pemilih lingkungan: entri untuk komputer pengguna berwarna abu-abu dan tidak dapat dipilih, dengan tooltip Disabled by your organization. Di Windows entri WSL berwarna abu-abu dengan cara yang sama, meskipun apakah sesi WSL berjalan di perangkat terkelola sama sekali diatur secara terpisah.
  • Sesi baru: default ke koneksi SSH pertama jika ada yang dikonfigurasi
  • Sesi di perangkat: aplikasi menolak untuk memulai atau melanjutkan sesi di perangkat, termasuk koneksi SSH kembali ke mesin yang sama
  • Sesi SSH ke host lain dan sesi cloud: tidak terpengaruh

Aplikasi desktop membaca kunci ini; CLI terminal mengabaikannya. Memerlukan Claude Desktop v1.37937.0 atau lebih baru.

  • Scope: Managed. Secara default, aplikasi desktop membaca kunci dari satu sumber terkelola.
  • Type: Boolean; hanya Boolean JSON true yang berlaku
    • true: aplikasi desktop tidak menawarkan sesi Code di perangkat; sesi lokal yang ada tetap terdaftar tetapi tidak dapat dilanjutkan
    • false: sesi lokal tetap tersedia
  • Default: unset, jadi sesi lokal tersedia
{
  "disableDesktopLocalSessions": true
}

Aplikasi desktop mengabaikan nilai lainnya, dan nilai yang bukan Boolean, seperti string "true" atau 1, juga mencatat peringatan. Pasangkan dengan sshConfigs sehingga pengguna mendarat di koneksi yang berfungsi, dan dengan sshHostAllowlist untuk membatasi host mana yang dapat mereka jangkau. Lihat Local sessions on managed devices.

Claude Desktop memasok sesi Code dengan kebijakan yang berasal dari konfigurasi desktop Anda, misalnya daftar egress allowlist, sandbox sistem file, dan pembatasan MCP dalam deployment pihak ketiga. Claude Code mengabaikan pengaturan induk tersebut kapan pun sumber admin hadir: pengaturan yang dikelola server, kebijakan MDM atau tingkat OS, atau file pengaturan yang dikelola. Menerapkan kunci ini melalui salah satu dari mereka di perangkat yang tidak memiliki sebelumnya, seperti dalam deployment pihak ketiga, oleh karena itu menghentikan kebijakan yang berasal dari desktop dari penerapan. Let an embedding host add policy mencakup kapan pengaturan induk masih dapat digabung; ini berlaku untuk kunci apa pun yang Anda terapkan dengan cara itu, bukan hanya yang ini.

disableRemoteControl

Matikan Remote Control: Claude Code kemudian menolak claude remote-control, flag --remote-control, auto-start, dan toggle dalam sesi, dan melaporkan bahwa kebijakan organisasi Anda menonaktifkannya. Tempatkan di managed settings untuk penegakan MDM per perangkat.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code menolak claude remote-control, flag --remote-control, auto-start, dan toggle dalam sesi
    • false: Remote Control tetap tersedia
  • Default: false
{
  "disableRemoteControl": true
}

disableRemotePreviewScripts

Cegah skrip berjalan ketika orang mempratinjau file HTML dari sesi SSH atau WSL di aplikasi desktop. Penjelajahan eksternal di panel Browser tidak terpengaruh.

Aplikasi desktop membaca kunci ini; CLI terminal mengabaikannya. Memerlukan Claude Desktop v5.1231.0 atau lebih baru. Versi sebelumnya mengabaikan kunci ini: untuk menghentikan skrip di sana, atur juga disableBrowserExternalNavigation, yang juga mematikan penjelajahan eksternal.

  • Scope: Managed. Aplikasi desktop tidak membaca kunci ini dari mesin jarak jauh atau distribusi WSL.
  • Type: Boolean; hanya Boolean JSON true yang berlaku
    • true: pratinjau HTML di sesi SSH dan WSL tidak menjalankan skrip
    • false: kunci ini tidak mematikan skrip
  • Default: unset, jadi kunci ini tidak berpengaruh

Jika komputer yang menjalankan aplikasi desktop tidak menerima pengaturan terkelola Claude Code lainnya, atur juga parentSettingsBehavior ke "merge" dalam pengaturan terkelola yang Anda buat. Di Windows, jika Anda membuat file pengaturan terkelola, pengguna juga kehilangan sesi WSL hingga Anda mengizinkannya. Matikan skrip dalam pratinjau SSH dan WSL untuk organisasi Anda menjelaskan keduanya dan menyebutkan di mana kunci ini harus diatur.

Contoh ini menampilkan kunci tersebut saja, sebagaimana Anda menambahkannya ke pengaturan terkelola yang sudah diterima oleh sebuah komputer:

{
  "disableRemotePreviewScripts": true
}

Aplikasi desktop mengabaikan nilai lainnya, dan nilai yang bukan Boolean, seperti string "true" atau 1, juga mencatat peringatan.

enableArtifact

Matikan tool Artifact, yang menerbitkan output sesi sebagai halaman web pribadi di claude.ai. Ketika Anda mematikan baris Artifacts di /config, Claude Code menulis kunci ini ke pengaturan pengguna Anda, jadi Anda biasanya tidak mengeditnya dengan tangan.

  • Scope: Any file. Setiap file dapat mematikan alat, dan tidak ada yang dapat menghidupkannya kembali.
  • Type: Boolean
    • false: Claude Code mematikan alat Artifact untuk setiap sesi yang berlaku file
    • true: sama dengan membiarkan kunci unset, karena tidak pernah mengganti false dari file lain, dari CLAUDE_CODE_DISABLE_ARTIFACT, atau dari admin setting organisasi Anda
  • Default: unset, jadi alat mengikuti availability akun Anda
{
  "enableArtifact": false
}

Sementara sumber selain pengaturan pengguna Anda sendiri membuat alat tetap mati, Claude Code menyembunyikan baris Artifacts di /config, karena menghidupkannya di sana tidak akan mengubah apa pun. Disable artifacts mencantumkan setiap cara untuk mematikan alat.

inputNeededNotifEnabled

Dapatkan notifikasi push di ponsel Anda ketika permintaan izin atau pertanyaan menunggu input Anda. Dalam sesi lokal, Claude Code mengirimkan ini hanya saat Remote Control terhubung. Muncul di /config sebagai Push when actions required.

  • Scope: Any file. Claude Code juga membaca nilai yang ditinggalkan di ~/.claude.json oleh versi yang lebih lama.
  • Type: Boolean
  • Default: false
{
  "inputNeededNotifEnabled": true
}

Lihat Mobile push notifications.

preferredNotifChannel

Pilih bagaimana Claude Code memberi tahu Anda ketika tugas selesai atau permintaan izin menunggu. Notifikasi dari mod menggunakan pengaturan yang sama. Muncul di /config sebagai Local notifications.

  • Scope: Any file. Claude Code juga membaca nilai yang ditinggalkan di ~/.claude.json oleh versi yang lebih lama.
  • Type: string, salah satu dari:
    • "auto": Claude Code mengirimkan notifikasi desktop ketika mendeteksi iTerm2, Ghostty, atau Kitty, membunyikan bel di Terminal.app hanya ketika bel audibelnya dimatikan, dan tidak melakukan apa pun di tempat lain
    • "terminal_bell": Claude Code membunyikan karakter bel di terminal apa pun
    • "iterm2": Claude Code mengirimkan notifikasi desktop iTerm2
    • "iterm2_with_bell": Claude Code mengirimkan notifikasi desktop iTerm2 dan membunyikan bel
    • "kitty": Claude Code mengirimkan notifikasi desktop Kitty
    • "ghostty": Claude Code mengirimkan notifikasi desktop Ghostty
    • "notifications_disabled": Claude Code tidak mengirimkan notifikasi
  • Default: "auto"
{
  "preferredNotifChannel": "terminal_bell"
}

Dengan "auto", Claude Code mengirimkan notifikasi desktop ketika mendeteksi iTerm2, Ghostty, atau Kitty. Di Terminal.app, Claude Code membunyikan karakter bel hanya ketika Anda telah mematikan bel audibel Terminal, dan di terminal lain tidak melakukan apa pun. Atur "terminal_bell" untuk membunyikan karakter bel di terminal apa pun. Lihat Get a terminal bell or notification.

remote.defaultEnvironmentId

Pilih lingkungan cloud default untuk sesi cloud yang Anda buat dari CLI, seperti dengan claude --cloud. Claude Code menulis kunci ini ke pengaturan pengguna Anda ketika Anda memilih lingkungan dengan /remote-env.

  • Scope: Any file. Untuk ID lingkungan yang di-host sendiri, pengaturan pengguna atau terkelola, atau flag --settings saja.
  • Type: string, ID lingkungan seperti env_... atau ccpool_...
  • Default: unset, jadi Claude Code menggunakan lingkungan yang di-host Anthropic ketika daftar Anda memiliki satu, dan sebaliknya lingkungan pertama dalam daftar Anda yang bukan lingkungan jembatan Remote Control, atau lingkungan pertama ketika setiap satu adalah lingkungan jembatan
  • Per-session overrides: --environment mengambil alih kunci ini untuk satu sesi cloud yang dibuatnya
{
  "remote": {
    "defaultEnvironmentId": "env_0123abcd"
  }
}

ID lingkungan yang di-host Anthropic, yang dimulai dengan env_, mengikuti prioritas pengaturan standar, jadi nilai dalam pengaturan proyek repositori mengganti pilihan tingkat pengguna Anda. ID lingkungan yang di-host sendiri, yang dimulai dengan ccpool_, dihormati hanya dari pengaturan pengguna, pengaturan terkelola, dan flag --settings; Claude Code mengabaikan satu dalam pengaturan proyek atau lokal repositori, dan /remote-env menunjukkan nilai mana yang diabaikannya, jadi file yang diperiksa tidak dapat mengarahkan sesi ke lingkungan yang di-host sendiri yang tidak Anda pilih.

remoteControlAtStartup

Hubungkan Remote Control secara otomatis ketika setiap sesi interaktif dimulai, alih-alih menunggu /remote-control. Atur ke true untuk menghidupkan auto-connect, false untuk mematikannya. Muncul di /config sebagai Enable Remote Control for all sessions.

  • Scope: Any file. Claude Code juga membaca nilai yang ditinggalkan di ~/.claude.json oleh versi yang lebih lama.
  • Type: Boolean
    • true: Claude Code menghubungkan Remote Control secara otomatis ketika setiap sesi interaktif dimulai
    • false: Claude Code menunggu /remote-control
  • Default: unset, jadi auto-connect default berlaku
  • Per-session overrides: --remote-control menghidupkan Remote Control untuk satu sesi bahkan ketika kunci ini false, dan tidak ada flag yang mematikannya untuk satu sesi
{
  "remoteControlAtStartup": true
}

Claude Code mengabaikan true dari pengaturan proyek atau lokal, jadi repositori dapat mematikan auto-connect untuk checkout-nya tetapi tidak dapat menghidupkannya. Untuk perilaku per-scope lengkap, lihat Enable Remote Control for all sessions dan kunci keamanan di mana nilai yang lebih ketat berlaku.

sshConfigs

Tambahkan koneksi SSH ke pemilih lingkungan Desktop. Administrator menggunakan sshConfigs untuk mendistribusikan koneksi bersama ke tim. Pengguna dapat memilih koneksi terkelola dan mengatur Worktree folder mereka sendiri untuk koneksi tersebut. Mereka tidak dapat mengedit kolom lainnya atau menghapusnya di aplikasi.

  • Scope: User or managed. Aplikasi desktop membaca kunci ini. Secara default, aplikasi membaca koneksi terkelola dari satu sumber terkelola.
  • Type: array objek, masing-masing dengan id, name, dan sshHost yang diperlukan dan sshPort dan sshIdentityFile opsional
  • Default: unset

Contoh ini menambahkan satu koneksi bernama Dev VM yang terhubung ke user@dev.example.com:

{
  "sshConfigs": [
    {
      "id": "dev-vm",
      "name": "Dev VM",
      "sshHost": "user@dev.example.com"
    }
  ]
}

sshHostAllowlist

Batasi host yang dapat terhubung oleh sesi SSH Desktop. Hanya aplikasi Desktop yang membaca kunci ini; CLI tidak. Pola tidak peka huruf besar-kecil: * cocok dengan host apa pun, *.example.com cocok dengan example.com dan setiap subdomain, dan apa pun yang lain adalah kecocokan tepat terhadap nama host setelah resolusi ~/.ssh/config. Array kosong mematikan sesi SSH.

Dengan Claude Desktop v3.1623.0 atau lebih baru, jump host dari sebuah sesi juga harus cocok dengan suatu pola.

  • Scope: Managed. Secara default, Desktop membaca kunci dari satu sumber terkelola.
  • Type: array pola nama host
  • Default: unset, jadi host apa pun diizinkan

Contoh ini memungkinkan devboxes.example.com dan subdomain-nya, ditambah host tepat bastion.example.com:

{
  "sshHostAllowlist": ["*.devboxes.example.com", "bastion.example.com"]
}

Nilai yang tidak dapat dibaca Desktop sebagai daftar host, seperti true atau objek, dianggap sebagai array kosong hingga Anda memperbaikinya, kecuali null, yang dianggap unset. Memerlukan Claude Desktop v2.26454.0 atau lebih baru.

Jika Anda mengatur managedSourcesBehavior ke "merge" di sumber dengan peringkat tertinggi Anda, Desktop menggabungkan daftar dari setiap sumber admin dan mengizinkan host yang cocok dengan salah satu dari daftar tersebut. Jika Anda mengatur array kosong di satu sumber, sesi SSH tetap aktif untuk host yang dicantumkan oleh sumber lain.

sshHostCommands

Tambahkan koneksi SSH yang host-nya berasal dari sebuah perintah ke pemilih lingkungan Desktop. Ketika Anda membuat koneksi atau membuat mesin lain untuknya, Desktop menjalankan perintah entri tersebut di komputer Anda dan terhubung ke host yang dicetak oleh perintah tersebut.

Memerlukan Claude Desktop v3.6556.0 atau lebih baru di macOS atau Linux, atau v4.16336.0 atau lebih baru di Windows, dengan masuk menggunakan akun Claude. Di Windows, Desktop juga harus terhubung melalui klien OpenSSH.

Contoh ini menambahkan satu koneksi bernama Dev box, di mana acme-dev create mewakili alat Anda sendiri:

{
  "sshHostCommands": [
    {
      "id": "devbox",
      "name": "Dev box",
      "command": "acme-dev create"
    }
  ]
}

Di Windows, nama saja seperti acme-dev tidak berfungsi, jadi mulai perintah dengan path lengkap program.

Sebelum Claude Code v2.1.307, tool Edit menolak perubahan yang menambahkan kunci ini ke file pengaturan yang valid, dengan error Unrecognized field: sshHostCommands. Pada versi tersebut, tambahkan kunci ini di editor teks sebagai gantinya; Claude Code memuat file yang berisi kunci tersebut. Di Desktop, versi yang diperhitungkan adalah versi Claude Code di tab Code, bukan versi di terminal Anda.

Autentikasi dan penyedia

Berikan kredensial melalui skrip pembantu dan, untuk organisasi, paksa metode login atau organisasi. Lihat Autentikasi.

allowedProviders

Daftarkan layanan yang mesin dapat jangkau Claude melaluinya, seperti API Anthropic, Amazon Bedrock, atau gateway LLM. Sesi pada penyedia yang tidak terdaftar ditolak saat startup, saat login, dan ketika berikutnya menghubungi API, jadi beralih ke penyedia yang tidak terdaftar di tengah sesi juga ditolak. Pesan penolakan menyebutkan apa yang memilih penyedia dan langkah-langkah untuk melanjutkan. Memerlukan Claude Code v2.1.285 atau lebih baru.

  • Scope: Managed. Daftar yang sumber admin mesin sendiri atur, kebijakan MDM dan file pengaturan terkelola, terus berlaku ketika pengaturan terkelola server juga memberikan satu: sesi kemudian dapat menggunakan hanya penyedia di kedua daftar, jadi daftar terkelola server dapat mempersempit apa yang mesin izinkan tetapi tidak pernah memperluas. Sumber mesin mana yang allowedProviders dihitung mengikuti bagaimana Claude Code menggabungkan sumber terkelola. Daftar yang disampaikan melalui pengaturan terkelola server saja mencapai hanya sesi yang mengambil pengaturan terkelola server.
  • Type: array string, masing-masing satu dari:
  • Default: tidak diatur, jadi penyedia apa pun dapat digunakan
{
  "allowedProviders": ["anthropic", "bedrock"]
}

Entri setiap penyedia cloud berarti layanan penyedia itu sendiri, termasuk endpoint regional, FIPS, dan privatnya.

Entri yang Claude Code tidak kenali sebagai nama penyedia dijatuhkan dan dilaporkan, dan sisa daftar tetap diberlakukan. Dengan daftar kosong, atau daftar yang setiap entrinya tidak dikenali, Claude Code menolak setiap penyedia dan tidak memulai di mesin.

Endpoint yang memerlukan pin dalam env terkelola

Pin adalah nilai variabel endpoint yang diatur dalam blok env terkelola. Ketika sesi mengirimkan lalu lintas penyedia ke tempat lain selain layanan penyedia itu sendiri, Claude Code mengakuinya hanya jika nilai sesi sama dengan pin. Endpoint ini memerlukan satu:

  • Sesi "customEndpoint": variabel yang menyebutkan host, seperti ANTHROPIC_BASE_URL
  • Amazon Bedrock: variabel AWS_ENDPOINT_URL, AWS_ENDPOINT_URL_BEDROCK, dan AWS_ENDPOINT_URL_BEDROCK_RUNTIME SDK AWS ketika mereka menunjuk di luar layanan Bedrock sendiri. Sesi tetap di bawah "bedrock" daripada "customEndpoint"
  • URL sign-in gateway: sesi tetap di bawah "gateway", dan forceLoginGatewayUrl juga dihitung sebagai pin

Blok env mana yang dihitung sebagai pin tergantung pada tempat daftar diatur:

  • Sumber administrator di mesin mengatur daftar: hanya blok env dari sumber administrator mesin sendiri yang dihitung
  • Hanya pengaturan terkelola server yang mengatur daftar: nilai env dalam pengaturan terkelola server itu juga dihitung

Daftar tidak menilai variabel kredensial dan tenancy penyedia cloud atau jalur jaringan, seperti HTTPS_PROXY dan pengaturan sertifikat. Atur ini untuk armada dalam blok env terkelola.

apiKeyHelper

Jalankan perintah Anda sendiri untuk menghasilkan kredensial yang Claude Code kirimkan dengan permintaan model. Claude Code menjalankan perintah melalui shell sistem, /bin/sh di macOS dan Linux serta cmd di Windows, dan mengirimkan outputnya sebagai header X-Api-Key dan Authorization: Bearer. Gunakan untuk kredensial dinamis atau berputar, seperti token berumur pendek yang diambil dari vault.

  • Scope: Any file
  • Type: string, baris perintah shell
  • Default: tidak diatur, jadi Claude Code tidak menjalankan pembantu
{
  "apiKeyHelper": "/bin/generate_temp_api_key.sh"
}

Claude Code menyimpan nilai dalam cache dan menjalankan kembali perintah dalam kasus berikut:

  • Setelah masa hidup cache, lima menit secara default atau interval yang Anda atur dengan CLAUDE_CODE_API_KEY_HELPER_TTL_MS.
  • Ketika permintaan ke API Anthropic, secara langsung atau melalui gateway LLM, gagal dengan 401 atau 403.
  • Ketika permintaan melalui gateway LLM gagal dengan 401, tetapi tidak dengan 403, dan Anda mengatur CLAUDE_CODE_SKIP_VERTEX_AUTH untuk Agent Platform Google Cloud, CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH untuk Claude Platform di AWS, atau CLAUDE_CODE_SKIP_MANTLE_AUTH untuk Amazon Bedrock Mantle. Memerlukan Claude Code v2.1.318 atau lebih baru.
  • Sebelum mengirimkan permintaan ke API Anthropic, secara langsung atau melalui gateway LLM, ketika output yang disimpan dalam cache adalah JWT yang kedaluwarsa setelah pembantu menghasilkannya. Memerlukan Claude Code v2.1.246 atau lebih baru.

Tiga kasus terakhir hanya berlaku ketika output pembantu adalah kredensial yang Claude Code kirimkan dan ANTHROPIC_AUTH_TOKEN tidak diatur.

Dalam sesi interaktif, ketika perintah berasal dari pengaturan proyek atau lokal, Claude Code tidak menjalankannya sampai Anda menerima prompt kepercayaan workspace. Lihat Manajemen kredensial.

awsAuthRefresh

Jalankan perintah Anda sendiri, seperti aws sso login, untuk menyegarkan kredensial di direktori .aws Anda ketika kredensial yang Claude Code miliki untuk Amazon Bedrock berhenti bekerja. Claude Code memeriksa kredensial saat ini terhadap STS terlebih dahulu dan hanya menjalankan perintah ketika pemeriksaan itu gagal, kemudian membaca direktori .aws yang telah disegarkan.

Ketika pemeriksaan gagal pada saat yang sama di beberapa proses Claude Code yang menggunakan perintah dan kredensial yang sama, seperti terminal atau jendela IDE yang terpisah, satu proses menjalankan perintah dan sisanya menunggu eksekusi tersebut alih-alih memulai eksekusi mereka sendiri. Proses yang telah menunggu 60 detik dengan permintaan yang tertunda menjalankan perintah itu sendiri. Untuk mematikan ini, atur CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK ke 1.

  • Scope: Any file
  • Type: string, baris perintah shell
  • Default: tidak diatur, jadi Claude Code tidak menyegarkan kredensial AWS untuk Anda
{
  "awsAuthRefresh": "aws sso login --profile myprofile"
}

Gunakan kunci ini ketika alur penyegaran Anda menulis ke .aws; gunakan awsCredentialExport ketika alur itu mencetak kredensial sebagai gantinya. Lihat konfigurasi kredensial lanjutan.

awsCredentialExport

Jalankan perintah Anda sendiri yang mencetak kredensial AWS sebagai JSON, sehingga Claude Code dapat memanggil Amazon Bedrock dengan kredensial yang tidak berada di direktori .aws Anda. Claude Code menerima bentuk output aws sts dan bentuk datar aws configure export-credentials, dan membatasi kredensial ke klien Bedrock-nya sendiri, sehingga perintah shell yang Claude jalankan masih melihat kredensial ambient Anda.

  • Scope: Any file
  • Type: string, baris perintah shell
  • Default: tidak diatur, jadi Claude Code menggunakan rantai kredensial AWS ambient
{
  "awsCredentialExport": "/bin/generate_aws_grant.sh"
}

Tidak seperti awsAuthRefresh, Claude Code selalu menjalankan perintah ini ketika diatur, tanpa memeriksa kredensial ambient terlebih dahulu. Lihat konfigurasi kredensial lanjutan.

forceLoginMethod

Batasi jenis akun apa yang dapat digunakan orang untuk masuk: "claudeai" untuk sign-in claude.ai atau "console" untuk sign-in Claude Console. Atur "gateway" untuk mengirim orang ke cloud gateway alih-alih login pihak pertama. Administrator mengaturnya dalam pengaturan terkelola dan memasangkannya dengan forceLoginOrgUUID untuk menjaga login claude.ai pengembang di dalam satu organisasi.

Jika Anda mengaturnya ke "claudeai" di file pengaturan apa pun, Claude Code juga berhenti menawarkan sign-in Console tanpa kunci dalam sesi yang file itu berlaku. Dengan "console" saja, orang masih dapat mencapai sign-in tanpa kunci setelah login gagal. Untuk menghentikan Claude Code menawarkannya, lihat Hentikan penawaran sign-in tanpa kunci pada mesin terkelola, yang juga mencantumkan apa lagi yang diubah oleh forceLoginOrgUUID.

  • Scope: Any file. Claude Code menghormati "gateway" dari sumber yang sama dengan forceLoginGatewayUrl dan memperlakukannya sebagai tidak diatur di tempat lain.
  • Type: string, salah satu dari:
    • "claudeai": sign-in claude.ai
    • "console": sign-in Claude Console
    • "gateway": Claude Code mengirim orang ke cloud gateway alih-alih login pihak pertama
  • Default: tidak diatur, jadi orang memilih metode login
{
  "forceLoginMethod": "claudeai"
}

Setiap jalur login pihak pertama menerapkan pembatasan, termasuk ekstensi VS Code, Agent SDK, claude setup-token, dan /install-github-app, kecuali layar login interaktif terminal, yang dicapai oleh /login atau onboarding first-run, yang pra-memilih metode tanpa memberlakukannya. Sebelum v2.1.212, hanya login terminal yang menerapkannya. Lihat Batasi login ke organisasi Anda untuk cara setiap jalur login, kredensial lingkungan, dan penyedia pihak ketiga ditangani.

Ketika sumber terkelola di mesin mengatur "gateway", Claude Code tidak menggunakan login sisa, kunci API, atau kredensial apiKeyHelper. Lihat Administrator policy requires a Cloud gateway sign-in untuk pesan yang masing-masing menghasilkan. Jika Anda memilih penyedia cloud melalui CLAUDE_CODE_USE_BEDROCK atau environment variable serupa, sesi tidak memerlukan sign-in gateway. Sebelum v2.1.261, Claude Code menggunakan login sisa di mesin ini.

forceLoginGatewayUrl

Atur URL gateway yang layar Cloud gateway /login terhubung, sehingga orang mencapai cloud gateway Anda tanpa mengetik alamatnya. Layar tidak memiliki bidang URL: dengan kunci ini diatur, layar menampilkan URL gateway Anda dan terhubung ketika orang menekan Enter; tanpanya, layar memberi tahu mereka untuk menghubungi administrator IT mereka.

Dalam pengaturan terkelola, baik kunci ini atau forceLoginMethod: "gateway" membuat mesin gateway-only, kecuali untuk sesi yang memilih penyedia cloud dengan CLAUDE_CODE_USE_*. /login kemudian membuka di layar Cloud gateway tanpa pemilih metode login. Lihat Administrator policy requires a Cloud gateway sign-in untuk apa yang terjadi pada login pihak pertama atau kunci API yang tersisa. Atur kedua kunci sehingga layar terhubung alih-alih menampilkan kesalahan.

  • Scope: User or managed. Dibaca dari sumber terkelola di mesin: managed-settings.json, plist macOS atau registri Windows HKLM, atau pembantu kebijakan. Pada mesin yang tidak memiliki satu pun dari sumber tersebut, Claude Code v2.1.295 atau lebih baru juga membacanya dari pengaturan pengguna. Claude Code mengabaikannya dalam pengaturan HKCU dan server-terkelola.
  • Type: string, URL lengkap termasuk skema
  • Default: tidak diatur, jadi layar Cloud gateway menampilkan kesalahan yang memberi tahu orang untuk menghubungi administrator IT mereka
{
  "forceLoginGatewayUrl": "https://claude-gateway.example.com"
}

Jika nilainya bukan URL yang valid, layar sign-in melaporkannya, dan sisa file pengaturan terkelola masih berlaku. Lihat Atur URL gateway.

forceLoginOrgUUID

Dari sumber terkelola, perlukan login akun claude.ai untuk milik satu organisasi Anthropic, diberikan sebagai UUID tunggal, atau milik salah satu dari beberapa organisasi, diberikan sebagai array. Dari file pengaturan apa pun, Claude Code juga menggunakan UUID tunggal untuk pra-memilih organisasi itu selama login claude.ai atau Claude Console, dan pra-memilih tidak ada untuk array. Jika Anda mengatur kunci di file pengaturan apa pun, Claude Code juga berhenti menawarkan sign-in Console tanpa kunci dalam sesi yang file itu berlaku dan membuat kunci API sebagai gantinya.

  • Scope: Any file. Dalam file pengaturan yang bukan sumber terkelola, Claude Code tidak memeriksa organisasi mana yang memiliki suatu login, dan UUID tunggal pra-memilih organisasi selama login.
  • Type: string, satu UUID, atau array string, beberapa UUID
  • Default: tidak diatur, jadi organisasi apa pun dapat masuk

Contoh ini menerima login dari salah satu dari dua organisasi tanpa pra-memilih satu:

{
  "forceLoginOrgUUID": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]
}

Jika sumber terkelola mengatur array kosong, atau nilai yang bukan string atau array string, pengguna yang masuk dengan akun Anthropic tidak dapat memulai Claude Code atau menyelesaikan login. Mereka melihat pesan yang menyebutkan forceLoginOrgUUID dan meminta mereka untuk menghubungi administrator mereka. policyHelper yang menghasilkan nilai dengan tipe yang salah menggagalkan eksekusinya sebagai gantinya.

Lihat Batasi login ke organisasi Anda untuk cara Claude Code memperlakukan login Claude Console, jalur login lainnya, dan kredensial lingkungan.

gatewayInternalNetworks

Deklarasikan blok IPv4 publik yang organisasi Anda gunakan untuk menomori jaringan internalnya, sehingga /login menerima cloud gateway di sana. Memerlukan Claude Code v2.1.268 atau lebih baru.

Tanpa kunci ini, /login terhubung ke gateway apa pun pada alamat pribadi dan tidak ada yang lain. Dengan kunci ini, /login juga menerima gateway di dalam blok yang terdaftar, hanya melalui koneksi langsung. Alamat mesin itu sendiri pada koneksi itu juga harus berada di dalam blok yang sama.

  • Scope: Managed. Baca hanya dari sumber di mesin: managed-settings.json, plist macOS atau registri Windows HKLM, atau pembantu kebijakan. Claude Code mengabaikannya dalam pengaturan HKCU dan server-terkelola.
  • Type: array string, paling banyak empat blok CIDR IPv4, masing-masing /8 hingga /32, tidak tumpang tindih satu sama lain, dan tidak ada yang tumpang tindih dengan ruang pribadi.
  • Default: tidak diatur, jadi /login hanya menerima gateway pada alamat pribadi
{
  "gatewayInternalNetworks": ["203.0.113.0/24"]
}

Ganti rentang dokumentasi dalam contoh dengan blok Anda sendiri. Claude Code menolak rentang dokumentasi, rentang yang digunakan klien VPN dan NAT64 secara lokal, dan ruang yang dicadangkan yang tidak ada jaringan yang dinomori darinya, seperti multicast.

Jika entri tidak valid, atau nilainya bukan daftar string, /login menyebutkan masalahnya dan menolak setiap sign-in gateway baru di mesin sampai Anda memperbaiki nilainya. Sign-in yang ada terus bekerja. Lihat Izinkan gateway pada ruang alamat publik yang Anda miliki untuk aturan lengkap dan apa yang dilihat pengembang.

gcpAuthRefresh

Jalankan perintah Anda sendiri untuk menyegarkan Google Cloud Application Default Credentials ketika Claude Code menemukan bahwa kredensial telah kedaluwarsa atau tidak dapat dimuat, sehingga permintaan Google Cloud's Agent Platform terus bekerja tanpa Anda perlu melakukan autentikasi ulang secara manual.

Ketika beberapa proses Claude Code yang menggunakan perintah dan kredensial yang sama, seperti terminal atau jendela IDE yang terpisah, menemukan bahwa kredensial tersebut kedaluwarsa pada saat yang sama, satu proses menjalankan perintah dan sisanya menunggu eksekusi tersebut alih-alih memulai eksekusi mereka sendiri. Proses yang telah menunggu 60 detik dengan permintaan yang tertunda menjalankan perintah itu sendiri. Untuk mematikan ini, atur CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK ke 1.

  • Scope: Any file
  • Type: string, baris perintah shell
  • Default: tidak diatur, jadi kesalahan kredensial Claude Code memberi tahu Anda untuk menjalankan gcloud auth application-default login sendiri
{
  "gcpAuthRefresh": "gcloud auth application-default login"
}

Lihat konfigurasi kredensial lanjutan.

otelHeadersHelper

Jalankan perintah Anda sendiri untuk menghasilkan header yang Claude Code kirimkan dengan ekspor OpenTelemetry, untuk backend yang tokennya berputar. Claude Code menjalankannya saat startup dan secara berkala setelah itu, dan mengharapkan objek JSON dari nilai header string di stdout.

  • Scope: Any file
  • Type: string, jalur yang dapat dieksekusi atau baris perintah shell
  • Default: tidak diatur, jadi Claude Code tidak menambahkan header yang dihasilkan pembantu
{
  "otelHeadersHelper": "/bin/generate_otel_headers.sh"
}

Atur interval penyegaran dengan CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS. Lihat Dynamic headers untuk persyaratan skrip dan apa yang terjadi ketika pembantu gagal.

Pembaruan dan versioning

Pilih saluran pembaruan dan, untuk organisasi, tetapkan versi yang dapat dijalankan orang. Lihat Update Claude Code.

autoUpdatesChannel

Pilih saluran rilis mana yang diikuti pembaruan otomatis latar belakang dan claude update. Atur "stable" untuk versi yang biasanya berusia sekitar satu minggu dan melewati rilis dengan regresi besar, atau "latest" untuk rilis paling terbaru.

  • Scope: Any file. Atur di managed settings untuk memberlakukan satu saluran di seluruh organisasi Anda.
  • Type: string, salah satu dari:
    • "latest": pembaruan mengikuti rilis paling terbaru
    • "stable": pembaruan mengikuti versi yang biasanya berusia sekitar satu minggu dan melewati rilis dengan regresi besar
  • Default: tidak diatur, jadi Claude Code mengikuti "latest"
{
  "autoUpdatesChannel": "stable"
}

Claude Code menulis "stable" ke pengaturan pengguna Anda ketika Anda memilihnya di bawah Auto-update channel di /config, dan menghapus kunci ketika Anda beralih kembali ke latest di sana. claude install stable dan claude install latest juga menyimpan saluran yang Anda beri nama. Beralih dari "latest" ke "stable" di /config menanyakan apakah akan mengizinkan downgrade atau tetap di versi saat ini Anda; tetap atur minimumVersion. Instalasi Homebrew mengabaikan kunci ini: cask claude-code melacak stable dan claude-code@latest melacak latest, dan claude update menunda ke brew upgrade. Untuk mematikan pembaruan otomatis sepenuhnya, atur DISABLE_AUTOUPDATER di env.

minimumVersion

Cegah pembaruan otomatis latar belakang dan claude update dari menginstal versi apa pun di bawah yang ini, jadi berpindah ke saluran "stable" tidak menurunkan Anda dari build "latest" yang lebih baru. Claude Code menulis kunci ini untuk Anda ketika Anda memilih untuk tetap di versi saat ini Anda sambil beralih saluran di /config, dan menghapusnya ketika Anda beralih kembali ke "latest".

  • Scope: Any file. Atur di managed settings untuk menetapkan minimum di seluruh organisasi yang tidak dapat diturunkan oleh pengaturan pengguna dan proyek.
  • Type: string, nomor versi seperti "2.1.100"; nilai yang bukan versi valid diabaikan
  • Default: tidak diatur, jadi pembaruan dapat menginstal versi apa pun yang ditawarkan saluran

Contoh ini mengikuti saluran stable dan menolak untuk menginstal versi apa pun di bawah 2.1.100:

{
  "autoUpdatesChannel": "stable",
  "minimumVersion": "2.1.100"
}

Kunci ini hanya membatasi pembaruan. Untuk membuat Claude Code menolak memulai di bawah versi, gunakan requiredMinimumVersion sebagai gantinya. Lihat Pin a minimum version.

requiredMaximumVersion

Atur versi Claude Code terbaru yang diizinkan organisasi Anda untuk memulai. Ketika versi yang berjalan lebih baru, Claude Code keluar saat startup dan memberi tahu pengguna untuk menginstal versi yang disetujui melalui metode yang disetujui organisasi Anda; claude install <version> mungkin juga berfungsi. Memerlukan Claude Code v2.1.163 atau lebih baru.

  • Scope: Managed. Claude Code tidak memberikan peringatan ketika mengabaikan kunci di tempat lain.
  • Type: string, nomor versi seperti "2.1.150"; nilai yang bukan versi valid diabaikan
  • Default: tidak diatur, jadi tidak ada batas atas yang berlaku
{
  "requiredMaximumVersion": "2.1.150"
}

Pembaruan otomatis latar belakang dan claude update melewati versi di atas batas, jadi instalasi dalam rentang tetap berada di dalamnya. claude update, claude install, dan claude doctor terus bekerja di atas batas sehingga pengguna dapat pulih. Pasangkan dengan requiredMinimumVersion untuk memberlakukan rentang.

requiredMinimumVersion

Atur versi Claude Code tertua yang diizinkan organisasi Anda untuk memulai. Ketika versi yang berjalan lebih lama, Claude Code keluar saat startup dan memberi tahu pengguna untuk memperbarui melalui metode yang disetujui organisasi Anda. Pemeriksaan berjalan hanya saat startup, jadi sesi yang sudah berjalan terus berlanjut. Memerlukan Claude Code v2.1.163 atau lebih baru.

  • Scope: Managed. Claude Code tidak memberikan peringatan ketika mengabaikan kunci di tempat lain.
  • Type: string, nomor versi seperti "2.1.150"; nilai yang bukan versi valid diabaikan
  • Default: tidak diatur, jadi tidak ada batas bawah yang berlaku
{
  "requiredMinimumVersion": "2.1.150"
}

claude update, claude install, dan claude doctor terus bekerja di bawah batas sehingga pengguna dapat pulih. Tidak seperti minimumVersion, yang hanya mencegah downgrade, kunci ini memblokir startup. Pasangkan dengan requiredMaximumVersion untuk memberlakukan rentang.

Tools

Matikan alat tertentu di aplikasi desktop Claude Code. CLI terminal mengabaikan kunci-kunci ini. Untuk alat-alat itu sendiri, lihat Tools available to Claude.

browserExternalPageTools

Hentikan Claude dari menggunakan alatnya untuk membaca atau bertindak pada halaman eksternal di Browser pane aplikasi desktop. Orang-orang di organisasi Anda masih dapat membuka situs eksternal sendiri, dan pratinjau server dev lokal terus bekerja dengan alat Claude. Aplikasi desktop membaca kunci ini; CLI terminal mengabaikannya.

  • Scope: Managed
  • Type: string, "disabled"; aplikasi desktop juga menerima "disable", dalam kedua kasus
  • Default: tidak diatur, jadi alat Claude bekerja pada halaman eksternal
{
  "browserExternalPageTools": "disabled"
}

Nilai lainnya membiarkan alat Claude tetap aktif, dan string yang tidak kosong yang bukan salah satu dari dua nilai yang diterima mencatat peringatan. Untuk memblokir situs eksternal untuk orang-orang dan Claude, atur disableBrowserExternalNavigation sebagai gantinya. Lihat Restrict external browsing for your organization.

disableBrowserExternalNavigation

Matikan penjelajahan eksternal di Browser pane aplikasi desktop untuk orang-orang dan Claude. Pratinjau server dev localhost terus bekerja. Pratinjau HTML di sesi SSH dan WSL tetap terbuka, tetapi tidak menjalankan skrip. Aplikasi desktop membaca kunci ini; CLI terminal mengabaikannya.

  • Scope: Managed
  • Type: Boolean; hanya Boolean JSON true yang berlaku
    • true: aplikasi desktop mematikan penjelajahan eksternal di Browser pane untuk orang-orang dan Claude; pratinjau localhost terus bekerja
    • false: penjelajahan eksternal tetap aktif
  • Default: tidak diatur, jadi penjelajahan eksternal aktif
{
  "disableBrowserExternalNavigation": true
}

Aplikasi desktop mengabaikan nilai lainnya, dan nilai yang bukan Boolean, seperti string "true" atau 1, juga mencatat peringatan. Untuk membiarkan penjelajahan eksternal tetap aktif tetapi menjaga alat Claude tetap mati pada halaman eksternal, atur browserExternalPageTools sebagai gantinya. Lihat Restrict external browsing for your organization.

Jika komputer yang menjalankan aplikasi desktop tidak menerima pengaturan terkelola Claude Code lainnya, atur juga parentSettingsBehavior ke "merge" di pengaturan terkelola yang Anda buat. Di Windows, jika Anda membuat file pengaturan terkelola, pengguna juga kehilangan sesi WSL hingga Anda mengizinkannya. Lihat Turn off scripts in SSH and WSL previews for your organization untuk alasannya.

disableMobileSimulatorTools

Blokir alat Claude untuk iOS Simulator pane aplikasi desktop. Orang-orang tetap mempertahankan penggunaan manual dari pane; hanya akses Claude yang dihapus, dan tidak ada yang dapat menghidupkannya kembali dari dalam aplikasi. Aplikasi desktop membaca kunci ini; CLI terminal mengabaikannya.

  • Scope: Managed
  • Type: Boolean; hanya Boolean JSON true yang berlaku
    • true: aplikasi desktop memblokir alat Claude untuk iOS Simulator pane
    • false: alat simulator Claude mengikuti pengaturan toggle setiap orang di aplikasi desktop
  • Default: tidak diatur, jadi alat simulator Claude mengikuti pengaturan toggle setiap orang di aplikasi desktop
{
  "disableMobileSimulatorTools": true
}

Aplikasi desktop mengabaikan nilai lainnya, dan nilai yang bukan Boolean, seperti string "true" atau 1, juga mencatat peringatan.

Privasi dan telemetri

Kontrol berapa lama Claude Code menyimpan data sesi dan apa yang dikirimnya. Saklar yang mematikan metrik penggunaan dan laporan kesalahan adalah variabel lingkungan, bukan kunci pengaturan: atur DISABLE_TELEMETRY, DISABLE_ERROR_REPORTING, atau CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC dalam kunci env atau di shell. Layanan telemetri menjelaskan apa yang masing-masing hentikan. Dua pengecualian mematikan dari file pengaturan: feedbackDrafts di bawah untuk umpan balik yang dirancang Claude, dan feedbackSurveyRate di bawah untuk survei sesi.

cleanupPeriodDays

Atur berapa hari Claude Code menyimpan transkrip sesi dan data aplikasi lainnya sebelum menghapusnya. Claude Code menjalankan penghapusan sebagai sapuan latar belakang setelah sesi dimulai, selama dapat dengan aman menentukan periode retensi. Sapuan menghapus transkrip tanpa menampilkan pesan, jadi sesi yang belum Anda gunakan lebih lama dari periode retensi tidak lagi muncul di pemilih /resume.

Secara default, Claude Code menyimpan transkrip sesi yang Anda mulai atau lanjutkan terakhir di Claude Desktop atau Cowork melewati periode ini, bahkan jika Anda mengatur kunci ini sendiri. Periode ini tetap berlaku untuk transkrip tersebut dalam beberapa kasus, seperti pada konfigurasi HIPAA. Sebelum v2.1.248, Claude Code menghapusnya setelah periode ini.

  • Scope: Any file
  • Type: jumlah hari, bilangan bulat, minimum 1
  • Default: 30
{
  "cleanupPeriodDays": 20
}

Mengatur 0 gagal validasi, jadi pilih nilai besar seperti 3650 untuk retensi jangka panjang. Untuk menghentikan Claude Code dari penulisan transkrip sama sekali, lihat Plaintext storage.

desktopSessionCleanupPeriodDays

Atur batas usia dalam hari untuk transkrip sesi yang Anda mulai atau lanjutkan terakhir di Claude Desktop atau Cowork. Tanpa kunci ini, Claude Code menyimpan transkrip tersebut pada usia berapa pun, kecuali dalam kasus seperti sesi yang Anda hapus di Claude Desktop. Memerlukan Claude Code v2.1.248 atau lebih baru.

Claude Code menghapus setiap transkrip setelah usianya melebihi batas ini maupun cleanupPeriodDays, jadi dengan cleanupPeriodDays pada default 30, nilai 7 masih menyimpannya 30 hari. Dibersihkan secara otomatis mencantumkan kasus-kasus di mana cleanupPeriodDays berlaku sebagai gantinya dan Claude Code mengabaikan kunci ini.

  • Scope: User or managed. Claude Code juga membaca kunci dari file yang Anda berikan dengan --settings, dan mengabaikannya dalam pengaturan proyek dan lokal.
  • Type: jumlah hari, bilangan bulat, minimum 0
  • Default: 0, yang tidak menetapkan batas usia
{
  "desktopSessionCleanupPeriodDays": 90
}

feedbackDrafts

Kontrol umpan balik yang dirancang Claude: apakah Claude dapat mengantrekan draf umpan balik untuk Anda tinjau, dan apakah Claude Code menampilkan kartu ketika Claude mengantrekan satu.

  • Scope: User or managed
  • Type: string, salah satu dari "notify", "quiet", atau "off"
    • "notify": Claude Code menampilkan kartu di atas prompt ketika Claude mengantrekan draf, hingga tiga kartu dalam sesi secara default
    • "quiet": Claude membuat draf tanpa kartu. Anda melihat jumlah draf yang antri di footer prompt dan meninjau mereka di /feedback
    • "off": Claude Code menghapus alat SendFeedback, jadi Claude tidak dapat mengantrekan draf
  • Default: "notify"
  • Per-session overrides: CLAUDE_CODE_SEND_FEEDBACK diatur ke 0 mematikan fitur untuk satu sesi
{
  "feedbackDrafts": "quiet"
}

Muncul di /config sebagai Claude-drafted feedback, yang menulis kunci ini ke pengaturan pengguna Anda. Anda melihat baris /config hanya dalam sesi di mana Claude dapat membuat draf umpan balik; mengatur "off" tidak menyembunyikannya, jadi Anda dapat menghidupkan fitur kembali dari baris yang sama. Nilai dalam pengaturan terkelola mengambil alih pengaturan pengguna Anda, jadi ketika administrator menetapkan kunci ini, baris menampilkan nilai terkelola dan mengubahnya tidak berpengaruh. Claude Code mengabaikan kunci ini dalam pengaturan proyek dan lokal.

feedbackSurveyRate

Atur probabilitas bahwa survei kualitas sesi muncul ketika sesi memenuhi syarat untuk itu. Atur 0 untuk mencegah survei muncul.

  • Scope: Any file
  • Type: angka antara 0 dan 1
  • Default: tidak diatur, jadi Claude Code menggunakan tingkat yang Anthropic atur dari jarak jauh, atau tingkat bawaan 0.005 di Amazon Bedrock, Platform Agen Google Cloud, dan Microsoft Foundry, yang tidak menerima konfigurasi jarak jauh
  • Per-session overrides: CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY diatur ke 1 mematikan survei untuk satu sesi apa pun tingkat kunci ini atur
{
  "feedbackSurveyRate": 0.05
}

Tingkat yang sama berlaku untuk survei di ekstensi VS Code.

skipWebFetchPreflight

Lewati pemeriksaan keamanan domain WebFetch, yang mengirim setiap nama host yang diminta ke api.anthropic.com sebelum mengambil. Atur true di lingkungan yang memblokir lalu lintas ke Anthropic, seperti Amazon Bedrock, Platform Agen Google Cloud, atau penyebaran Microsoft Foundry dengan egress yang ketat.

  • Scope: Any file
  • Type: Boolean
    • true: Claude Code melewati pemeriksaan keamanan domain WebFetch
    • false: pemeriksaan berjalan sebelum pengambilan pertama ke setiap nama host dalam sesi, dan lagi untuk nama host yang pemeriksaannya sebelumnya diblokir atau gagal
  • Default: tidak diatur, jadi pemeriksaan berjalan sebelum pengambilan pertama ke setiap nama host dalam sesi
{
  "skipWebFetchPreflight": true
}

Dengan pemeriksaan dilewati, WebFetch mencoba URL apa pun tanpa berkonsultasi dengan daftar blokir, jadi pasangkan dengan aturan izin WebFetch jika Anda perlu membatasi domain mana yang dapat dijangkau Claude.

Pengaturan enterprise dan terkelola

Kunci yang digunakan organisasi untuk menghitung, menyegarkan, dan menggabungkan pengaturan terkelola. Lihat Siapkan pengaturan terkelola.

disableSideloadFlags

Tolak flag CLI --plugin-dir, --plugin-url, --agents, dan --mcp-config saat startup, yang dapat digunakan pengguna untuk melewati strictKnownMarketplaces untuk satu kali jalankan. Claude Code keluar dengan kesalahan yang menyebutkan flag yang ditolak. Dalam sesi cloud, Claude Code malah memulai sesi dan menghapus setiap entri --mcp-config yang dikirimkan server kecuali entri type: "sdk" dalam proses dan alat Slack sesi Claude Tag. Memerlukan Claude Code v2.1.193 atau lebih baru.

  • Scope: Managed
  • Type: Boolean
    • true: Claude Code menolak --plugin-dir, --plugin-url, --agents, dan --mcp-config saat startup dan keluar dengan kesalahan yang menyebutkannya. Dalam sesi cloud, ia malah memulai sesi dan menghapus setiap entri --mcp-config yang dikirimkan server kecuali entri type: "sdk" dalam proses dan alat Slack sesi Claude Tag
    • false: Claude Code menerima flag tersebut
  • Default: false
{
  "disableSideloadFlags": true
}

Claude Code masih menerima --mcp-config yang servernya adalah semua entri type: "sdk" dalam proses, sehingga Agent SDK dan ekstensi VS Code tetap berfungsi. Pengguna masih dapat menambahkan server dengan claude mcp add atau file .mcp.json; untuk kontrol per-server, atur allowedMcpServers juga. Memerlukan Claude Code v2.1.193 atau lebih baru.

disableSideloadFlags juga menolak folder plugin dari sumber-sumber berikut:

  • Environment variable CLAUDE_CODE_PLUGIN_DIRS: ketika variabel tersebut menyebutkan folder plugin, Claude Code keluar saat startup dengan kesalahan yang menyebutkan variabel tersebut dan meminta Anda untuk membatalkan pengaturannya. Memerlukan Claude Code v2.1.280 atau lebih baru
  • Opsi addPlugins Agent SDK: ketika aplikasi meneruskan folder plugin ke reloadPlugins() dalam addPlugins, panggilan tersebut gagal dengan kesalahan. Sesi tetap berjalan dengan plugin yang sudah dimilikinya. Memerlukan Claude Code v2.1.301 atau lebih baru

Dalam sesi cloud, Claude Code juga mengabaikan pembaruan MCP yang dikirimkan server di tengah sesi, jalur di balik konfigurasi sesi cloud dan panggilan SDK setMcpServers() yang mencapai sesi tersebut. Entri type: "sdk" dalam proses dan alat Slack sesi Claude Tag tetap dikecualikan di sana juga. Sebelum v2.1.268, baik penghapusan ini maupun penghapusan startup juga menghapus alat Slack sesi Claude Tag. Sebelum v2.1.239, --mcp-config yang dikirimkan server memblokir sesi cloud dari dimulai.

Aplikasi desktop mengelola beberapa plugin itu sendiri, termasuk plugin yang disinkronkan dari claude.ai dan plugin yang diterapkan organisasi Anda melalui aplikasi. Jika Anda menerapkan kunci ini ke perangkat melalui MDM, kebijakan tingkat OS, atau file pengaturan terkelola, aplikasi desktop tidak melewatkan plugin tersebut ke sesi berikut di perangkat itu:

  • Sesi Code di mesin pengguna: mereka juga dimulai tanpa skill yang diaktifkan untuk akun claude.ai pengguna. Plugin yang Claude Code instal dari marketplace dalam pengaturan terkelola Anda masih dimuat. Dalam Claude Desktop on 3P, server MCP dari plugin yang Anda terapkan ke direktori org-plugins perangkat tetap tersedia juga, karena aplikasi desktop terhubung ke mereka sendiri. Sebelum Claude Desktop v1.37937.0, sesi ini gagal saat startup.
  • Sesi Cowork di mesin pengguna: skill di dalam plugin tersebut dan skill yang diaktifkan untuk akun claude.ai pengguna tetap tersedia. Dalam Claude Desktop on 3P, server MCP dari plugin yang Anda terapkan ke direktori org-plugins perangkat tetap tersedia juga, karena aplikasi desktop terhubung ke mereka sendiri. Sebelum Claude Desktop v1.44121.0, sesi ini gagal saat startup.

forceRemoteSettingsRefresh

Blokir startup CLI hingga Claude Code telah segar mengambil pengaturan yang dikelola server. Jika pengambilan gagal, Claude Code keluar alih-alih melanjutkan dengan pengaturan yang di-cache atau tidak ada. Atur ketika lingkungan Anda tidak dapat menerima bahkan jendela singkat di mana sesi berjalan tanpa kebijakan terkelolanya.

Ketika kunci tidak diatur, Claude Code tidak memblokir startup pada pengambilan, meskipun ketika pengembang masuk saat startup ia menunggu hingga lima detik untuk pengambilan. Anthropic dapat mewajibkan pengaturan tersebut, yang memang memblokir startup tanpa pengaturan tersebut. Sesi Cloud gateway menunggu, dan keluar jika gateway tidak dapat dijangkau.

  • Scope: Managed. Claude Code menghormati true dari sumber terkelola yang dikontrol admin apa pun, bahkan yang bukan sumber prioritas tertinggi.
  • Type: Boolean
    • true: Claude Code memblokir startup hingga telah segar mengambil pengaturan yang dikelola server, dan keluar jika pengambilan gagal
    • false: kecuali Anthropic mewajibkan pengaturan tersebut, Claude Code tidak memblokir startup pada pengambilan, meskipun pada startup masuk ia menunggu hingga lima detik untuk pengambilan
  • Default: false
{
  "forceRemoteSettingsRefresh": true
}

Atur dalam profil MDM atau file pengaturan terkelola untuk memberlakukan startup fail-closed sebelum muatan server pertama tiba. Claude Code menerapkan pemeriksaan hanya dalam sesi yang mengambil pengaturan yang dikelola server, jadi sesi yang tidak mengambilnya dimulai tanpa menunggu. Subperintah claude auth dikecualikan, sehingga pengguna dapat mengotentikasi ulang ketika kredensial yang kedaluwarsa adalah alasan pengambilan gagal. Lihat Berlakukan startup fail-closed.

managedSourcesBehavior

Pilih apakah Claude Code menerapkan hanya sumber terkelola prioritas tertinggi yang disampaikan organisasi Anda, atau menggabungkan setiap sumber admin yang disampaikannya. Secara default Claude Code mengambil sumber prioritas tertinggi yang membawa kunci kebijakan dan mengabaikan sisanya. Kunci kebijakan adalah kunci pengaturan apa pun selain yang ini dan wslInheritsWindowsSettings. Jadi setelah pengaturan yang dikelola server atau kebijakan MDM memberikan kunci kebijakan, file managed-settings.json berkontribusi hanya kunci yang Claude Code baca dari setiap sumber admin. Dengan "merge", setiap sumber admin yang Anda sampaikan berkontribusi kuncinya ke satu kebijakan gabungan. Memerlukan Claude Code v2.1.242 atau lebih baru.

Atur "merge" hanya di mana setiap sumber peringkat di bawah yang tertinggi berada di bawah kontrol administrator, karena Claude Code kemudian menambahkan entri dari sumber yang lebih rendah, seperti aturan permissions.allow, ke kebijakan.

  • Scope: Managed. Claude Code membaca kunci ini dari sumber prioritas tertinggi yang membawa kunci ini atau kunci kebijakan, dan mengabaikan kunci ini di setiap sumber yang peringkatnya lebih rendah, jadi sumber yang lebih rendah tidak dapat memilih dirinya sendiri untuk menggabungkan dengan sumber di atasnya. Baik registri HKCU Windows maupun pengaturan induk dari host penyematan tidak berpartisipasi dalam penggabungan.
  • Type: string, salah satu dari:
    • "first-wins": sumber prioritas tertinggi yang membawa kunci kebijakan menyediakan kebijakan, dan sumber yang lebih rendah berkontribusi hanya kunci yang Claude Code baca dari setiap sumber admin
    • "merge": setiap sumber admin yang Anda sampaikan berkontribusi kuncinya, digabungkan oleh aturan di bawah
  • Default: "first-wins"

Sampaikan kunci dalam sumber prioritas tertinggi yang Anda terapkan. Mesin yang tidak pernah menerima pengaturan yang dikelola server memerlukan kunci dalam profil MDM-nya juga, karena Claude Code membaca kunci dari sumber prioritas tertinggi yang membawanya atau kunci kebijakan. File managed-settings.json adalah sumber admin dengan peringkat terendah, jadi "merge" yang ditetapkan di sana tidak memiliki sumber di bawahnya untuk digabungkan. Dalam pengaturan yang dikelola server, kunci terlihat seperti ini:

{
  "managedSourcesBehavior": "merge"
}

Di bawah "merge", Claude Code menggabungkan setiap kunci berdasarkan jenisnya. Tabel ini memberikan aturan untuk setiap jenis. Baris daftar pembatasan, nilai-diambil-utuh, dan hanya-sumber-tertinggi menyebutkan setiap kunci yang mereka tutupi, dan baris lainnya memberikan contoh:

Jenis kunci Bagaimana Claude Code menggabungkannya Kunci
Lists Menggabungkan entri dari setiap sumber permissions.allow, sandbox.network.allowedDomains, dan kunci daftar lainnya
Locks Menerapkan nilai paling ketat yang ditetapkan sumber apa pun. Ketika tidak ada sumber yang menetapkan nilai ketat, menerapkan nilai yang lebih longgar hanya dari sumber tertinggi allowManagedPermissionRulesOnly, permissions.disableBypassPermissionsMode, dan kunci boolean atau enum lock lainnya
Restriction allowlists Mengambil daftar utuh dari sumber tertinggi yang menetapkannya, tanpa menambahkan entri dari sumber yang lebih rendah. Ketika sumber tertinggi tidak menetapkannya, mengambilnya utuh dari sumber berikutnya ke bawah availableModels, allowedMcpServers, allowedProviders, strictKnownMarketplaces, allowedChannelPlugins, dan rantai fallbackModel
Values taken whole Mengambil nilai utuh dari sumber tertinggi yang menetapkannya, tanpa menggabungkan entri atau bidang dari sumber yang lebih rendah. Ketika sumber tertinggi tidak menetapkannya, mengambilnya utuh dari sumber berikutnya ke bawah sandbox.credentials.awsPairs, sandbox.ripgrep
Provided MCP servers Menggabungkan nama server dari setiap sumber. Ketika dua sumber menetapkan nama yang sama, menerapkan entri utuh sumber yang lebih tinggi managedMcpServers
Read from the highest-priority source only Membaca kunci hanya dari sumber prioritas tertinggi yang membawa kunci kebijakan, jadi nilai sumber yang lebih rendah diabaikan bahkan ketika sumber tertinggi tidak menetapkan apa pun apiKeyHelper, awsAuthRefresh, awsCredentialExport, gcpAuthRefresh, otelHeadersHelper, proxyAuthHelper, parentSettingsBehavior, modelPicker, policyHelper, permissions.defaultMode
env Menggabungkan per variabel di seluruh sumber admin, di bawah "first-wins" dan "merge" env
Setiap kunci lainnya Mengambil nilai dari sumber tertinggi yang menetapkannya cleanupPeriodDays, model

Mengambil sandbox.credentials.awsPairs dan sandbox.ripgrep utuh memerlukan Claude Code v2.1.257 atau lebih baru.

Beberapa kunci menambahkan kondisi yang tidak ditunjukkan tabel:

  • policyHelper: Claude Code menghormatinya hanya ketika sumber tertinggi yang membawa kunci kebijakan adalah kebijakan MDM atau file pengaturan terkelola, jadi di bawah pengaturan yang dikelola server tidak berlaku.
  • modelOverrides: berpasangan dengan availableModels. Claude Code mengambil modelOverrides dari sumber tertinggi yang menetapkannya, kecuali sumber yang lebih tinggi menetapkan availableModels tanpa modelOverrides. Dalam hal itu, ia mengabaikan modelOverrides dari setiap sumber.
  • forceLoginGatewayUrl, gatewayInternalNetworks, dan nilai "gateway" dari forceLoginMethod: Claude Code tidak pernah membaca salah satu dari mereka dari pengaturan yang dikelola server, jadi nilai di sana tidak berlaku atau menyembunyikan yang ditetapkan dalam kebijakan MDM atau file pengaturan terkelola. Di antara sumber admin di mesin, hanya yang tertinggi-peringkat yang membawa kunci kebijakan yang menyediakannya, terlepas dari apakah pengaturan yang dikelola server juga ada.
  • forceLoginOrgUUID dan nilai "claudeai" dan "console" dari forceLoginMethod: cari nilai mana yang berlaku di Sumber terkelola mana yang menyediakan kunci login, bukan di tabel.
  • allowedProviders: setelah aturan tabel, daftar mesin itu sendiri masih membatasi hasilnya, seperti yang dinyatakan catatan Scope entrinya.

Untuk mengonfirmasi sumber mana yang digabungkan di mesin, jalankan /status dan baca baris Setting sources.

parentSettingsBehavior

Pilih apakah Claude Code menerapkan pengaturan terkelola yang disediakan oleh proses host penyematan, seperti Agent SDK atau ekstensi IDE, ketika tingkat terkelola yang diterapkan admin juga ada. Dengan "first-wins", Claude Code menghapus pengaturan yang disediakan host; dengan "merge", ia menerapkannya di bawah tingkat admin melalui filter hanya-pembatasan. Atur "merge" ketika host perlu melewatkan pembatasannya sendiri ke sesi yang diluncurkannya, misalnya Claude Desktop memberikan daftar izin egress gateway.

  • Scope: Managed. Claude Code membacanya dari sumber terkelola yang dikontrol admin prioritas tertinggi.
  • Type: string, salah satu dari:
    • "first-wins": Claude Code menghapus pengaturan yang disediakan host ketika tingkat terkelola yang diterapkan admin ada
    • "merge": Claude Code menerapkan pengaturan yang disediakan host di bawah tingkat admin melalui filter hanya-pembatasan
  • Default: "first-wins"
{
  "parentSettingsBehavior": "merge"
}

Kunci ini tidak berpengaruh ketika tidak ada tingkat terkelola yang diterapkan admin: pengaturan host kemudian berlaku sebagai satu-satunya tingkat terkelola, masih disaring ke nilai pembatasan. Untuk batasan filter dan bagaimana sumber terkelola berinteraksi, lihat Pengaturan induk dari host penyematan dan Batasi pengaturan induk.

policyHelper

Jalankan executable yang Anda terapkan yang menghitung pengaturan terkelola saat startup, sehingga Anda dapat menurunkan kebijakan dari postur perangkat, identitas, atau layanan jarak jauh alih-alih file statis. Claude Code menjalankan helper sebelum menerima prompt pertama dan memperlakukan pengaturan yang dipancarkannya sebagai pengaturan terkelola untuk sesi.

  • Scope: Managed. Baca dari plist macOS, registri Windows HKLM, atau file pengaturan terkelola. Claude Code membaca kunci dari sumber terkelola prioritas tertinggi yang membawa kunci kebijakan dan menjalankan helper hanya ketika sumber itu adalah salah satu dari ketiga itu; ia mengabaikan kunci dalam pengaturan yang dikelola server, registri HKCU, dan pengaturan induk yang disediakan host.
  • Type: object dengan path, timeoutMs, dan refreshIntervalMs
  • Default: unset, jadi tidak ada helper yang berjalan

Ketika pengaturan yang dikelola server memberikan kebijakan saat peluncuran, mereka mengambil alih dari sumber helper dan helper tidak berjalan.

Jika pengambilan pengaturan yang lebih baru melaporkan pengaturan yang dikelola server dihapus, Claude Code menjalankan helper pada titik itu daripada menunggu peluncuran berikutnya. Outputnya mengatur sisa sesi, dan jalankan yang gagal mengakhiri sesi dengan pesan yang sama seperti jalankan startup yang gagal.

Contoh ini menjalankan helper dengan timeout 5 detik dan menjalankannya kembali setiap lima menit:

{
  "policyHelper": {
    "path": "/usr/local/bin/claude-policy",
    "timeoutMs": 5000,
    "refreshIntervalMs": 300000
  }
}

Tulis output helper

Claude Code menjalankan helper tanpa argumen, menetapkan CLAUDE_CODE_VERSION dalam lingkungannya, dan membaca amplop JSON dari stdout, dibatasi pada 1 MiB.

Letakkan pengaturan di bawah kunci managedSettings. Objek pengaturan telanjang tanpa kunci managedSettings diuraikan dengan managedSettings tidak terdefinisi dan tidak menerapkan apa pun, dan Claude Code melaporkan tidak ada kesalahan:

{
  "managedSettings": {
    "permissions": { "deny": ["Read(//etc/secrets/**)"] }
  }
}

Ketika helper memancarkan managedSettings, objek itu menjadi satu-satunya sumber pengaturan terkelola untuk jalankan: Claude Code mengabaikan sumber MDM, file, dan HKCU, membaca kunci lintas-sumber dari output helper saja, dan tidak pernah menggabungkan pengaturan induk.

Pemeriksaan forceRemoteSettingsRefresh startup berjalan sebelum helper dan membaca sumber admin apa pun. Helper yang keluar 0 dengan amplop yang menghilangkan managedSettings tidak berkontribusi pengaturan terkelola, dan sumber lainnya berlaku seperti biasa.

Helper failures

Jalankan helper gagal ketika:

  • path melanggar aturan dalam policyHelper.path.
  • Tidak ada file reguler di path. Claude Code memeriksa file sebelum memulai helper, dalam anggaran timeoutMs yang sama, jadi mount jaringan yang tidak responsif dapat menyebabkan jalankan gagal.
  • Helper keluar non-zero, masih berjalan ketika timeoutMs berlalu, atau tidak dimulai sama sekali, misalnya karena tidak dapat dieksekusi.
  • Helper menulis lebih dari 1 MiB ke stdout atau stderr.
  • stdout bukan objek JSON tunggal, atau managedSettings-nya memiliki pelanggaran skema yang tidak dapat diperbaiki Claude Code.

Ketika jalankan startup gagal, Claude Code mencetak alasan dan menolak untuk memulai. Setelah keluar non-zero, alasan mencakup stderr helper, atau stdout-nya ketika stderr kosong. Setelah timeout, alasan menyebutkan batas timeoutMs dan tidak menyertakan apa pun dari output helper. Penolakan mencakup sesi interaktif, claude -p, sesi Agent SDK, sesi latar belakang, dan sebagian besar subperintah.

Penolakan disengaja, jadi helper yang memerlukan ketahanan pemadaman harus melayani dari cache-nya sendiri dan keluar 0.

Ketika penyegaran latar belakang gagal, Claude Code menjaga kebijakan terakhir yang berhasil berlaku, dan /status menunjukkan penyegaran yang gagal dengan alasannya hingga penyegaran berhasil. Setiap penyegaran berjalan di bawah timeoutMs dan aturan kegagalan yang sama seperti jalankan startup.

Dengan --debug, Claude Code menulis stderr helper dari setiap jalankan ke log debug.

Claude Code melaporkan nilai policyHelper yang tidak valid sebagai entri yang dijatuhkan dan memulai sesi pada pengaturan terkelola yang tersisa tanpa menjalankan helper. Nilai yang tidak valid mencakup string path telanjang dan timeoutMs di bawah minimumnya.

Untuk mematikan helper, hapus kunci dari sumber yang menetapkannya.

policyHelper.path

Beri nama executable helper yang Claude Code jalankan. Untuk apa yang terjadi ketika path melanggar aturan di bawah, lihat Helper failures.

  • Scope: Managed. Baca dari plist macOS, registri Windows HKLM, atau file pengaturan terkelola, di mana pun policyHelper dibaca.
  • Type: string, jalur absolut dalam bentuk ternormalisasi, tanpa segmen . atau ..; di Windows, jalur huruf drive atau UNC yang berakhir dengan .exe
  • Default: none; diperlukan ketika policyHelper diatur
{
  "policyHelper": {
    "path": "/usr/local/bin/claude-policy"
  }
}

policyHelper.timeoutMs

Atur berapa lama Claude Code menunggu helper sebelum memperlakukan jalankan sebagai gagal. Jalankan yang timeout gagal dengan cara yang sama seperti keluar non-zero, jadi saat startup Claude Code menolak untuk memulai.

  • Scope: Managed. Baca dari plist macOS, registri Windows HKLM, atau file pengaturan terkelola, di mana pun policyHelper dibaca.
  • Type: integer, milliseconds, minimum 1000
  • Default: 10000
{
  "policyHelper": {
    "path": "/usr/local/bin/claude-policy",
    "timeoutMs": 5000
  }
}

policyHelper.refreshIntervalMs

Buat Claude Code menjalankan kembali helper di latar belakang pada interval sehingga perubahan kebijakan mencapai sesi yang berjalan. Ketika penyegaran berhasil, outputnya menggantikan pengaturan terkelola sebelumnya tanpa restart; ketika penyegaran gagal, Claude Code menjaga kebijakan yang sudah dimilikinya.

  • Scope: Managed. Baca dari plist macOS, registri Windows HKLM, atau file pengaturan terkelola, di mana pun policyHelper dibaca.
  • Type: integer, milliseconds: 0 untuk menonaktifkan penyegaran, jika tidak setidaknya 60000
  • Default: unset, jadi Claude Code menjalankan helper sekali saat startup

Contoh ini menjalankan kembali helper setiap lima menit:

{
  "policyHelper": {
    "path": "/usr/local/bin/claude-policy",
    "refreshIntervalMs": 300000
  }
}

wslInheritsWindowsSettings

Buat Claude Code di WSL membaca pengaturan terkelola dari rantai kebijakan Windows, dengan HKLM dan file pengaturan terkelola Windows mengambil prioritas atas /etc/claude-code dan HKCU di bawahnya. Sementara rantai aktif, Claude Code membaca /etc/claude-code hanya ketika tidak ada dokumen admin Windows yang ada dalam nilai registri HKLM atau folder C:\Program Files\ClaudeCode\. Atur untuk memperluas kebijakan yang sudah Anda terapkan di Windows ke sesi WSL di mesin yang sama, sehingga mereka mengikuti aturan yang sama seperti sesi host. Claude Code menghormatinya hanya ketika diatur dalam kunci registri HKLM atau dalam file pengaturan terkelola atau drop-in di bawah C:\Program Files\ClaudeCode\, keduanya memerlukan admin Windows untuk menulis.

  • Scope: Managed. Dalam sumber Windows yang dikontrol admin.
  • Type: Boolean
    • true: Claude Code di WSL membaca pengaturan terkelola dari rantai kebijakan Windows, dan membaca /etc/claude-code hanya ketika tidak ada dokumen admin Windows yang ada
    • false: WSL membaca hanya /etc/claude-code
  • Default: false, jadi WSL membaca hanya /etc/claude-code
{
  "wslInheritsWindowsSettings": true
}

Setelah sumber admin mengaktifkan rantai, kebijakan HKCU bergabung dengannya di WSL hanya ketika HKCU juga menetapkan kunci ke true. Salinan itu tidak mengaktifkan rantai dengan sendirinya. Sumber Windows yang hanya berisi kunci ini, yang diatur ke true atau false, tidak dihitung sebagai sumber kebijakan, jadi sumber prioritas yang lebih rendah masih menyediakan kebijakan. Kunci ini tidak berpengaruh pada Windows asli.

Claude Code membaca true dan false dengan atau tanpa tanda kutip dan membaca null sebagai menghapus kunci. Sumber Windows yang dikontrol admin yang menyimpan nilai apa pun yang lain dihitung sebagai dokumen admin yang ada dengan rantai diaktifkan: baik /etc/claude-code maupun HKCU tidak berlaku, dan peringatan startup menyebutkan kunci. Nilai HKLM atau file folder Windows yang ada tetapi tidak dapat dibaca juga menjaga /etc/claude-code dari berlaku terlepas dari apakah rantai aktif. Memerlukan Claude Code v2.1.282 atau lebih baru.

Pengaturan konfigurasi global

Simpan kunci-kunci ini di ~/.claude.json, bukan di file pengaturan. Claude Code mengabaikannya di tempat lain. Claude Code dan /config menulis sebagian besar dari mereka untuk Anda, dan Anda juga dapat mengeditnya secara manual.

autoConnectIde

Terhubung ke IDE yang sedang berjalan secara otomatis saat Anda memulai Claude Code dari terminal eksternal. Muncul di /config sebagai Auto-connect to IDE (external terminal) saat Anda menjalankan Claude Code di luar terminal VS Code atau JetBrains.

  • Scope: Global config
  • Type: Boolean
    • true: Claude Code terhubung ke IDE yang sedang berjalan secara otomatis saat Anda memulainya dari terminal eksternal
    • false: Claude Code tidak terhubung secara otomatis dari terminal eksternal; di dalam terminal VS Code atau JetBrains, atau dengan --ide, tetap terhubung
  • Default: false
  • Per-session overrides: CLAUDE_CODE_AUTO_CONNECT_IDE mengambil alih kunci ini untuk satu sesi, dalam kedua arah
{
  "autoConnectIde": true
}

Claude Code mengabaikan kunci ini di settings.json.

autoInstallIdeExtension

Izinkan /ide menginstal ekstensi IDE Claude Code di VS Code, Cursor, atau Devin Desktop yang sedang berjalan saat Anda menjalankan perintah tersebut dari terminal eksternal. Claude Code tidak menginstal atau memperbarui ekstensi saat Anda memulai claude. Sebelum v2.1.318, Claude Code menginstal atau memperbarui ekstensi saat Anda memulai claude di terminal salah satu editor tersebut, kecuali kunci ini bernilai false.

Muncul di /config sebagai Auto-install IDE extension saat Anda menjalankan Claude Code di dalam terminal VS Code atau JetBrains.

  • Scope: Global config
  • Type: Boolean
    • true: /ide menginstal ekstensi
    • false: /ide tidak menginstal ekstensi
  • Default: true
  • Per-session overrides: CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL diatur ke 1 melewati instalasi untuk satu sesi bahkan ketika kunci ini adalah true
{
  "autoInstallIdeExtension": false
}

Claude Code mengabaikan kunci ini di settings.json.

claudeInChromeDefaultEnabled

Mulai setiap sesi CLI interaktif dengan integrasi Chrome aktif, tanpa harus melewatkan --chrome setiap kali. Jika Anda menjalankan claude remote-control, sesi yang dimulainya untuk salah satu thread project Anda mengikuti kunci ini juga, kecuali dalam mode bypassPermissions. Dengan Claude Code v2.1.287 atau yang lebih baru, kunci ini juga berlaku untuk sesi di ekstensi VS Code: lihat Enable Chrome by default.

Menjalankan /chrome dan memilih Enabled by default mengatur kunci ini untuk Anda, begitu pula menjawab dialog "Claude in Chrome extension detected". Muncul di /config sebagai Claude in Chrome enabled by default.

  • Scope: Global config
  • Type: Boolean
    • true: Claude Code menghidupkan integrasi Chrome saat sesi CLI interaktif dimulai, seperti yang dilakukannya saat Anda melewatkan --chrome. Di ekstensi VS Code, sesi terhubung ke browser saat dimulai
    • false: sesi CLI interaktif dimulai dengan integrasi Chrome mati, dan Claude Code berhenti menawarkan untuk mengaturnya. Lewatkan --chrome untuk menghidupkannya untuk satu sesi interaktif. Di ekstensi VS Code, sesi terhubung saat Anda mengetik @browser, seperti saat kunci ini tidak diatur
  • Default: unset, jadi integrasi Chrome mati dan Claude Code masih dapat menawarkan untuk mengaturnya
  • Per-session overrides: --chrome dan --no-chrome mengambil alih kunci ini untuk satu sesi interaktif
{
  "claudeInChromeDefaultEnabled": true
}

Claude Code mengabaikan kunci ini di settings.json.

copyFullResponse

Buat /copy menyalin respons penuh setiap kali, tanpa menampilkan picker. Memilih Always copy full response di picker tersebut mengatur kunci ini ke true. Muncul di /config sebagai Skip the /copy picker.

  • Scope: Global config
  • Type: Boolean
    • true: /copy menyalin respons penuh tanpa menampilkan picker
    • false: saat respons berisi blok kode atau blockquote, /copy menampilkan picker di mana Anda memilih satu blok atau respons penuh
  • Default: false
{
  "copyFullResponse": true
}

Claude Code mengabaikan kunci ini di settings.json.

copyOnSelect

Salin teks ke clipboard Anda secara otomatis saat Anda selesai memilihnya dengan mouse di fullscreen rendering atau agent view. Muncul di /config sebagai Copy on select saat fullscreen rendering aktif.

{
  "copyOnSelect": false
}

Claude Code mengabaikan kunci ini di settings.json.

defaultToAgentsView

Buka agent view alih-alih percakapan baru saat Anda menjalankan claude tanpa argumen. Muncul di /config sebagai Open agents view by default kecuali agent view dimatikan.

  • Scope: Global config
  • Type: Boolean
    • true: claude tanpa argumen membuka agent view, kecuali agent view dimatikan
    • false: claude tanpa argumen memulai percakapan baru
  • Default: false
{
  "defaultToAgentsView": true
}

Claude Code mengabaikan kunci ini di settings.json.

diffTool

Pilih di mana Claude Code menampilkan diff dari perubahan Edit atau Write yang diusulkannya saat VS Code atau JetBrains IDE terhubung: "auto" membukanya di diff viewer IDE, "terminal" menyimpannya di terminal. Muncul di /config sebagai Diff tool hanya saat Claude Code terhubung ke VS Code atau JetBrains IDE.

  • Scope: Global config
  • Type: string, salah satu dari:
    • "auto": Claude Code membuka diff di diff viewer IDE saat VS Code atau JetBrains IDE terhubung
    • "terminal": Claude Code menyimpan diff di terminal
  • Default: "auto"
{
  "diffTool": "terminal"
}

Claude Code mengabaikan kunci ini di settings.json.

externalEditorContext

Saat Anda menekan Ctrl+G, Claude Code membuka prompt yang Anda ketik di external editor Anda. Dengan kunci ini aktif, buffer editor dimulai dengan respons sebelumnya Claude sebagai baris komentar #, sehingga Anda dapat membacanya saat Anda menulis, dan Claude Code menghapus baris-baris tersebut saat Anda menyimpan. Muncul di /config sebagai Show last response in external editor.

  • Scope: Global config
  • Type: Boolean
    • true: buffer editor dimulai dengan respons sebelumnya Claude sebagai baris komentar #, yang Claude Code hapus saat Anda menyimpan
    • false: buffer editor dibuka hanya dengan prompt Anda
  • Default: false
{
  "externalEditorContext": true
}

Dengan aktif, buffer yang Claude Code buka terlihat seperti ini, dan hanya teks di bawah garis penanda yang dikirim sebagai prompt Anda:

# ─── Claude's last response (for reference; removed on save) ───
# I added the retry loop to fetchUser in src/api.ts and a test
# for the timeout case. Want me to wire the same retry into
# fetchOrders?
# ─── Write your reply below this line ──────────────────────────

Yes, and cap it at three attempts.

Claude Code menyimpan 50 baris terakhir dari respons dan menandai potongan dengan # … (earlier output truncated).

Claude Code mengabaikan kunci ini di settings.json.

leftArrowOpensAgents

Tekan ← pada prompt kosong untuk menempatkan sesi di latar belakang dan membuka agent view. Atur kunci ini ke false untuk mematikan pintasan. Muncul di /config sebagai ← opens agents saat agent view tersedia.

  • Scope: Global config
  • Type: Boolean
    • true: menekan ← pada prompt kosong dalam sesi yang Anda mulai di terminal menempatkannya di latar belakang dan membuka agent view
    • false: Claude Code mematikan pintasan; dalam sesi yang Anda lampirkan dari agent view, ← pada prompt kosong masih melepaskan
  • Default: true
{
  "leftArrowOpensAgents": false
}

Claude Code mengabaikan kunci ini di settings.json.

permissionExplainerEnabled

[!WARNING]

Dihapus di v2.1.257, bersama dengan penjelasan perintah Ctrl+E pada prompt izin Bash dan PowerShell. Mengaturnya tidak berpengaruh pada versi saat ini.

Melalui v2.1.256, Anda dapat menekan Ctrl+E pada prompt izin Bash atau PowerShell untuk melihat penjelasan perintah yang dihasilkan model, dan atur kunci ini ke false untuk mematikan pintasan tersebut.

  • Scope: Global config. Pada v2.1.256 dan lebih awal.
  • Type: Boolean
  • Default: true

Tampilkan lencana di footer prompt untuk pull request atau merge request terbuka dari cabang saat ini, dengan garis bawah berwarna yang menunjukkan statusnya. Muncul di /config sebagai Show PR status footer.

{
  "prStatusFooterEnabled": false
}

Claude Code mengabaikan kunci ini di settings.json.

teammateDefaultModel

[!WARNING]

Dihapus di v2.1.234, bersama dengan baris /config Default teammate model. Mengaturnya tidak berpengaruh pada versi saat ini.

Melalui v2.1.233, Anda mengatur kunci ini ke model untuk rekan tim agent team yang prompt Anda tidak menamai model untuk: alias seperti "sonnet", atau null untuk mengikuti model lead. Untuk model yang Claude Code pilih untuk rekan tim seperti itu sekarang, lihat specify teammates and models.

  • Scope: Global config. Pada v2.1.233 dan lebih awal.
  • Type: string, alias model atau ID model lengkap, atau null
  • Default: unset

Lihat juga