SpyBara
Go Premium

Documentation 2026-09-09 22:58 UTC to 2026-09-10 23:00 UTC

9 files changed +72 −48. View all changes and history on the product overview
2026
Fri 25 23:58 Thu 24 22:57 Wed 23 23:57 Tue 22 23:59 Mon 21 22:59 Sun 20 23:59 Sat 19 23:57 Fri 18 23:58 Tue 15 23:58 Mon 14 22:58 Sun 13 21:00 Sat 12 03:02 Thu 10 23:00 Wed 9 22:58 Tue 8 20:00 Tue 1 21:02
Details

199 ...process.env,199 ...process.env,

200 // ... exporter configuration from the Enable telemetry export example ...200 // ... exporter configuration from the Enable telemetry export example ...

201 OTEL_SERVICE_NAME: "support-triage-agent",201 OTEL_SERVICE_NAME: "support-triage-agent",

202 OTEL_RESOURCE_ATTRIBUTES":202 OTEL_RESOURCE_ATTRIBUTES:

203 "service.version=1.4.0,deployment.environment=production",203 "service.version=1.4.0,deployment.environment=production",

204 },204 },

205 };205 };

Details

3166<Note>3166<Note>

3167 Pada Python Agent SDK 0.2.139 dan lebih baru, pembatasan berikut berlaku.3167 Pada Python Agent SDK 0.2.139 dan lebih baru, pembatasan berikut berlaku.

3168 3168 

3169 The following tools aren't available on Opus 4.8, Sonnet 5, Fable 5, Mythos 5, or later versions of those families unless you opt in:3169 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:

3170 3170 

3171 * `TodoWrite`3171 * `TodoWrite`

3172 * `TaskCreate`3172 * `TaskCreate`


3174 * `TaskUpdate`3174 * `TaskUpdate`

3175 * `TaskList`3175 * `TaskList`

3176 3176 

3177 On other models, Claude Code provides the Task tools by default and `TodoWrite` only when you set `CLAUDE_CODE_ENABLE_TASKS=0`.3177 Wherever the tools are available, Claude Code provides the four Task tools, or `TodoWrite` instead when you set `CLAUDE_CODE_ENABLE_TASKS=0`.

3178 

3179 This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268.

3178 3180 

