91| `bypassPermissions` | Melewati prompt izin, kecuali untuk [tindakan yang tidak ada mode auto-approve](/docs/id/permission-modes#actions-no-mode-auto-approves) |91| `bypassPermissions` | Melewati prompt izin, kecuali untuk [tindakan yang tidak ada mode auto-approve](/docs/id/permission-modes#actions-no-mode-auto-approves) |
92 92
93<Warning>93<Warning>
94 Mode `bypassPermissions` melewati prompt izin, termasuk untuk penulisan ke [jalur terlindungi](/docs/id/permission-modes#protected-paths) seperti `.git` dan `.claude`. [Penjaga pesan lintas-sesi](/docs/id/permission-modes#skip-all-checks-with-bypasspermissions-mode) masih berlaku. Hanya gunakan mode ini di lingkungan terisolasi seperti kontainer atau VM tempat Claude Code tidak dapat menyebabkan kerusakan.94 Dalam mode `bypassPermissions`, Claude Code melewati prompt izin, termasuk untuk penulisan ke [jalur terlindungi](/docs/id/permission-modes#protected-paths) seperti `.git` dan `.claude`. [Penjaga pesan lintas-sesi](/docs/id/permission-modes#skip-all-checks-with-bypasspermissions-mode) masih berlaku. Hanya gunakan mode ini di lingkungan terisolasi seperti kontainer atau VM tempat Claude Code tidak dapat menyebabkan kerusakan.
95</Warning>95</Warning>
96 96
97Untuk mencegah mode `bypassPermissions` atau `auto` digunakan, atur `permissions.disableBypassPermissionsMode` atau `permissions.disableAutoMode` ke `"disable"` dalam [file pengaturan](/docs/id/settings#where-settings-live) apa pun. Ini paling berguna dalam [pengaturan terkelola](#managed-settings) di mana mereka tidak dapat ditimpa.97Untuk mencegah mode `bypassPermissions` atau `auto` digunakan, atur `permissions.disableBypassPermissionsMode` atau `permissions.disableAutoMode` ke `"disable"` dalam [file pengaturan](/docs/id/settings#where-settings-live) apa pun. Ini paling berguna dalam [pengaturan terkelola](#managed-settings) di mana mereka tidak dapat ditimpa.
165 Letakkan `*` setelah subperintah. Dalam `git log --oneline main`, `git` adalah program dan `log` adalah subperintah, kata yang menentukan apa yang dilakukan program. Claude Code mencocokkan semua yang sebelum `*` pertama seperti yang ditulis, jadi kata-kata tersebut adalah yang membatasi aturan: `Bash(git log *)` hanya memungkinkan perintah `git log`, dan `Bash(git *)` memungkinkan setiap perintah git. Claude Code [memperingatkan saat startup](/docs/id/errors#has-a-wildcard-before-the-rest-of-the-command) tentang aturan izin dengan `*` sebelum subperintah, seperti `Bash(git * main)`.165 Letakkan `*` setelah subperintah. Dalam `git log --oneline main`, `git` adalah program dan `log` adalah subperintah, kata yang menentukan apa yang dilakukan program. Claude Code mencocokkan semua yang sebelum `*` pertama seperti yang ditulis, jadi kata-kata tersebut adalah yang membatasi aturan: `Bash(git log *)` hanya memungkinkan perintah `git log`, dan `Bash(git *)` memungkinkan setiap perintah git. Claude Code [memperingatkan saat startup](/docs/id/errors#has-a-wildcard-before-the-rest-of-the-command) tentang aturan izin dengan `*` sebelum subperintah, seperti `Bash(git * main)`.
166</Warning>166</Warning>
167 167
168Tulis perintah yang ingin Anda jalankan Claude tanpa bertanya, dan ganti bagian yang bervariasi dengan `*`. Dengan konfigurasi ini, Claude Code menjalankan skrip npm dan git commit tanpa bertanya dan menolak git push:168Tulis perintah yang ingin Anda jalankan Claude tanpa bertanya, dan ganti bagian yang bervariasi dengan `*`. Dengan konfigurasi ini, Claude Code menjalankan skrip npm dan git commit tanpa bertanya dan menolak perintah yang dimulai dengan `git push`. Push yang ditulis dengan cara lain, seperti `git -C . push`, tidak cocok; lihat [apa yang tidak cocok dengan aturan Bash](#bash-rule-limits).
169 169
170```json theme={null}170```json theme={null}
171{171{
224 224
225Aturan penolakan atau tanya yang nama alatnya tidak cocok dengan alat yang dikenal menghasilkan peringatan startup untuk menangkap kesalahan ketik. Nama alat yang berisi `_` atau `*` dikecualikan dari pemeriksaan.225Aturan penolakan atau tanya yang nama alatnya tidak cocok dengan alat yang dikenal menghasilkan peringatan startup untuk menangkap kesalahan ketik. Nama alat yang berisi `_` atau `*` dikecualikan dari pemeriksaan.
226 226
227Label yang ditampilkan untuk alat dalam transkrip dan dialog izin dapat berbeda dari nama kanoniknya. Misalnya, alat yang diberi label `Stop Task` dalam transkrip memiliki nama kanonik `TaskStop`. Aturan izin dan [pencocokan hook](/docs/id/hooks) hanya cocok dengan nama kanonik, jadi aturan yang ditulis sebagai `Stop Task` tidak cocok. Untuk aturan penolakan dan tanya, peringatan startup di atas menangkap ketidaksesuaian. Gunakan nama kanonik yang tercantum dalam [referensi alat](/docs/id/tools-reference).227Label yang ditampilkan untuk alat dalam transkrip dan dialog izin dapat berbeda dari nama kanoniknya. Misalnya, alat yang diberi label `Stop Task` dalam transkrip memiliki nama kanonik `TaskStop`. Aturan izin dan [pencocokan hook](/docs/id/hooks) tidak cocok dengan label, jadi aturan yang ditulis sebagai `Stop Task` tidak cocok. Untuk aturan penolakan dan tanya, peringatan startup di atas menangkap ketidaksesuaian. Gunakan nama kanonik yang tercantum dalam [referensi alat](/docs/id/tools-reference).
228 228
229<h2 id="tool-specific-permission-rules">229<h2 id="tool-specific-permission-rules">
230 Aturan izin khusus alat230 Aturan izin khusus alat
234 Bash234 Bash
235</h3>235</h3>
236 236
237Aturan Bash mencocokkan seluruh teks perintah, dengan `*` mewakili teks apa pun. [Pola wildcard](#wildcard-patterns) menunjukkan perintah mana yang cocok dengan setiap bentuk aturan dan di mana menempatkan `*`. Sisa bagian ini mencakup cara Claude Code mencocokkan perintah gabungan, pembungkus, perintah hanya baca, dan pengalihan.237Aturan Bash mencocokkan seluruh teks perintah, dengan `*` mewakili teks apa pun. [Pola wildcard](#wildcard-patterns) menunjukkan perintah mana yang cocok dengan setiap bentuk aturan dan di mana menempatkan `*`. Sisa bagian ini mencakup cara Claude Code mencocokkan perintah gabungan dan pembungkus, apa yang tidak dicocokkan aturan, perintah hanya baca, dan pengalihan.
238 238
239<h4 id="compound-commands">239<h4 id="compound-commands">
240 Perintah gabungan240 Perintah gabungan
264 264
265Pembungkus exec seperti `watch`, `setsid`, `ionice`, dan `flock` tidak dapat disetujui otomatis oleh aturan awalan seperti `Bash(watch *)`, jadi dalam mode Manual mereka selalu meminta. Hal yang sama berlaku untuk `find` dengan `-exec` atau `-delete`: aturan `Bash(find *)` tidak mencakup bentuk ini. Untuk menyetujui invokasi spesifik, tulis aturan pencocokan tepat untuk string perintah lengkap.265Pembungkus exec seperti `watch`, `setsid`, `ionice`, dan `flock` tidak dapat disetujui otomatis oleh aturan awalan seperti `Bash(watch *)`, jadi dalam mode Manual mereka selalu meminta. Hal yang sama berlaku untuk `find` dengan `-exec` atau `-delete`: aturan `Bash(find *)` tidak mencakup bentuk ini. Untuk menyetujui invokasi spesifik, tulis aturan pencocokan tepat untuk string perintah lengkap.
266 266
267<h4 id="bash-rule-limits">
268 Apa yang tidak dicocokkan aturan Bash
269</h4>
270
271Aturan Bash mencocokkan teks perintah yang ditulis Claude, setelah Claude Code membagi [perintah gabungan](#compound-commands) dan menghilangkan [pembungkus](#process-wrappers). Aturan tidak mencocokkan program yang sama yang dipanggil dalam bentuk berbeda, jadi aturan deny atau ask mencakup invokasi yang biasanya dihasilkan Claude dan bukan batas keamanan di sekitar program. Aturan ini dalam `deny` atau `ask` menghentikan bentuk pertama dan bukan yang lain:
272
273| Aturan | Menghentikan | Tidak menghentikan |
274| :----------------- | :------------------------- | :---------------------------------------------------------------------------------------------------- |
275| `Bash(curl *)` | `curl https://example.com` | `/usr/bin/curl https://example.com`, `sh -c 'curl https://example.com'` |
276| `Bash(rm *)` | `rm -rf build/` | `/bin/rm -rf build/`, `bash -c 'rm -rf build/'` |
277| `Bash(git push *)` | `git push origin main` | `git -C . push origin main`, `git -c push.default=current push origin main`, `git 'push' origin main` |
278
279Aturan lain Anda dan mode izin memutuskan perintah di kolom terakhir.
280
281Untuk penegakan sistem file dan jaringan yang tidak bergantung pada teks perintah, gunakan [sandboxing](/docs/id/sandboxing). Untuk memeriksa teks perintah lengkap dengan logika Anda sendiri sebelum dijalankan, gunakan hook [PreToolUse](#extend-permissions-with-hooks).
282
267<h4 id="read-only-commands">283<h4 id="read-only-commands">
268 Perintah hanya baca284 Perintah hanya baca
269</h4>285</h4>
294 * Protokol berbeda: `curl https://github.com/...`310 * Protokol berbeda: `curl https://github.com/...`
295 * Pengalihan: `curl -L http://short.example.com/xyz`, yang mengalihkan ke GitHub311 * Pengalihan: `curl -L http://short.example.com/xyz`, yang mengalihkan ke GitHub
296 * Variabel: `URL=http://github.com && curl $URL`312 * Variabel: `URL=http://github.com && curl $URL`
297 * Spasi ekstra: `curl http://github.com`
298 313
299 Untuk penyaringan URL yang lebih andal, pertimbangkan:314 Untuk penyaringan URL yang lebih andal, pertimbangkan:
300 315
301 * **Batasi alat jaringan Bash**: gunakan aturan deny untuk memblokir `curl`, `wget`, dan alat serupa, kemudian gunakan alat WebFetch dengan izin `WebFetch(domain:github.com)` untuk domain yang diizinkan316 * **Batasi alat jaringan Bash**: gunakan aturan deny untuk memblokir `curl`, `wget`, dan alat serupa, kemudian gunakan alat WebFetch dengan izin `WebFetch(domain:github.com)` untuk domain yang diizinkan. Aturan deny tidak mencocokkan program yang sama berdasarkan jalur atau di dalam `sh -c`, jadi pasangkan dengan [allowlist jaringan sandbox](/docs/id/sandboxing#network-isolation) ketika pembatasan harus berlaku; lihat [apa yang tidak dicocokkan aturan Bash](#bash-rule-limits)
302 * **Gunakan hook PreToolUse**: implementasikan hook yang memvalidasi URL dalam perintah Bash dan memblokir domain yang tidak diizinkan317 * **Gunakan hook PreToolUse**: implementasikan hook yang memvalidasi URL dalam perintah Bash dan memblokir domain yang tidak diizinkan
303 * **Tambahkan panduan CLAUDE.md**: jelaskan pola curl yang diizinkan Anda di `CLAUDE.md`. Ini membentuk apa yang Claude coba tetapi tidak memberlakukan batas, jadi pasangkan dengan salah satu opsi di atas318 * **Tambahkan panduan CLAUDE.md**: jelaskan pola curl yang diizinkan Anda di `CLAUDE.md`. Ini membentuk apa yang Claude coba tetapi tidak memberlakukan batas, jadi pasangkan dengan salah satu opsi di atas
304 319
353Claude Code memeriksa izin file terhadap aturan `Edit(path)` dan `Read(path)` saja. Jika Anda menulis aturan jalur untuk `Write`, `NotebookEdit`, `Glob`, atau alat `MultiEdit` warisan sebagai gantinya, Claude Code menerima aturan tetapi tidak pernah berkonsultasi dengannya, dan [memperingatkan saat startup](/docs/id/errors#is-not-matched-by-file-permission-checks), kecuali untuk aturan `Glob` yang dilewatkan dalam `--allowedTools`. Gunakan `Edit(docs/**)` sebagai pengganti `Write(docs/**)`, `NotebookEdit(docs/**)`, atau `MultiEdit(docs/**)`, dan `Read(docs/**)` sebagai pengganti `Glob(docs/**)`. Claude Code tidak memperingatkan tentang aturan nama alat tanpa jalur, seperti aturan deny untuk `Write`; itu mencocokkan aturan itu di tingkat alat di mana-mana. Memerlukan Claude Code v2.1.210 atau lebih baru.368Claude Code memeriksa izin file terhadap aturan `Edit(path)` dan `Read(path)` saja. Jika Anda menulis aturan jalur untuk `Write`, `NotebookEdit`, `Glob`, atau alat `MultiEdit` warisan sebagai gantinya, Claude Code menerima aturan tetapi tidak pernah berkonsultasi dengannya, dan [memperingatkan saat startup](/docs/id/errors#is-not-matched-by-file-permission-checks), kecuali untuk aturan `Glob` yang dilewatkan dalam `--allowedTools`. Gunakan `Edit(docs/**)` sebagai pengganti `Write(docs/**)`, `NotebookEdit(docs/**)`, atau `MultiEdit(docs/**)`, dan `Read(docs/**)` sebagai pengganti `Glob(docs/**)`. Claude Code tidak memperingatkan tentang aturan nama alat tanpa jalur, seperti aturan deny untuk `Write`; itu mencocokkan aturan itu di tingkat alat di mana-mana. Memerlukan Claude Code v2.1.210 atau lebih baru.
354 369
355<Warning>370<Warning>
356 Aturan deny Read dan Edit berlaku untuk alat file bawaan Claude, untuk perintah file yang Claude Code kenali di Bash, seperti `cat`, `head`, `tail`, dan `sed`, dan untuk target pengalihan Bash [redirections](#redirections) seperti `> file` dan `< file`. Mereka tidak berlaku untuk subproses arbitrer yang membaca atau menulis file secara tidak langsung, seperti skrip Python atau Node yang membuka file itu sendiri. Untuk penegakan tingkat OS yang memblokir semua proses dari mengakses jalur, [aktifkan sandbox](/docs/id/sandboxing).371 Aturan deny Read dan Edit berlaku untuk alat file bawaan Claude, untuk perintah file yang Claude Code kenali di Bash, seperti `cat`, `head`, `tail`, dan `sed`, dan untuk target pengalihan Bash [redirections](#redirections) seperti `> file` dan `< file`. Mereka tidak berlaku untuk perintah yang membaca file tanpa menamakannya, seperti `grep -r pattern .` dijalankan dari direktori yang menyimpan file, atau untuk subproses arbitrer yang membaca atau menulis file secara tidak langsung, seperti skrip Python atau Node yang membuka file itu sendiri. Untuk penegakan tingkat OS yang memblokir semua proses dari mengakses jalur, [aktifkan sandbox](/docs/id/sandboxing).
357</Warning>372</Warning>
358 373
359Aturan Read dan Edit keduanya menggunakan sintaks pola [gitignore](https://git-scm.com/docs/gitignore) dengan empat jenis pola yang berbeda; untuk pola direktori segmen tunggal, kedalaman pencocokan juga bergantung pada jenis aturan, dijelaskan nanti di bagian ini:374Aturan Read dan Edit keduanya menggunakan sintaks pola [gitignore](https://git-scm.com/docs/gitignore) dengan empat jenis pola yang berbeda; untuk pola direktori segmen tunggal, kedalaman pencocokan juga bergantung pada jenis aturan, dijelaskan nanti di bagian ini:
534Pola jalur berbagi jangkar `//`, `~/`, dan `/` dari [aturan Read dan Edit](#read-and-edit), tetapi pencocokan berlabuh ke seluruh jalur direktori daripada gaya gitignore. `*` mencocokkan tepat satu segmen jalur dan `**` mencocokkan di seluruh segmen. Trailing `/**` juga mencocokkan akar yang dinamainya.549Pola jalur berbagi jangkar `//`, `~/`, dan `/` dari [aturan Read dan Edit](#read-and-edit), tetapi pencocokan berlabuh ke seluruh jalur direktori daripada gaya gitignore. `*` mencocokkan tepat satu segmen jalur dan `**` mencocokkan di seluruh segmen. Trailing `/**` juga mencocokkan akar yang dinamainya.
535 550
536| Aturan | Cocok | Tidak cocok |551| Aturan | Cocok | Tidak cocok |
537| --------------------- | ----------------------------------------------------- | -------------------------- |552| --------------------- | --------------------------------------------------------------------------------- | -------------------------- |
538| `Cd(~/code/*)` | `~/code/app` | `~/code/app/src`, `~/code` |553| `Cd(~/code/*)` | `~/code/app` | `~/code/app/src`, `~/code` |
539| `Cd(~/code/**)` | `~/code` dan direktori apa pun di bawahnya | direktori di luar `~/code` |554| `Cd(~/code/**)` | `~/code` dan direktori apa pun di bawahnya | direktori di luar `~/code` |
540| `Cd(**/node_modules)` | direktori `node_modules` apa pun di kedalaman apa pun | `node_modules/pkg` |555| `Cd(**/node_modules)` | direktori `node_modules` apa pun di kedalaman apa pun di bawah direktori saat ini | `node_modules/pkg` |
541 556
542<h2 id="extend-permissions-with-hooks">557<h2 id="extend-permissions-with-hooks">
543 Perluas izin dengan hook558 Perluas izin dengan hook
567 582
568Atur [`permissions.blockReadsOutsideWorkingDirectories`](/docs/id/settings-reference#permissions-blockreadsoutsideworkingdirectories) untuk membuat alat file menolak jalur yang dibatasi dalam setiap mode izin. Dalam mode otomatis, Claude Code menawarkan untuk mengaktifkannya pertama kali Claude [membaca di luar direktori kerja](/docs/id/permission-modes#first-read-outside-the-working-directories).583Atur [`permissions.blockReadsOutsideWorkingDirectories`](/docs/id/settings-reference#permissions-blockreadsoutsideworkingdirectories) untuk membuat alat file menolak jalur yang dibatasi dalam setiap mode izin. Dalam mode otomatis, Claude Code menawarkan untuk mengaktifkannya pertama kali Claude [membaca di luar direktori kerja](/docs/id/permission-modes#first-read-outside-the-working-directories).
569 584
570Dalam sesi latar belakang di macOS, host sesi meminta akses ke folder yang dilindungi seperti `~/Desktop`, `~/Documents`, dan `~/Downloads` secara terpisah dari terminal Anda ketika Claude perlu membaca atau menulis file di sana; jika pembacaan di sana gagal dengan `Operation not permitted`, lihat [cara memberikan akses folder ke sesi latar belakang](/docs/id/agent-view#background-sessions-can't-read-desktop-documents-or-downloads-on-macos).585Dalam sesi latar belakang di macOS, host sesi meminta akses ke folder yang dilindungi seperti `~/Desktop`, `~/Documents`, dan `~/Downloads` secara terpisah dari terminal Anda ketika Claude perlu membaca atau menulis file di sana; jika pembacaan di sana gagal dengan `Operation not permitted`, lihat [cara memberikan akses folder ke sesi latar belakang](/docs/id/agent-view#background-sessions-can%E2%80%99t-read-desktop-documents-or-downloads-on-macos).
571 586
572<h3 id="move-the-session-to-another-directory">587<h3 id="move-the-session-to-another-directory">
573 Memindahkan sesi ke direktori lain588 Memindahkan sesi ke direktori lain
627* **Izin** mengontrol alat mana yang dapat digunakan Claude Code dan file atau domain mana yang dapat diaksesnya. Mereka berlaku untuk Bash, Read, Edit, WebFetch, MCP, dan setiap alat lainnya, kecuali bahwa aturan deny atau ask tidak dapat memblokir [`EndConversation`](/docs/id/tools-reference#endconversation-tool-behavior) sementara alat lain tetap ada.642* **Izin** mengontrol alat mana yang dapat digunakan Claude Code dan file atau domain mana yang dapat diaksesnya. Mereka berlaku untuk Bash, Read, Edit, WebFetch, MCP, dan setiap alat lainnya, kecuali bahwa aturan deny atau ask tidak dapat memblokir [`EndConversation`](/docs/id/tools-reference#endconversation-tool-behavior) sementara alat lain tetap ada.
628* **Sandboxing** menyediakan penegakan tingkat OS yang membatasi akses sistem file dan jaringan alat Bash. Ini hanya berlaku untuk perintah Bash dan proses anak mereka.643* **Sandboxing** menyediakan penegakan tingkat OS yang membatasi akses sistem file dan jaringan alat Bash. Ini hanya berlaku untuk perintah Bash dan proses anak mereka.
629 644
630Gunakan keduanya untuk pertahanan berlapis:645Gunakan keduanya untuk pertahanan berlapis, karena pembatasan sandbox masih berlaku bahkan jika injeksi prompt melewati pengambilan keputusan Claude. Jalur dan domain dari pengaturan sandbox dan aturan izin [digabungkan ke dalam konfigurasi sandbox akhir](/docs/id/sandboxing#permission-rules).
631
632* Aturan deny izin memblokir Claude dari bahkan mencoba mengakses sumber daya terbatas
633* Pembatasan sandbox mencegah perintah Bash menjangkau sumber daya di luar batas yang ditentukan, bahkan jika injeksi prompt melewati pengambilan keputusan Claude
634* Pembatasan sistem file di sandbox menggabungkan pengaturan [`sandbox.filesystem`](/docs/id/sandboxing) dengan aturan deny Read dan Edit; keduanya digabungkan ke dalam batas sandbox akhir
635* Pembatasan jaringan menggabungkan aturan izin `WebFetch(domain:...)` dengan daftar `allowedDomains` dan `deniedDomains` sandbox
636 646
637Ketika Anda mengaktifkan sandboxing dan membiarkan `autoAllowBashIfSandboxed` pada default `true`, perintah Bash yang di-sandbox berjalan tanpa meminta bahkan jika izin Anda mencakup aturan ask `Bash` biasa, atau [bentuk setara `Bash(*)`](#match-all-uses-of-a-tool): batas sandbox menggantikan prompt seluruh alat tersebut.647Ketika Anda mengaktifkan sandboxing dan membiarkan `autoAllowBashIfSandboxed` pada default `true`, perintah Bash yang di-sandbox berjalan tanpa meminta bahkan jika izin Anda mencakup aturan ask `Bash` biasa, atau [bentuk setara `Bash(*)`](#match-all-uses-of-a-tool): batas sandbox menggantikan prompt seluruh alat tersebut.
638 648
678 688
679Claude Code menyimpan kepercayaan yang Anda terima sesuai dengan tempat Anda memulainya:689Claude Code menyimpan kepercayaan yang Anda terima sesuai dengan tempat Anda memulainya:
680 690
681* Dalam repositori, Claude Code mengunci kepercayaan pada akar repositori git, jadi kepercayaan mencakup seluruh repositori terlepas dari repositori git apa pun yang bersarang di dalamnya, seperti submodul. Dalam [worktree](/docs/id/worktrees), ia menggunakan akar checkout utama, seperti yang dilakukannya untuk [aturan yang disimpan](#permission-system).691* Dalam repositori, Claude Code mengunci kepercayaan pada akar repositori git, jadi kepercayaan mencakup seluruh repositori kecuali repositori git apa pun yang bersarang di dalamnya, seperti submodul. Dalam [worktree](/docs/id/worktrees), ia menggunakan akar checkout utama, seperti yang dilakukannya untuk [aturan yang disimpan](#permission-system).
682* Di luar repositori, Claude Code mengunci kepercayaan pada direktori tempat Anda memulainya, dan kepercayaan mencakup subdirektori apa pun dari direktori tersebut terlepas dari repositori git yang bersarang di dalamnya, seperti klon. Setiap subdirektori yang tercakup kemudian dihitung sebagai folder yang induknya Anda percayai.692* Di luar repositori, Claude Code mengunci kepercayaan pada direktori tempat Anda memulainya, dan kepercayaan mencakup subdirektori apa pun dari direktori tersebut kecuali repositori git yang bersarang di dalamnya, seperti klon. Setiap subdirektori yang tercakup kemudian dihitung sebagai folder yang induknya Anda percayai.
683* Ketika Anda memulai di direktori home Anda, Claude Code menyimpan kepercayaan hanya untuk sesi saat ini dan tidak menulisnya ke disk; lihat catatan [safeguard tambahan](/docs/id/security#additional-safeguards).693* Ketika Anda memulai di direktori home Anda, Claude Code menyimpan kepercayaan hanya untuk sesi saat ini dan tidak menulisnya ke disk; lihat catatan [safeguard tambahan](/docs/id/security#additional-safeguards).
684 694
685Claude Code menampilkan dialog kepercayaan hanya dalam sesi interaktif. Jalankan `claude -p` atau sesi SDK tidak pernah menampilkannya, dan mempercayai folder induk tidak dihitung untuk aturan ini, jadi [Apa yang berjalan sebelum Anda mempercayai folder](#what-runs-before-you-trust-a-folder) mengatakan konten repositori mana yang masih digunakan Claude Code dalam masing-masing dari dua situasi tersebut.695Claude Code menampilkan dialog kepercayaan hanya dalam sesi interaktif. Jalankan `claude -p` atau sesi SDK tidak pernah menampilkannya, dan mempercayai folder induk tidak dihitung untuk aturan ini, jadi [Apa yang berjalan sebelum Anda mempercayai folder](#what-runs-before-you-trust-a-folder) mengatakan konten repositori mana yang masih digunakan Claude Code dalam masing-masing dari dua situasi tersebut.
720 730
721Sebelum Anda menjalankan `claude -p` dalam repositori yang tidak Anda tulis, putuskan apa yang mungkin dijalankannya di mesin Anda:731Sebelum Anda menjalankan `claude -p` dalam repositori yang tidak Anda tulis, putuskan apa yang mungkin dijalankannya di mesin Anda:
722 732
723* Lewati `--setting-sources user`, atau atur `settingSources` SDK tanpa pengaturan proyek, jadi Claude Code tidak membaca file pengaturan proyek atau `.mcp.json` nya733* Berikan `--setting-sources user`, atau atur `settingSources` SDK tanpa pengaturan proyek, jadi Claude Code tidak membaca file pengaturan proyek atau `.mcp.json` nya
724* Mulai dengan [`--bare`](/docs/id/headless#start-faster-with-bare-mode) jadi Claude Code tidak membaca hooks, skills, perintah khusus, subagents, plugins, atau server `.mcp.json` dari proyek. Blok `env` proyek dan pembantu seperti `awsAuthRefresh` dalam file pengaturannya masih berlaku, dan Claude Code membaca `apiKeyHelper` hanya dari `--settings`734* Mulai dengan [`--bare`](/docs/id/headless#start-faster-with-bare-mode) jadi Claude Code tidak membaca hooks, skills, perintah khusus, subagents, plugins, atau server `.mcp.json` dari proyek. Blok `env` proyek dan pembantu seperti `awsAuthRefresh` dalam file pengaturannya masih berlaku, dan Claude Code membaca `apiKeyHelper` hanya dari `--settings`
725* Lewati `--settings '{"disableAllHooks": true}'` untuk [mematikan hooks](/docs/id/hooks#disable-or-remove-hooks) untuk jalankan itu. Menetapkannya dalam pengaturan pengguna Anda saja tidak cukup, karena pengaturan proyek repositori mengambil alih milik Anda dan dapat menetapkannya kembali ke `false`735* Berikan `--settings '{"disableAllHooks": true}'` untuk [mematikan hooks](/docs/id/hooks#disable-or-remove-hooks) untuk jalankan itu. Menetapkannya dalam pengaturan pengguna Anda saja tidak cukup, karena pengaturan proyek repositori mengambil alih milik Anda dan dapat menetapkannya kembali ke `false`
726* Tambahkan entri [`disabledMcpjsonServers`](/docs/id/settings-reference#disabledmcpjsonservers) untuk menolak server `.mcp.json` berdasarkan nama dalam setiap jenis sesi736* Tambahkan entri [`disabledMcpjsonServers`](/docs/id/settings-reference#disabledmcpjsonservers) untuk menolak server `.mcp.json` berdasarkan nama dalam setiap jenis sesi
727 737
728<h2 id="example-configurations">738<h2 id="example-configurations">