3179 Lihat [Model availability](/docs/id/agent-sdk/todo-tracking#model-availability) untuk opt in.3181 Lihat [Model availability](/docs/id/agent-sdk/todo-tracking#model-availability) untuk opt in.

3180</Note>3182</Note>

Details

17<Note>17<Note>

18 Pada TypeScript Agent SDK 0.3.233 dan lebih baru, atau Python Agent SDK 0.2.139 dan lebih baru, pembatasan berikut berlaku.18 Pada TypeScript Agent SDK 0.3.233 dan lebih baru, atau Python Agent SDK 0.2.139 dan lebih baru, pembatasan berikut berlaku.

19 19 

20 The following tools aren't available on Opus 4.8, Sonnet 5, Fable 5, Mythos 5, or later versions of those families unless you opt in:20 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:

21 21 

22 * `TodoWrite`22 * `TodoWrite`

23 * `TaskCreate`23 * `TaskCreate`


25 * `TaskUpdate`25 * `TaskUpdate`

26 * `TaskList`26 * `TaskList`

27 27 

28 On other models, Claude Code provides the Task tools by default and `TodoWrite` only when you set `CLAUDE_CODE_ENABLE_TASKS=0`.28 Wherever the tools are available, Claude Code provides the four Task tools, or `TodoWrite` instead when you set `CLAUDE_CODE_ENABLE_TASKS=0`.

29 

30 This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268.

29</Note>31</Note>

30 32 

31Pada model yang tercantum, kecuali Anda memilih sesi, Anda tidak melihat blok `tool_use` untuk alat dalam aliran pesan. Agent SDK menerapkan default ini melalui biner Claude Code yang disertakannya. Jika Anda menunjuk `pathToClaudeCodeExecutable` (TypeScript) atau `cli_path` (Python) ke instalasi Claude Code Anda sendiri, Anda mendapatkan alat apa pun yang disediakan instalasi tersebut, di bawah default-nya sendiri. Untuk melihat set yang tepat dalam sesi yang berjalan, [periksa alat mana yang tersedia](/docs/id/tools-reference#check-which-tools-are-available). Untuk memilih sesi, lakukan salah satu dari berikut:33Pada model yang tercantum, kecuali Anda memilih sesi, Anda tidak melihat blok `tool_use` untuk alat dalam aliran pesan. Agent SDK menerapkan default ini melalui biner Claude Code yang disertakannya. Jika Anda menunjuk `pathToClaudeCodeExecutable` (TypeScript) atau `cli_path` (Python) ke instalasi Claude Code Anda sendiri, Anda mendapatkan alat apa pun yang disediakan instalasi tersebut, di bawah default-nya sendiri. Untuk melihat set yang tepat dalam sesi yang berjalan, [periksa alat mana yang tersedia](/docs/id/tools-reference#check-which-tools-are-available). Untuk memilih sesi, lakukan salah satu dari berikut:

Details

17Claude Code offers three ways to schedule recurring or one-off work:17Claude Code offers three ways to schedule recurring or one-off work:

18 18 

19| | [Cloud](/docs/en/routines) | [Desktop](/docs/en/desktop-scheduled-tasks) | [`/loop`](/docs/en/scheduled-tasks) |19| | [Cloud](/docs/en/routines) | [Desktop](/docs/en/desktop-scheduled-tasks) | [`/loop`](/docs/en/scheduled-tasks) |

20| :------------------------- | :---------------------------------- | :------------------------------------- | :---------------------------------- |20| :------------------------- | :---------------------------------- | :------------------------------------- | :------------------------------------------------------------------------- |

21| Runs on | Cloud, Anthropic-managed by default | Your machine | Your machine |21| Runs on | Cloud, Anthropic-managed by default | Your machine | Your machine |

22| Requires machine on | No | Yes | Yes |22| Requires machine on | No | Yes | Yes |

23| Requires open session | No | No | Yes |23| Requires open session | No | No | Yes |

24| Persistent across restarts | Yes | Yes | Restored on `--resume` if unexpired |24| Persistent across restarts | Yes | Yes | Restored on `--resume`, with [exceptions](/docs/en/scheduled-tasks#limitations) |

25| Access to local files | No (fresh clone) | Yes | Yes |25| Access to local files | No (fresh clone) | Yes | Yes |

26| MCP servers | Connectors configured per task | [Config files](/docs/en/mcp) and connectors | Inherits from session |26| MCP servers | Connectors configured per task | [Config files](/docs/en/mcp) and connectors | Inherits from session |

27| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |27| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |

fullscreen.md +2 −1

Details

61| Anda mengatur [`CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1`](/docs/id/env-vars) atau `CLAUDE_CODE_NO_FLICKER=0` | Klasik |61| Anda mengatur [`CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1`](/docs/id/env-vars) atau `CLAUDE_CODE_NO_FLICKER=0` | Klasik |

62| Anda mengatur `CLAUDE_CODE_NO_FLICKER=1` | Fullscreen |62| Anda mengatur `CLAUDE_CODE_NO_FLICKER=1` | Fullscreen |

63| Claude Code [mematikan fullscreen setelah awal fullscreen yang gagal](#fullscreen-renderer-didnt-finish-starting) di mesin ini | Klasik |63| Claude Code [mematikan fullscreen setelah awal fullscreen yang gagal](#fullscreen-renderer-didnt-finish-starting) di mesin ini | Klasik |

64| Anda berada dalam mode integrasi [`tmux -CC`](/docs/id/tmux) iTerm2, atau Anda terhubung melalui SSH ke Claude Code yang berjalan di Windows | Klasik |64| Anda berada dalam [mode integrasi `tmux -CC`](#use-with-tmux) iTerm2, atau Anda terhubung melalui SSH ke Claude Code yang berjalan di Windows | Klasik |

65| Anda menyimpan pengaturan [`tui`](/docs/id/settings-reference#tui) | Renderer yang dinamai pengaturan |65| Anda menyimpan pengaturan [`tui`](/docs/id/settings-reference#tui) | Renderer yang dinamai pengaturan |

66| Sesi Anda tidak [mengambil flag fitur dari Anthropic](/docs/id/env-vars#features-that-need-feature-flag-fetching), dan Claude Code telah berhenti menawarkan dialog startup di mesin ini | Klasik |66| Sesi Anda tidak [mengambil flag fitur dari Anthropic](/docs/id/env-vars#features-that-need-feature-flag-fetching), dan Claude Code telah berhenti menawarkan dialog startup di mesin ini | Klasik |

67| Sesi Anda tidak mengambil flag fitur dari Anthropic, dan peluncuran Claude Code pertama mesin ini menjalankan v2.1.239 atau lebih baru | Fullscreen |67| Sesi Anda tidak mengambil flag fitur dari Anthropic, dan peluncuran Claude Code pertama mesin ini menjalankan v2.1.239 atau lebih baru | Fullscreen |


103* **Klik opsi dalam menu pilih** untuk memilihnya. Ini mencakup prompt izin, `/model`, `/config`, dan dialog lainnya yang menampilkan daftar opsi. Mengarahkan kursor menunjukkan pointer pada baris di bawah kursor Anda. Memerlukan Claude Code v2.1.187 atau lebih baru.103* **Klik opsi dalam menu pilih** untuk memilihnya. Ini mencakup prompt izin, `/model`, `/config`, dan dialog lainnya yang menampilkan daftar opsi. Mengarahkan kursor menunjukkan pointer pada baris di bawah kursor Anda. Memerlukan Claude Code v2.1.187 atau lebih baru.

104* **Klik opsi dalam menu multi-pilih** untuk mengalihnya, dan klik tombol kirim untuk mengonfirmasi pilihan Anda. Mengklik baris teks bebas, seperti baris `Other` dalam pertanyaan pilihan ganda, memfokuskan bidang inputnya sehingga Anda dapat mengetik jawaban. Memerlukan Claude Code v2.1.208 atau lebih baru.104* **Klik opsi dalam menu multi-pilih** untuk mengalihnya, dan klik tombol kirim untuk mengonfirmasi pilihan Anda. Mengklik baris teks bebas, seperti baris `Other` dalam pertanyaan pilihan ganda, memfokuskan bidang inputnya sehingga Anda dapat mengetik jawaban. Memerlukan Claude Code v2.1.208 atau lebih baru.

105* **Klik hasil tool yang diciutkan** untuk memerluasnya dan melihat output lengkapnya. Klik lagi untuk menciutkan. Panggilan tool dan hasilnya berkembang bersama. Hanya pesan yang memiliki lebih banyak untuk ditampilkan yang dapat diklik.105* **Klik hasil tool yang diciutkan** untuk memerluasnya dan melihat output lengkapnya. Klik lagi untuk menciutkan. Panggilan tool dan hasilnya berkembang bersama. Hanya pesan yang memiliki lebih banyak untuk ditampilkan yang dapat diklik.

106 * Mengklik juga memperluas output perintah shell `!`, baik hasil lama yang terpotong maupun baris progres langsung saat perintah berjalan. Memerlukan Claude Code v2.1.257 atau lebih baru.

106* **Tahan `Cmd` di macOS, atau `Ctrl` di Linux dan Windows, dan klik URL atau jalur file** untuk membukanya. URL `http://` dan `https://` biasa terbuka di browser Anda, dan jalur file dalam output tool, seperti yang dicetak setelah Edit atau Write, terbuka di aplikasi default Anda. Klik biasa tanpa pengubah tidak membuka tautan, sesuai dengan perilaku terminal asli.107* **Tahan `Cmd` di macOS, atau `Ctrl` di Linux dan Windows, dan klik URL atau jalur file** untuk membukanya. URL `http://` dan `https://` biasa terbuka di browser Anda, dan jalur file dalam output tool, seperti yang dicetak setelah Edit atau Write, terbuka di aplikasi default Anda. Klik biasa tanpa pengubah tidak membuka tautan, sesuai dengan perilaku terminal asli.

107 * Claude Code merender jalur jaringan (UNC), seperti `\\server\share\file.ts`, sebagai teks biasa tanpa tautan, karena membuka jalur jaringan dapat mengirimkan kredensial Windows Anda ke host yang dinamainya.108 * Claude Code merender jalur jaringan (UNC), seperti `\\server\share\file.ts`, sebagai teks biasa tanpa tautan, karena membuka jalur jaringan dapat mengirimkan kredensial Windows Anda ke host yang dinamainya.

108 * Beberapa terminal macOS meneruskan `Cmd`+klik ke aplikasi yang berjalan alih-alih membuka tautan sendiri, dan protokol mouse terminal tidak memiliki cara untuk mengkodekan kunci `Cmd`, jadi Claude Code menerima klik biasa. Di Ghostty, dan di Warp di macOS, Claude Code mendeteksi ini dan membiarkan klik biasa pada tautan membukanya, dan menahan `Cmd` masih berfungsi.109 * Beberapa terminal macOS meneruskan `Cmd`+klik ke aplikasi yang berjalan alih-alih membuka tautan sendiri, dan protokol mouse terminal tidak memiliki cara untuk mengkodekan kunci `Cmd`, jadi Claude Code menerima klik biasa. Di Ghostty, dan di Warp di macOS, Claude Code mendeteksi ini dan membiarkan klik biasa pada tautan membukanya, dan menahan `Cmd` masih berfungsi.

output-styles.md +18 −14

Details

6 6 

7> Sesuaikan Claude Code untuk penggunaan di luar rekayasa perangkat lunak7> Sesuaikan Claude Code untuk penggunaan di luar rekayasa perangkat lunak

8 8 

9Output styles mengubah cara Claude merespons, bukan apa yang Claude ketahui. Mereka memodifikasi system prompt untuk menetapkan peran, nada, dan format output. Gunakan satu ketika Anda terus-menerus meminta kembali untuk suara atau format yang sama setiap giliran, atau ketika Anda ingin Claude bertindak sebagai sesuatu selain seorang insinyur perangkat lunak.9Output styles mengubah cara Claude merespons, bukan apa yang Claude ketahui. Mereka menetapkan peran, nada, dan format output Claude untuk setiap respons. Gunakan satu ketika Anda terus-menerus meminta kembali untuk suara atau format yang sama setiap giliran, atau ketika Anda ingin Claude bertindak sebagai sesuatu selain seorang insinyur perangkat lunak.

10 10 

11Custom output style menambahkan instruksi Anda ke system prompt dan memungkinkan Anda memilih apakah akan mempertahankan instruksi rekayasa perangkat lunak bawaan Claude Code. Pertahankan mereka ketika Anda mengubah cara Claude berkomunikasi tetapi masih coding, seperti selalu menjawab dengan diagram. Tinggalkan mereka ketika Claude tidak melakukan rekayasa perangkat lunak sama sekali, seperti asisten penulisan atau analis data.11Custom output style memberikan Claude instruksi Anda sendiri dan memungkinkan Anda memilih apakah akan mempertahankan instruksi rekayasa perangkat lunak bawaan Claude Code. Pertahankan mereka ketika Anda mengubah cara Claude berkomunikasi tetapi masih coding, seperti selalu menjawab dengan diagram. Tinggalkan mereka ketika Claude tidak melakukan rekayasa perangkat lunak sama sekali, seperti asisten penulisan atau analis data.

12 12 

13Untuk instruksi tentang proyek, konvensi, atau codebase Anda, gunakan [CLAUDE.md](/docs/id/memory) sebagai gantinya.13Untuk instruksi tentang proyek, konvensi, atau codebase Anda, gunakan [CLAUDE.md](/docs/id/memory) sebagai gantinya.

14 14 


16 Gaya output bawaan16 Gaya output bawaan

17</h2>17</h2>

18 18 

19Gaya output **Default** Claude Code adalah system prompt yang ada, dirancang untuk membantu Anda menyelesaikan tugas-tugas rekayasa perangkat lunak secara efisien.19Gaya output **Default** Claude Code adalah set instruksi standarnya, dirancang untuk membantu Anda menyelesaikan tugas-tugas rekayasa perangkat lunak secara efisien.

20 20 

21Ada empat gaya output bawaan tambahan:21Ada empat gaya output bawaan tambahan:

22 22 


36 36 

37* **Terminal**: jalankan `/config` dan pilih **Output style** untuk memilih gaya dari menu. Claude Code menyimpan pilihan Anda ke `.claude/settings.local.json` di [tingkat proyek lokal](/docs/id/settings).37* **Terminal**: jalankan `/config` dan pilih **Output style** untuk memilih gaya dari menu. Claude Code menyimpan pilihan Anda ke `.claude/settings.local.json` di [tingkat proyek lokal](/docs/id/settings).

38* **Ekstensi VS Code**: buka [menu perintah](/docs/id/vs-code#use-the-prompt-box) dengan `/` dan pilih **Output styles** untuk memilih gaya, termasuk gaya kustom Anda. Claude Code menyimpan pilihan Anda ke `.claude/settings.local.json`, file yang sama yang ditulis menu terminal. Memerlukan Claude Code v2.1.257 atau lebih baru.38* **Ekstensi VS Code**: buka [menu perintah](/docs/id/vs-code#use-the-prompt-box) dengan `/` dan pilih **Output styles** untuk memilih gaya, termasuk gaya kustom Anda. Claude Code menyimpan pilihan Anda ke `.claude/settings.local.json`, file yang sama yang ditulis menu terminal. Memerlukan Claude Code v2.1.257 atau lebih baru.

39* **Aplikasi Desktop**: atur field `outputStyle` dalam file settings, misalnya `.claude/settings.local.json`, file yang ditulis menu terminal. Ketika Anda menjalankan `/config` di sana, Claude Code [membuka **Settings > Claude Code**](/docs/id/desktop#what's-not-available-in-desktop) daripada menu.39* **Aplikasi Desktop**: atur field `outputStyle` dalam file settings, misalnya `.claude/settings.local.json`, file yang ditulis menu terminal. Ketika Anda menjalankan `/config` di sana, Claude Code [membuka **Settings > Claude Code**](/docs/id/desktop#what%E2%80%99s-not-available-in-desktop) daripada menu.

40 40 

41<Note>Perintah standalone `/output-style` sudah tidak digunakan lagi di v2.1.73 dan dihapus di v2.1.91. Gunakan `/config` atau edit pengaturan `outputStyle` secara langsung.</Note>41<Note>Perintah standalone `/output-style` sudah tidak digunakan lagi di v2.1.73 dan dihapus di v2.1.91. Gunakan `/config` atau edit pengaturan `outputStyle` secara langsung.</Note>

42 42 


48}48}

49```49```

50 50 

51Ketika Anda beralih gaya di tengah sesi, Claude menggunakan gaya baru mulai dari pesan Anda berikutnya. Gaya adalah bagian dari system prompt, sehingga pesan pertama itu membangun ulang [prompt cache](/docs/id/prompt-caching#changing-output-style) sekali. Sebelum v2.1.251, gaya baru diterapkan hanya setelah Anda menjalankan `/clear` atau memulai sesi baru.51Ketika Anda beralih gaya di tengah sesi, Claude menggunakan gaya baru mulai dari pesan Anda berikutnya. Untuk biaya pesan pertama itu dalam prompt caching, lihat [Mengubah gaya output](/docs/id/prompt-caching#changing-output-style). Sebelum v2.1.251, gaya baru diterapkan hanya setelah Anda menjalankan `/clear` atau memulai sesi baru.

52 52 

53<h2 id="create-a-custom-output-style">53<h2 id="create-a-custom-output-style">

54 Buat custom output style54 Buat custom output style

55</h2>55</h2>

56 56 

57Custom output style adalah file Markdown: frontmatter untuk metadata, kemudian instruksi untuk ditambahkan ke system prompt.57Custom output style adalah file Markdown: frontmatter untuk metadata, kemudian instruksi untuk Claude.

58 

59Di VS Code extension, Anda juga dapat membuat file dari [menu **Output styles**](/docs/id/vs-code#use-the-prompt-box) daripada menulisnya dengan tangan. Ini memerlukan Claude Code v2.1.261 atau lebih baru.

58 60 

59<Steps>61<Steps>

60 <Step title="Buat file Markdown">62 <Step title="Buat file Markdown">


111 Cara kerja output styles113 Cara kerja output styles

112</h2>114</h2>

113 115 

114Output styles secara langsung memodifikasi system prompt Claude Code.116Output style mengubah instruksi yang Claude Code berikan kepada Claude.

115 117 

116* Claude Code menambahkan instruksi kustom output style ke system prompt.118* Claude Code mengirimkan instruksi style aktif dengan setiap permintaan.

117* Ketika Anda [memilih style selain Default](#change-your-output-style), Claude Code juga mengingatkan Claude tentang style tersebut selama percakapan.119* Ketika Anda [memilih style selain Default](#change-your-output-style), Claude Code juga mengingatkan Claude tentang style tersebut selama percakapan.

118* Custom output styles menghilangkan instruksi rekayasa perangkat lunak bawaan Claude Code, seperti cara membatasi perubahan, menulis komentar, dan memverifikasi pekerjaan, kecuali `keep-coding-instructions` diatur ke `true`.120* Custom output styles menghilangkan instruksi rekayasa perangkat lunak bawaan Claude Code, seperti cara membatasi perubahan, menulis komentar, dan memverifikasi pekerjaan, kecuali `keep-coding-instructions` diatur ke `true`.

119 121 

120Output styles berlaku hanya untuk percakapan utama: [subagent menjalankan system prompt-nya sendiri](/docs/id/sub-agents#what-loads-at-startup), jadi styles tidak mengubah cara subagents merespons. [Fork](/docs/id/sub-agents#fork-the-current-conversation) adalah pengecualian, karena mewarisi system prompt lengkap parent.122Output styles berlaku pada percakapan utama dan pada [fork](/docs/id/sub-agents#fork-the-current-conversation), yang mewarisi percakapan lengkap parent dan system prompt. [Subagent lain menjalankan system prompt mereka sendiri](/docs/id/sub-agents#what-loads-at-startup), jadi styles tidak mengubah cara mereka merespons.

123 

124Penggunaan token tergantung pada style. Instruksi style menambahkan input tokens, meskipun prompt caching mengurangi biaya ini setelah permintaan pertama dalam sesi.

121 125 

122Penggunaan token tergantung pada style. Menambahkan instruksi ke system prompt meningkatkan input tokens, meskipun prompt caching mengurangi biaya ini setelah permintaan pertama dalam sesi. Built-in Explanatory dan Learning styles menghasilkan respons yang lebih panjang daripada Default secara desain, yang meningkatkan output tokens, dan style Concise melakukan sebaliknya dengan menginstruksikan Claude untuk menjaga respons tetap singkat secara default. Untuk custom styles, penggunaan output tokens tergantung pada apa yang instruksi Anda katakan kepada Claude untuk diproduksi.126Built-in Explanatory dan Learning styles menghasilkan respons yang lebih panjang daripada Default secara desain, yang meningkatkan output tokens. Style Concise melakukan sebaliknya dengan menginstruksikan Claude untuk menjaga respons tetap singkat secara default. Untuk custom styles, penggunaan output tokens tergantung pada apa yang instruksi Anda katakan kepada Claude untuk diproduksi.

123 127 

124<h2 id="comparisons-to-related-features">128<h2 id="comparisons-to-related-features">

125 Perbandingan dengan fitur terkait129 Perbandingan dengan fitur terkait

126</h2>130</h2>

127 131 

128Beberapa fitur menyesuaikan perilaku Claude Code. Output styles memodifikasi system prompt secara langsung dan berlaku untuk setiap respons. Yang lain menambahkan instruksi tanpa mengubah system prompt default, atau membatasi mereka ke tugas tertentu.132Beberapa fitur menyesuaikan perilaku Claude Code. Output styles mengubah instruksi default Claude Code dan berlaku untuk setiap respons. Yang lain menambahkan instruksi tanpa mengubah default, atau membatasi mereka ke tugas tertentu.

129 133 

130| Fitur | Cara kerjanya | Gunakan ketika |134| Fitur | Cara kerjanya | Gunakan ketika |

131| :----------------------- | :---------------------------------------------------------------------- | :------------------------------------------------------------------------------------- |135| :----------------------- | :---------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------- |

132| Output styles | Memodifikasi system prompt | Anda menginginkan peran, nada, atau format respons default yang berbeda setiap giliran |136| Output styles | Mengubah instruksi default Claude Code | Anda menginginkan peran, nada, atau format respons default yang berbeda setiap giliran |

133| [CLAUDE.md](/docs/id/memory) | Menambahkan pesan pengguna setelah system prompt | Claude harus selalu mengetahui konvensi proyek dan konteks codebase Anda |137| [CLAUDE.md](/docs/id/memory) | Menambahkan pesan pengguna setelah system prompt | Claude harus selalu mengetahui konvensi proyek dan konteks codebase Anda |

134| `--append-system-prompt` | Menambahkan ke system prompt tanpa menghapus apa pun | Anda menginginkan penambahan satu kali untuk satu invokasi |138| `--append-system-prompt` | Menambahkan ke system prompt tanpa menghapus apa pun | Anda menginginkan penambahan satu kali yang dilewatkan sebagai [CLI flag](/docs/id/cli-reference#system-prompt-flags) saat peluncuran |

135| [Agents](/docs/id/sub-agents) | Menjalankan subagent dengan system prompt, model, dan tools-nya sendiri | Anda menginginkan helper dengan cakupan terpisah untuk tugas yang terfokus |139| [Agents](/docs/id/sub-agents) | Menjalankan subagent dengan system prompt, model, dan tools-nya sendiri | Anda menginginkan helper dengan cakupan terpisah untuk tugas yang terfokus |

136| [Skills](/docs/id/skills) | Memuat instruksi khusus tugas saat dipanggil atau relevan | Anda memiliki alur kerja yang dapat digunakan kembali |140| [Skills](/docs/id/skills) | Memuat instruksi khusus tugas saat dipanggil atau relevan | Anda memiliki alur kerja yang dapat digunakan kembali |

137 141 

permissions.md +30 −20

Details

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">

Details

17Claude Code offers three ways to schedule recurring or one-off work:17Claude Code offers three ways to schedule recurring or one-off work:

18 18 

19| | [Cloud](/docs/en/routines) | [Desktop](/docs/en/desktop-scheduled-tasks) | [`/loop`](/docs/en/scheduled-tasks) |19| | [Cloud](/docs/en/routines) | [Desktop](/docs/en/desktop-scheduled-tasks) | [`/loop`](/docs/en/scheduled-tasks) |

20| :------------------------- | :---------------------------------- | :------------------------------------- | :---------------------------------- |20| :------------------------- | :---------------------------------- | :------------------------------------- | :------------------------------------------------------------------------- |

21| Runs on | Cloud, Anthropic-managed by default | Your machine | Your machine |21| Runs on | Cloud, Anthropic-managed by default | Your machine | Your machine |

22| Requires machine on | No | Yes | Yes |22| Requires machine on | No | Yes | Yes |

23| Requires open session | No | No | Yes |23| Requires open session | No | No | Yes |

24| Persistent across restarts | Yes | Yes | Restored on `--resume` if unexpired |24| Persistent across restarts | Yes | Yes | Restored on `--resume`, with [exceptions](/docs/en/scheduled-tasks#limitations) |

25| Access to local files | No (fresh clone) | Yes | Yes |25| Access to local files | No (fresh clone) | Yes | Yes |

26| MCP servers | Connectors configured per task | [Config files](/docs/en/mcp) and connectors | Inherits from session |26| MCP servers | Connectors configured per task | [Config files](/docs/en/mcp) and connectors | Inherits from session |

27| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |27| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |


48 48 

49* Perintah bawaan seperti `/permissions`, `/model`, atau `/clear`49* Perintah bawaan seperti `/permissions`, `/model`, atau `/clear`

50* Skill yang ditandai [`disable-model-invocation: true`](/docs/id/skills#frontmatter-reference), termasuk skill bundled `/verify`50* Skill yang ditandai [`disable-model-invocation: true`](/docs/id/skills#frontmatter-reference), termasuk skill bundled `/verify`

51* Skill yang ditahan dari Claude oleh pengaturan [`skillOverrides`](/docs/id/skills#override-skill-visibility-from-settings) atau aturan [deny](/docs/id/skills#restrict-claude's-skill-access) `Skill`51* Skill yang ditahan dari Claude oleh pengaturan [`skillOverrides`](/docs/id/skills#override-skill-visibility-from-settings) atau aturan [deny](/docs/id/skills#restrict-claude%E2%80%99s-skill-access) `Skill`

52* [MCP prompts](/docs/id/mcp#use-mcp-prompts-as-commands) seperti `/mcp__github__list_prs`52* [MCP prompts](/docs/id/mcp#use-mcp-prompts-as-commands) seperti `/mcp__github__list_prs`

53 53 

54<h3 id="run-on-a-fixed-interval">54<h3 id="run-on-a-fixed-interval">

Details

80Semua ini menerima format aturan yang sama, `ToolName(specifier)`. Specifier tergantung pada tools, dan beberapa tools berbagi format:80Semua ini menerima format aturan yang sama, `ToolName(specifier)`. Specifier tergantung pada tools, dan beberapa tools berbagi format:

81 81 

82| Format aturan | Berlaku untuk | Detail |82| Format aturan | Berlaku untuk | Detail |

83| :----------------------------- | :------------------------ | :----------------------------------------------------------------- |83| :----------------------------- | :------------------------ | :------------------------------------------------------------------------- |

84| `Bash(npm run *)` | Bash, Monitor | [Pencocokan pola perintah](/docs/id/permissions#bash) |84| `Bash(npm run *)` | Bash, Monitor | [Pencocokan pola perintah](/docs/id/permissions#bash) |

85| `PowerShell(Get-ChildItem *)` | PowerShell | [Pencocokan pola perintah](/docs/id/permissions#powershell) |85| `PowerShell(Get-ChildItem *)` | PowerShell | [Pencocokan pola perintah](/docs/id/permissions#powershell) |

86| `Read(~/secrets/**)` | Read, Grep, Glob, LSP | [Pencocokan pola jalur](/docs/id/permissions#read-and-edit) |86| `Read(~/secrets/**)` | Read, Grep, Glob, LSP | [Pencocokan pola jalur](/docs/id/permissions#read-and-edit) |

87| `Edit(/src/**)` | Edit, Write, NotebookEdit | [Pencocokan pola jalur](/docs/id/permissions#read-and-edit) |87| `Edit(/src/**)` | Edit, Write, NotebookEdit | [Pencocokan pola jalur](/docs/id/permissions#read-and-edit) |

88| `Skill(deploy *)` | Skill | [Pencocokan nama skill](/docs/id/skills#restrict-claude's-skill-access) |88| `Skill(deploy *)` | Skill | [Pencocokan nama skill](/docs/id/skills#restrict-claude%E2%80%99s-skill-access) |

89| `Agent(Explore)` | Agent | [Pencocokan tipe subagent](/docs/id/permissions#agent-subagents) |89| `Agent(Explore)` | Agent | [Pencocokan tipe subagent](/docs/id/permissions#agent-subagents) |

90| `WebFetch(domain:example.com)` | WebFetch | [Pencocokan domain](/docs/id/permissions#webfetch) |90| `WebFetch(domain:example.com)` | WebFetch | [Pencocokan domain](/docs/id/permissions#webfetch) |

91| `WebSearch` | WebSearch | Tidak ada specifier; izinkan atau tolak tools secara keseluruhan |91| `WebSearch` | WebSearch | Tidak ada specifier; izinkan atau tolak tools secara keseluruhan |


154 Apa yang bertahan antar perintah154 Apa yang bertahan antar perintah

155</h3>155</h3>

156 156 

157* Ketika Claude menjalankan `cd` dalam sesi utama, direktori kerja baru berlanjut ke perintah Bash yang lebih baru selama tetap berada di dalam direktori proyek atau [direktori kerja tambahan](/docs/id/permissions#working-directories) yang Anda tambahkan dengan `--add-dir`, `/add-dir`, atau `additionalDirectories` dalam pengaturan. Sesi subagent tidak pernah membawa perubahan direktori kerja.157* Ketika Claude menjalankan `cd` dalam sesi utama, direktori kerja baru berlanjut ke perintah Bash yang lebih baru selama tetap berada di dalam direktori proyek atau [direktori kerja tambahan](/docs/id/permissions#working-directories) yang Anda tambahkan dengan `--add-dir`, `/add-dir`, atau `additionalDirectories` dalam pengaturan. Ini mencakup perintah yang Claude jalankan sebagai respons terhadap pesan Anda yang lebih baru.

158 * Sesi subagent tidak pernah membawa perubahan direktori kerja.

158 * Jika `cd` mendarat di luar direktori-direktori tersebut, Claude Code mengatur ulang ke direktori proyek dan menambahkan `Shell cwd was reset to <dir>` ke hasil alat.159 * Jika `cd` mendarat di luar direktori-direktori tersebut, Claude Code mengatur ulang ke direktori proyek dan menambahkan `Shell cwd was reset to <dir>` ke hasil alat.

159 * Untuk menonaktifkan carry-over ini sehingga setiap perintah Bash dimulai di direktori proyek, atur `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1`.160 * Untuk menonaktifkan carry-over ini sehingga setiap perintah Bash dimulai di direktori proyek, atur `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1`.

160* Variabel lingkungan tidak bertahan. `export` dalam satu perintah tidak akan tersedia di perintah berikutnya.161* Variabel lingkungan tidak bertahan. `export` dalam satu perintah tidak akan tersedia di perintah berikutnya.


301 302 

302Glob tidak menghormati `.gitignore` secara default, jadi menemukan file gitignored bersama yang dilacak. Ini berbeda dari [Grep](#grep-tool-behavior), yang melewati file gitignored. Untuk membuat Glob menghormati `.gitignore`, atur `CLAUDE_CODE_GLOB_NO_IGNORE=false` sebelum meluncurkan Claude Code.303Glob tidak menghormati `.gitignore` secara default, jadi menemukan file gitignored bersama yang dilacak. Ini berbeda dari [Grep](#grep-tool-behavior), yang melewati file gitignored. Untuk membuat Glob menghormati `.gitignore`, atur `CLAUDE_CODE_GLOB_NO_IGNORE=false` sebelum meluncurkan Claude Code.

303 304 

305Claude Code memutuskan izin untuk panggilan Glob sebelum memeriksa apakah direktori pencarian ada. Ini masih menjalankan pemeriksaan izin baca untuk `path` yang hilang di luar [direktori kerja](/docs/id/permissions#working-directories), jadi prompt izin untuk path tidak berarti path tersebut ada.

306 

304Nilai `pattern` atau `path` yang berisi byte null mengembalikan kesalahan yang meminta Claude untuk menghapusnya.&#x20;307Nilai `pattern` atau `path` yang berisi byte null mengembalikan kesalahan yang meminta Claude untuk menghapusnya.&#x20;

305 308 

306<h2 id="grep-tool-behavior">309<h2 id="grep-tool-behavior">


323 326 

324Grep menghormati `.gitignore`, jadi file gitignored dilewati. Untuk mencari file gitignored, Claude meneruskan jalurnya secara langsung.327Grep menghormati `.gitignore`, jadi file gitignored dilewati. Untuk mencari file gitignored, Claude meneruskan jalurnya secara langsung.

325 328 

329Claude Code memutuskan izin untuk panggilan Grep sebelum memeriksa apakah `path` pencarian ada. Masih menjalankan pemeriksaan izin baca untuk `path` yang hilang di luar [direktori kerja](/docs/id/permissions#working-directories), jadi prompt izin untuk path tidak berarti path ada.

330 

326<h2 id="lsp-tool-behavior">331<h2 id="lsp-tool-behavior">

327 Perilaku LSP tool332 Perilaku LSP tool

328</h2>333</h2>